pub struct GeometricPrimitive {
pub shape: Arc<dyn Shape>,
pub material: Option<Arc<dyn Material>>,
pub area_light: Option<Arc<dyn Light>>,
pub mi: MediumInterface,
}
Fields§
§shape: Arc<dyn Shape>
§material: Option<Arc<dyn Material>>
§area_light: Option<Arc<dyn Light>>
§mi: MediumInterface
Implementations§
Trait Implementations§
Source§impl Primitive for GeometricPrimitive
impl Primitive for GeometricPrimitive
fn world_bound(&self) -> Bounds3f
fn intersect(&self, r: &Ray) -> Option<SurfaceInteraction>
fn intersect_p(&self, r: &Ray) -> bool
fn get_area_light(&self) -> Option<Arc<dyn Light>>
fn get_material(&self) -> Option<Arc<dyn Material>>
fn compute_scattering_functions( &self, si: &mut SurfaceInteraction, arena: &mut MemoryArena, mode: TransportMode, allow_multiple_lobes: bool, )
fn is_geometric(&self) -> bool
Auto Trait Implementations§
impl Freeze for GeometricPrimitive
impl !RefUnwindSafe for GeometricPrimitive
impl !Send for GeometricPrimitive
impl !Sync for GeometricPrimitive
impl Unpin for GeometricPrimitive
impl !UnwindSafe for GeometricPrimitive
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more