[][src]Struct pbrt::lights::infinite::InfiniteAreaLight

pub struct InfiniteAreaLight {
    pub lmap: Arc<MipMap<Spectrum>>,
    pub world_center: RwLock<Point3f>,
    pub world_radius: RwLock<Float>,
    pub distribution: Arc<Distribution2D>,
    pub flags: u8,
    pub n_samples: i32,
    pub medium_interface: MediumInterface,
    pub light_to_world: Transform,
    pub world_to_light: Transform,
}

Fields

lmap: Arc<MipMap<Spectrum>>world_center: RwLock<Point3f>world_radius: RwLock<Float>distribution: Arc<Distribution2D>flags: u8n_samples: i32medium_interface: MediumInterfacelight_to_world: Transformworld_to_light: Transform

Methods

impl InfiniteAreaLight[src]

pub fn new(
    light_to_world: &Transform,
    l: &Spectrum,
    n_samples: i32,
    texmap: String
) -> Self
[src]

pub fn new_hdr(
    light_to_world: &Transform,
    l: &Spectrum,
    n_samples: i32,
    texmap: String
) -> Self
[src]

Trait Implementations

impl Light for InfiniteAreaLight[src]

fn power(&self) -> Spectrum[src]

Like directional lights, the total power from the infinite area light is related to the surface area of the scene. Like many other lights the power computed here is approximate.

fn preprocess(&self, scene: &Scene)[src]

Like DistanceLights, InfiniteAreaLights also need the scene bounds; here again, the preprocess() method finds the scene bounds after all of the scene geometry has been created.

fn le(&self, ray: &mut Ray) -> Spectrum[src]

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.

Auto Trait Implementations

impl Send for InfiniteAreaLight

impl Sync for InfiniteAreaLight

Blanket Implementations

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> SetParameter for T[src]

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 
[src]

Sets value as a parameter of self.