pub struct Extrusion<T>where
T: Primitive2d,{
pub base_shape: T,
pub half_depth: f32,
}
Expand description
A 3D shape representing an extruded 2D base_shape
.
Extruding a shape effectively “thickens” a 2D shapes, creating a shape with the same cross-section over the entire depth.
The resulting volumes are prisms. For example, a triangle becomes a triangular prism, while a circle becomes a cylinder.
Fields§
§base_shape: T
The base shape of the extrusion
half_depth: f32
Half of the depth of the extrusion
Implementations§
Trait Implementations§
source§impl<T> Bounded3d for Extrusion<T>where
T: BoundedExtrusion,
impl<T> Bounded3d for Extrusion<T>where
T: BoundedExtrusion,
source§fn aabb_3d(&self, translation: Vec3, rotation: Quat) -> Aabb3d
fn aabb_3d(&self, translation: Vec3, rotation: Quat) -> Aabb3d
Get an axis-aligned bounding box for the shape with the given translation and rotation
source§fn bounding_sphere(&self, translation: Vec3, rotation: Quat) -> BoundingSphere
fn bounding_sphere(&self, translation: Vec3, rotation: Quat) -> BoundingSphere
Get a bounding sphere for the shape with the given translation and rotation
source§impl<T> Measured3d for Extrusion<T>where
T: Primitive2d + Measured2d,
impl<T> Measured3d for Extrusion<T>where
T: Primitive2d + Measured2d,
source§impl<T> PartialEq for Extrusion<T>where
T: PartialEq + Primitive2d,
impl<T> PartialEq for Extrusion<T>where
T: PartialEq + Primitive2d,
source§impl<P> ShapeSample for Extrusion<P>
impl<P> ShapeSample for Extrusion<P>
source§fn sample_interior<R>(
&self,
rng: &mut R
) -> <Extrusion<P> as ShapeSample>::Output
fn sample_interior<R>( &self, rng: &mut R ) -> <Extrusion<P> as ShapeSample>::Output
Uniformly sample a point from inside the area/volume of this shape, centered on 0. Read more
source§fn sample_boundary<R>(
&self,
rng: &mut R
) -> <Extrusion<P> as ShapeSample>::Output
fn sample_boundary<R>( &self, rng: &mut R ) -> <Extrusion<P> as ShapeSample>::Output
Uniformly sample a point from the surface of this shape, centered on 0. Read more
source§fn interior_dist(self) -> impl Distribution<Self::Output>where
Self: Sized,
fn interior_dist(self) -> impl Distribution<Self::Output>where
Self: Sized,
Extract a
Distribution
whose samples are points of this shape’s interior, taken uniformly. Read moresource§fn boundary_dist(self) -> impl Distribution<Self::Output>where
Self: Sized,
fn boundary_dist(self) -> impl Distribution<Self::Output>where
Self: Sized,
Extract a
Distribution
whose samples are points of this shape’s boundary, taken uniformly. Read moreimpl<T> Copy for Extrusion<T>where
T: Copy + Primitive2d,
impl<T> Primitive3d for Extrusion<T>where
T: Primitive2d,
impl<T> StructuralPartialEq for Extrusion<T>where
T: Primitive2d,
Auto Trait Implementations§
impl<T> Freeze for Extrusion<T>where
T: Freeze,
impl<T> RefUnwindSafe for Extrusion<T>where
T: RefUnwindSafe,
impl<T> Send for Extrusion<T>where
T: Send,
impl<T> Sync for Extrusion<T>where
T: Sync,
impl<T> Unpin for Extrusion<T>where
T: Unpin,
impl<T> UnwindSafe for Extrusion<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
Return the
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.