[][src]Struct pbrt::core::interaction::SurfaceInteraction

pub struct SurfaceInteraction<'a> {
    pub common: InteractionCommon,
    pub uv: Point2f,
    pub dpdu: Vector3f,
    pub dpdv: Vector3f,
    pub dndu: Normal3f,
    pub dndv: Normal3f,
    pub dpdx: Cell<Vector3f>,
    pub dpdy: Cell<Vector3f>,
    pub dudx: Cell<Float>,
    pub dvdx: Cell<Float>,
    pub dudy: Cell<Float>,
    pub dvdy: Cell<Float>,
    pub primitive: Option<*const Primitive>,
    pub shading: Shading,
    pub bsdf: Option<Bsdf>,
    pub bssrdf: Option<TabulatedBssrdf>,
    pub shape: Option<&'a Shape>,


common: InteractionCommonuv: Point2fdpdu: Vector3fdpdv: Vector3fdndu: Normal3fdndv: Normal3fdpdx: Cell<Vector3f>dpdy: Cell<Vector3f>dudx: Cell<Float>dvdx: Cell<Float>dudy: Cell<Float>dvdy: Cell<Float>primitive: Option<*const Primitive>shading: Shadingbsdf: Option<Bsdf>bssrdf: Option<TabulatedBssrdf>shape: Option<&'a Shape>


impl<'a> SurfaceInteraction<'a>[src]

pub fn new(
    p: &Point3f,
    p_error: &Vector3f,
    uv: Point2f,
    wo: &Vector3f,
    dpdu: &Vector3f,
    dpdv: &Vector3f,
    dndu: &Normal3f,
    dndv: &Normal3f,
    time: Float,
    sh: Option<&'a Shape>
) -> Self

pub fn get_medium(&self, w: &Vector3f) -> Option<Arc<Medium>>[src]

pub fn set_shading_geometry(
    &mut self,
    dpdus: &Vector3f,
    dpdvs: &Vector3f,
    dndus: &Normal3f,
    dndvs: &Normal3f,
    orientation_is_authoritative: bool

pub fn compute_scattering_functions(
    &mut self,
    ray: &Ray,
    allow_multiple_lobes: bool,
    mode: TransportMode

pub fn compute_differentials(&mut self, ray: &Ray)[src]

pub fn le(&self, w: &Vector3f) -> Spectrum[src]

Trait Implementations

impl<'a> Default for SurfaceInteraction<'a>[src]

impl<'a> Interaction for SurfaceInteraction<'a>[src]

Auto Trait Implementations

impl<'a> !RefUnwindSafe for SurfaceInteraction<'a>

impl<'a> !Send for SurfaceInteraction<'a>

impl<'a> !Sync for SurfaceInteraction<'a>

impl<'a> Unpin for SurfaceInteraction<'a>

impl<'a> !UnwindSafe for SurfaceInteraction<'a>

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.