pub trait MeshSubdivision<T: MeshTypeHalfEdge<Mesh = Self>>where
T::EP: DefaultEdgePayload,{
// Provided methods
fn loop_subdivision(
&mut self,
vp_builder: &impl VertexInterpolator<3, T>,
) -> &mut Self
where T::Mesh: HalfEdgeSemiBuilder<T> { ... }
fn subdivision_frequency(
&mut self,
des: SubdivisionDescription,
vp_builder: impl VertexInterpolator<3, T>,
) -> &mut Self
where T::Mesh: HalfEdgeSemiBuilder<T> { ... }
}Expand description
TODO A trait for subdividing meshes.
Provided Methods§
Sourcefn loop_subdivision(
&mut self,
vp_builder: &impl VertexInterpolator<3, T>,
) -> &mut Selfwhere
T::Mesh: HalfEdgeSemiBuilder<T>,
fn loop_subdivision(
&mut self,
vp_builder: &impl VertexInterpolator<3, T>,
) -> &mut Selfwhere
T::Mesh: HalfEdgeSemiBuilder<T>,
Subdivides the mesh with frequency (2,0).
Uses the vp_builder to create the new vertex payloads.
Returns a new mesh.
based on an algorithm developed by Charles Loop in 1987
Sourcefn subdivision_frequency(
&mut self,
des: SubdivisionDescription,
vp_builder: impl VertexInterpolator<3, T>,
) -> &mut Selfwhere
T::Mesh: HalfEdgeSemiBuilder<T>,
fn subdivision_frequency(
&mut self,
des: SubdivisionDescription,
vp_builder: impl VertexInterpolator<3, T>,
) -> &mut Selfwhere
T::Mesh: HalfEdgeSemiBuilder<T>,
Subdivides the mesh with frequency (n,m).
Uses the vp_builder to create the new vertex payloads.
Returns a new mesh.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.