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: MediumInterfaceImplementations§
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