[][src]Struct pbrt::lights::distant::DistantLight

pub struct DistantLight {
    pub l: Spectrum,
    pub w_light: Vector3f,
    pub world_center: RwLock<Point3f>,
    pub world_radius: RwLock<Float>,
    pub flags: u8,
    pub n_samples: i32,
    pub medium_interface: MediumInterface,
    pub light_to_world: Transform,
    pub world_to_light: Transform,
}

Fields

l: Spectrumw_light: Vector3fworld_center: RwLock<Point3f>world_radius: RwLock<Float>flags: u8n_samples: i32medium_interface: MediumInterfacelight_to_world: Transformworld_to_light: Transform

Methods

impl DistantLight[src]

pub fn new(light_to_world: &Transform, l: &Spectrum, w_light: &Vector3f) -> Self[src]

pub fn sample_li(
    &self,
    iref: &InteractionCommon,
    _u: &Point2f,
    wi: &mut Vector3f,
    pdf: &mut Float,
    vis: &mut VisibilityTester
) -> Spectrum
[src]

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

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

Some of the DistanceLight methods need to know the bounds of the scene. Because lights are created before the scene geometry, these bounds aren't available when the DistanceLight constructor runs. Therefore, DistanceLight implements the optional preprocess() method to get the bound. This method is called at the end of the Scene constructor.

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

Default implementation returns no emitted radiance for a ray that escapes the scene bounds.

pub fn pdf_li(&self, _iref: &dyn Interaction, _wi: Vector3f) -> Float[src]

pub fn sample_le(
    &self,
    u1: &Point2f,
    _u2: &Point2f,
    time: Float,
    ray: &mut Ray,
    n_light: &mut Normal3f,
    pdf_pos: &mut Float,
    pdf_dir: &mut Float
) -> Spectrum
[src]

pub fn pdf_le(
    &self,
    _ray: &Ray,
    _n_light: &Normal3f,
    pdf_pos: &mut Float,
    pdf_dir: &mut Float
)
[src]

pub fn get_flags(&self) -> u8[src]

pub fn get_n_samples(&self) -> i32[src]

Auto Trait Implementations

impl Send for DistantLight

impl Unpin for DistantLight

impl Sync for DistantLight

impl UnwindSafe for DistantLight

impl RefUnwindSafe for DistantLight

Blanket Implementations

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

impl<T> From<T> for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> 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> BorrowMut<T> for T where
    T: ?Sized
[src]

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

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

impl<T> SetParameter for T[src]