[][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,


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


impl DistantLight[src]

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

pub fn sample_li<'a, 'b>(
    &'b self,
    iref: &'a InteractionCommon,
    light_intr: &'b mut InteractionCommon,
    _u: Point2f,
    wi: &mut Vector3f,
    pdf: &mut Float,
    vis: &mut VisibilityTester<'a, 'b>
) -> Spectrum

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: &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(
    u1: Point2f,
    _u2: Point2f,
    time: Float,
    ray: &mut Ray,
    n_light: &mut Normal3f,
    pdf_pos: &mut Float,
    pdf_dir: &mut Float
) -> Spectrum

pub fn pdf_le(
    _ray: &Ray,
    _n_light: &Normal3f,
    pdf_pos: &mut Float,
    pdf_dir: &mut Float

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

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

Auto Trait Implementations

impl RefUnwindSafe for DistantLight

impl Send for DistantLight

impl Sync for DistantLight

impl Unpin for DistantLight

impl UnwindSafe for DistantLight

Blanket Implementations

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

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

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

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

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

The type returned in the event of a conversion error.