pub fn le(&self, ray: &Ray) -> Spectrum {
        let w: Vector3f = self.world_to_light.transform_vector(&ray.d).normalize();
        let st: Point2f = Point2f {
            x: spherical_phi(&w) * INV_2_PI,
            y: spherical_theta(&w) * INV_PI,
        };
        // TODO: SpectrumType::Illuminant
        self.lmap.lookup_pnt_flt(st, 0.0 as Float)
    }
/// Because infinte area lights need to be able to contribute
/// radiance to rays that don't hit any geometry in the scene,
/// we'll add a method to the base **Light** class that returns
/// emitted radiance due to that light along a ray that escapes
/// the scene bounds. It's the responsibility of the integrators
/// to call this method for these rays.
Because infinte area lights need to be able to contribute
radiance to rays that don't hit any geometry in the scene,
we'll add a method to the base **Light** class that returns
emitted radiance due to that light along a ray that escapes
the scene bounds. It's the responsibility of the integrators
to call this method for these rays.
Because infinte area lights need to be able to contribute radiance to rays that don ' t hit any geometry in the scene we ' ll add a method to the base ** Light ** class that returns emitted radiance due to that light along a ray that escapes the scene bounds . It ' s the responsibility of the integrators to call this method for these rays .
pub fn le(&self, ray: &Ray) -> Spectrum {
        let w: Vector3f = self.world_to_light.transform_vector(&ray.d).normalize();
        let st: Point2f = Point2f {
            x: spherical_phi(&w) * INV_2_PI,
            y: spherical_theta(&w) * INV_PI,
        };
        // TODO: SpectrumType::Illuminant
        self.lmap.lookup_pnt_flt(st, 0.0 as Float)
    }
pub fn le ( & self , ray : & Ray ) -> Spectrum { let w : Vector3f = self . world_to_light . transform_vector ( & ray . d ) . normalize ( ) ; let st : Point2f = Point2f { x : spherical_phi ( & w ) * INV_2_PI , y : spherical_theta ( & w ) * INV_PI , } ; // TODO: SpectrumType::Illuminant self . lmap . lookup_pnt_flt ( st , 0.0 as Float ) }
Because infinte area lights need to be able to contribute
radiance to rays that don't hit any geometry in the scene,
we'll add a method to the base **Light** class that returns
emitted radiance due to that light along a ray that escapes
the scene bounds.
Because infinte area lights need to be able to contribute radiance to rays that don ' t hit any geometry in the scene we ' ll add a method to the base ** Light ** class that returns emitted radiance due to that light along a ray that escapes the scene bounds .
&self
ray
&Ray