pub enum PerimeterSegment {
Smooth {
first_normal: Vec2,
last_normal: Vec2,
indices: Vec<u32>,
},
Flat {
indices: Vec<u32>,
},
}
Expand description
A type representing a segment of the perimeter of an extrudable mesh.
Variants§
Smooth
This segment of the perimeter will be shaded smooth.
This has the effect of rendering the segment’s faces with softened edges, so it is appropriate for curved shapes.
The normals for the vertices that are part of this segment will be calculated based on the positions of their neighbours. Each normal is interpolated between the normals of the two line segments connecting it with its neighbours. Closer vertices have a stronger effect on the normal than more distant ones.
Since the vertices corresponding to the first and last indices do not have two neighbouring vertices, their normals must be provided manually.
Fields
indices: Vec<u32>
A list of indices representing this segment of the perimeter of the mesh.
The indices must be ordered such that the outside of the mesh is to the right when walking along the vertices of the mesh in the order provided by the indices.
For geometry to be rendered, you must provide at least two indices.
Flat
This segment of the perimeter will be shaded flat.
This has the effect of rendering the segment’s faces with hard edges.
Fields
indices: Vec<u32>
A list of indices representing this segment of the perimeter of the mesh.
The indices must be ordered such that the outside of the mesh is to the right when walking along the vertices of the mesh in the order provided by indices.
For geometry to be rendered, you must provide at least two indices.
Auto Trait Implementations§
impl Freeze for PerimeterSegment
impl RefUnwindSafe for PerimeterSegment
impl Send for PerimeterSegment
impl Sync for PerimeterSegment
impl Unpin for PerimeterSegment
impl UnwindSafe for PerimeterSegment
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
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
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>
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>
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)
&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)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.