pub struct QuadMesh<T>where
T: Real,{
pub vertex_positions: IntrinsicAttribute<[T; 3], VertexIndex>,
pub indices: IntrinsicAttribute<[usize; 4], FaceIndex>,
pub vertex_attributes: HashMap<String, Attribute<VertexIndex>>,
pub face_attributes: HashMap<String, Attribute<FaceIndex>>,
pub face_vertex_attributes: HashMap<String, Attribute<FaceVertexIndex>>,
pub face_edge_attributes: HashMap<String, Attribute<FaceEdgeIndex>>,
pub attribute_value_cache: HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>,
}Fields§
§vertex_positions: IntrinsicAttribute<[T; 3], VertexIndex>Vertex positions.
indices: IntrinsicAttribute<[usize; 4], FaceIndex>Quadruples of indices into vertices representing quadrilaterals.
vertex_attributes: HashMap<String, Attribute<VertexIndex>>Vertex attributes.
face_attributes: HashMap<String, Attribute<FaceIndex>>Quad attributes.
face_vertex_attributes: HashMap<String, Attribute<FaceVertexIndex>>Quad vertex attributes.
face_edge_attributes: HashMap<String, Attribute<FaceEdgeIndex>>Quad edge attributes.
attribute_value_cache: HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>Indirect attribute value cache
Implementations§
Source§impl<T> QuadMesh<T>where
T: Real,
impl<T> QuadMesh<T>where
T: Real,
Sourcepub fn merge_with_vertex_source<'a, I>(
meshes: I,
source_attrib: &str,
) -> Result<QuadMesh<T>, Error>where
I: IntoIterator<Item = &'a QuadMesh<T>>,
pub fn merge_with_vertex_source<'a, I>(
meshes: I,
source_attrib: &str,
) -> Result<QuadMesh<T>, Error>where
I: IntoIterator<Item = &'a QuadMesh<T>>,
Merge a iterator of meshes into a single distinct mesh.
This version of merge accepts an attribute name for the source index on vertices.
The mesh vertices will be merged in the order given by the source attribute. This
is useful when merging previously split up meshes. The source attribute needs to
have type usize.
If the source attribute does not exist in at least one of the given meshes, then
None is returned and the merge is aborted.
This is a non-destructive merge — both original meshes remain intact. This also means that this way of merging is somewhat more expensive than a merge without any source indices.
Source§impl<T> QuadMesh<T>where
T: Real,
impl<T> QuadMesh<T>where
T: Real,
pub fn new(verts: Vec<[T; 3]>, indices: Vec<[usize; 4]>) -> QuadMesh<T>
Sourcepub fn face_iter_mut(&mut self) -> IterMut<'_, [usize; 4]>
pub fn face_iter_mut(&mut self) -> IterMut<'_, [usize; 4]>
Iterate mutably over each face.
Sourcepub fn reversed(self) -> QuadMesh<T>
pub fn reversed(self) -> QuadMesh<T>
Reverse the order of each polygon in this mesh. This is the consuming version of the
reverse method.
Sourcepub fn sort_vertices_by_key<K, F>(&mut self, f: F)
pub fn sort_vertices_by_key<K, F>(&mut self, f: F)
Sort vertices by the given key values.
Trait Implementations§
Source§impl<T> Attrib for QuadMesh<T>where
T: Real,
impl<T> Attrib for QuadMesh<T>where
T: Real,
Source§fn attrib_size<I>(&self) -> usizewhere
I: AttribIndex<QuadMesh<T>>,
fn attrib_size<I>(&self) -> usizewhere
I: AttribIndex<QuadMesh<T>>,
I.Source§fn attrib_dict<I>(&self) -> &HashMap<String, Attribute<I>>where
I: AttribIndex<QuadMesh<T>>,
fn attrib_dict<I>(&self) -> &HashMap<String, Attribute<I>>where
I: AttribIndex<QuadMesh<T>>,
Source§fn attrib_dict_mut<I>(&mut self) -> &mut HashMap<String, Attribute<I>>where
I: AttribIndex<QuadMesh<T>>,
fn attrib_dict_mut<I>(&mut self) -> &mut HashMap<String, Attribute<I>>where
I: AttribIndex<QuadMesh<T>>,
Source§fn attrib_dict_and_cache_mut<I>(
&mut self,
) -> (&mut HashMap<String, Attribute<I>>, Option<&mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>>)where
I: AttribIndex<QuadMesh<T>>,
fn attrib_dict_and_cache_mut<I>(
&mut self,
) -> (&mut HashMap<String, Attribute<I>>, Option<&mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>>)where
I: AttribIndex<QuadMesh<T>>,
Source§fn add_attrib<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<&mut Attribute<I>, Error>where
I: AttribIndex<Self>,
T: AttributeValue,
fn add_attrib<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<&mut Attribute<I>, Error>where
I: AttribIndex<Self>,
T: AttributeValue,
Source§fn add_attrib_data<'a, T, I>(
&mut self,
name: &'a str,
data: Vec<T>,
) -> Result<&mut Attribute<I>, Error>
fn add_attrib_data<'a, T, I>( &mut self, name: &'a str, data: Vec<T>, ) -> Result<&mut Attribute<I>, Error>
Vec<T>. data must have
exactly the right size for the attribute to be added successfully.Source§fn set_attrib<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<&mut Attribute<I>, Error>where
I: AttribIndex<Self>,
T: AttributeValue,
fn set_attrib<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<&mut Attribute<I>, Error>where
I: AttribIndex<Self>,
T: AttributeValue,
Source§fn set_attrib_data<'a, T, I>(
&mut self,
name: &'a str,
data: &[T],
) -> Result<&mut Attribute<I>, Error>
fn set_attrib_data<'a, T, I>( &mut self, name: &'a str, data: &[T], ) -> Result<&mut Attribute<I>, Error>
data must have exactly the
right size for the attribute to be set successfully.Source§fn add_indirect_attrib<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<(&mut Attribute<I>, &mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>where
I: AttribIndex<Self>,
T: AttributeValueHash,
fn add_indirect_attrib<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<(&mut Attribute<I>, &mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>where
I: AttribIndex<Self>,
T: AttributeValueHash,
Source§fn set_indirect_attrib<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<(&mut Attribute<I>, &mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>where
I: AttribIndex<Self>,
T: AttributeValueHash,
fn set_indirect_attrib<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<(&mut Attribute<I>, &mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>where
I: AttribIndex<Self>,
T: AttributeValueHash,
Source§fn add_indirect_attrib_data<'a, I>(
&mut self,
name: &'a str,
data: IndirectData,
) -> Result<(&mut Attribute<I>, &mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>where
I: AttribIndex<Self>,
fn add_indirect_attrib_data<'a, I>(
&mut self,
name: &'a str,
data: IndirectData,
) -> Result<(&mut Attribute<I>, &mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>where
I: AttribIndex<Self>,
IndirectData. data must have
exactly the right size for the attribute to be added successfully.Source§fn set_indirect_attrib_data<'a, I>(
&mut self,
name: &'a str,
data: IndirectData,
) -> Result<(&mut Attribute<I>, &mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>where
I: AttribIndex<Self>,
fn set_indirect_attrib_data<'a, I>(
&mut self,
name: &'a str,
data: IndirectData,
) -> Result<(&mut Attribute<I>, &mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>where
I: AttribIndex<Self>,
IndirectData instance. data must have
exactly the right size for the attribute to be set successfully.Source§fn duplicate_attrib<'a, 'b, T, I>(
&mut self,
name: &'a str,
new_name: &'b str,
) -> Result<&mut Attribute<I>, Error>
fn duplicate_attrib<'a, 'b, T, I>( &mut self, name: &'a str, new_name: &'b str, ) -> Result<&mut Attribute<I>, Error>
Source§fn remove_attrib<I>(&mut self, name: &str) -> Result<Attribute<I>, Error>where
I: AttribIndex<Self>,
fn remove_attrib<I>(&mut self, name: &str) -> Result<Attribute<I>, Error>where
I: AttribIndex<Self>,
Source§fn insert_attrib<I>(
&mut self,
name: &str,
attrib: Attribute<I>,
) -> Result<Option<Attribute<I>>, Error>where
I: AttribIndex<Self>,
fn insert_attrib<I>(
&mut self,
name: &str,
attrib: Attribute<I>,
) -> Result<Option<Attribute<I>>, Error>where
I: AttribIndex<Self>,
HashMap semantics. Read moreSource§fn attrib_or_add<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<&mut Attribute<I>, Error>where
I: AttribIndex<Self>,
T: AttributeValue,
fn attrib_or_add<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<&mut Attribute<I>, Error>where
I: AttribIndex<Self>,
T: AttributeValue,
Source§fn attrib_or_add_data<'a, T, I>(
&mut self,
name: &'a str,
data: &[T],
) -> Result<&mut Attribute<I>, Error>
fn attrib_or_add_data<'a, T, I>( &mut self, name: &'a str, data: &[T], ) -> Result<&mut Attribute<I>, Error>
Source§fn attrib_or_add_indirect<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<(&mut Attribute<I>, &mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>where
I: AttribIndex<Self>,
T: AttributeValueHash,
fn attrib_or_add_indirect<'a, T, I>(
&mut self,
name: &'a str,
def: T,
) -> Result<(&mut Attribute<I>, &mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>where
I: AttribIndex<Self>,
T: AttributeValueHash,
Source§fn direct_attrib_iter<'a, 'b, T, I>(
&'b self,
name: &'a str,
) -> Result<Iter<'b, T>, Error>
fn direct_attrib_iter<'a, 'b, T, I>( &'b self, name: &'a str, ) -> Result<Iter<'b, T>, Error>
Source§fn attrib_iter_mut<'a, 'b, T, I>(
&'b mut self,
name: &'a str,
) -> Result<IterMut<'b, T>, Error>
fn attrib_iter_mut<'a, 'b, T, I>( &'b mut self, name: &'a str, ) -> Result<IterMut<'b, T>, Error>
Source§fn attrib_iter<'b, T, I>(
&'b self,
name: &str,
) -> Result<Box<dyn Iterator<Item = &'b T> + 'b>, Error>
fn attrib_iter<'b, T, I>( &'b self, name: &str, ) -> Result<Box<dyn Iterator<Item = &'b T> + 'b>, Error>
Source§fn indirect_attrib_update_with<'a, 'b, T, I, F>(
&'b mut self,
name: &'a str,
f: F,
) -> Result<(&'b mut Attribute<I>, &'b mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>
fn indirect_attrib_update_with<'a, 'b, T, I, F>( &'b mut self, name: &'a str, f: F, ) -> Result<(&'b mut Attribute<I>, &'b mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>), Error>
Source§fn attrib_exists<I>(&self, name: &str) -> boolwhere
I: AttribIndex<Self>,
fn attrib_exists<I>(&self, name: &str) -> boolwhere
I: AttribIndex<Self>,
true if the given attribute exists at the given location, and
false otherwise, even if the specified attribute location is invalid
for the mesh.Source§fn attrib_check<'a, T, I>(&self, name: &'a str) -> Result<&Attribute<I>, Error>where
T: Any,
I: AttribIndex<Self>,
fn attrib_check<'a, T, I>(&self, name: &'a str) -> Result<&Attribute<I>, Error>where
T: Any,
I: AttribIndex<Self>,
Source§fn attrib_as_slice<'a, 'b, T, I>(
&'b self,
name: &'a str,
) -> Result<&'b [T], Error>where
T: 'static,
I: 'b + AttribIndex<Self>,
fn attrib_as_slice<'a, 'b, T, I>(
&'b self,
name: &'a str,
) -> Result<&'b [T], Error>where
T: 'static,
I: 'b + AttribIndex<Self>,
Source§fn attrib_as_mut_slice<'a, 'b, T, I>(
&'b mut self,
name: &'a str,
) -> Result<&'b mut [T], Error>where
T: 'static,
I: 'b + AttribIndex<Self>,
fn attrib_as_mut_slice<'a, 'b, T, I>(
&'b mut self,
name: &'a str,
) -> Result<&'b mut [T], Error>where
T: 'static,
I: 'b + AttribIndex<Self>,
Source§fn attrib_clone_into_vec<'a, 'b, T, I>(
&'b self,
name: &'a str,
) -> Result<Vec<T>, Error>where
I: 'b + AttribIndex<Self>,
T: AttributeValueHash,
fn attrib_clone_into_vec<'a, 'b, T, I>(
&'b self,
name: &'a str,
) -> Result<Vec<T>, Error>where
I: 'b + AttribIndex<Self>,
T: AttributeValueHash,
Vec<T>. Read moreSource§fn direct_attrib_clone_into_vec<'a, 'b, T, I>(
&'b self,
name: &'a str,
) -> Result<Vec<T>, Error>where
I: 'b + AttribIndex<Self>,
T: AttributeValue,
fn direct_attrib_clone_into_vec<'a, 'b, T, I>(
&'b self,
name: &'a str,
) -> Result<Vec<T>, Error>where
I: 'b + AttribIndex<Self>,
T: AttributeValue,
Vec<T>.Source§fn attrib<'a, I>(&self, name: &'a str) -> Result<&Attribute<I>, Error>where
I: AttribIndex<Self>,
fn attrib<'a, I>(&self, name: &'a str) -> Result<&Attribute<I>, Error>where
I: AttribIndex<Self>,
Source§fn attrib_mut<'a, I>(
&mut self,
name: &'a str,
) -> Result<&mut Attribute<I>, Error>where
I: AttribIndex<Self>,
fn attrib_mut<'a, I>(
&mut self,
name: &'a str,
) -> Result<&mut Attribute<I>, Error>where
I: AttribIndex<Self>,
Source§impl<T> FaceAttrib for QuadMesh<T>where
T: Real,
impl<T> FaceAttrib for QuadMesh<T>where
T: Real,
Source§fn topo_attrib_size(&self) -> usize
fn topo_attrib_size(&self) -> usize
Source§fn topo_attrib_dict(&self) -> &HashMap<String, Attribute<FaceIndex>>
fn topo_attrib_dict(&self) -> &HashMap<String, Attribute<FaceIndex>>
Source§fn topo_attrib_dict_mut(&mut self) -> &mut HashMap<String, Attribute<FaceIndex>>
fn topo_attrib_dict_mut(&mut self) -> &mut HashMap<String, Attribute<FaceIndex>>
Source§fn topo_attrib_dict_and_cache_mut(
&mut self,
) -> (&mut HashMap<String, Attribute<FaceIndex>>, Option<&mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>>)
fn topo_attrib_dict_and_cache_mut( &mut self, ) -> (&mut HashMap<String, Attribute<FaceIndex>>, Option<&mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>>)
Source§impl<T> FaceEdge for QuadMesh<T>where
T: Real,
impl<T> FaceEdge for QuadMesh<T>where
T: Real,
Source§fn edge<FEI>(&self, fe_idx: FEI) -> EdgeIndex
fn edge<FEI>(&self, fe_idx: FEI) -> EdgeIndex
Source§fn face_edge<FI>(&self, fidx: FI, which: usize) -> Option<FaceEdgeIndex>
fn face_edge<FI>(&self, fidx: FI, which: usize) -> Option<FaceEdgeIndex>
Source§fn num_face_edges(&self) -> usize
fn num_face_edges(&self) -> usize
Source§fn num_edges_at_face<FI>(&self, _: FI) -> usize
fn num_edges_at_face<FI>(&self, _: FI) -> usize
Source§impl<T> FaceEdgeAttrib for QuadMesh<T>where
T: Real,
impl<T> FaceEdgeAttrib for QuadMesh<T>where
T: Real,
Source§fn topo_attrib_size(&self) -> usize
fn topo_attrib_size(&self) -> usize
Source§fn topo_attrib_dict(&self) -> &HashMap<String, Attribute<FaceEdgeIndex>>
fn topo_attrib_dict(&self) -> &HashMap<String, Attribute<FaceEdgeIndex>>
Source§fn topo_attrib_dict_mut(
&mut self,
) -> &mut HashMap<String, Attribute<FaceEdgeIndex>>
fn topo_attrib_dict_mut( &mut self, ) -> &mut HashMap<String, Attribute<FaceEdgeIndex>>
Source§fn topo_attrib_dict_and_cache_mut(
&mut self,
) -> (&mut HashMap<String, Attribute<FaceEdgeIndex>>, Option<&mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>>)
fn topo_attrib_dict_and_cache_mut( &mut self, ) -> (&mut HashMap<String, Attribute<FaceEdgeIndex>>, Option<&mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>>)
Source§impl<T> FaceVertex for QuadMesh<T>where
T: Real,
impl<T> FaceVertex for QuadMesh<T>where
T: Real,
Source§fn vertex<FVI>(&self, fv_idx: FVI) -> VertexIndex
fn vertex<FVI>(&self, fv_idx: FVI) -> VertexIndex
Source§fn face_vertex<FI>(&self, fidx: FI, which: usize) -> Option<FaceVertexIndex>
fn face_vertex<FI>(&self, fidx: FI, which: usize) -> Option<FaceVertexIndex>
Source§fn num_face_vertices(&self) -> usize
fn num_face_vertices(&self) -> usize
Source§fn num_vertices_at_face<FI>(&self, _: FI) -> usize
fn num_vertices_at_face<FI>(&self, _: FI) -> usize
Source§fn face_to_vertex<I>(&self, i: I, k: usize) -> Option<VertexIndex>
fn face_to_vertex<I>(&self, i: I, k: usize) -> Option<VertexIndex>
Source§fn reverse_topo(&self) -> (Vec<usize>, Vec<usize>)where
Self: NumFaces + NumVertices,
fn reverse_topo(&self) -> (Vec<usize>, Vec<usize>)where
Self: NumFaces + NumVertices,
Source§fn reverse_source_topo(&self) -> (Vec<usize>, Vec<usize>)where
Self: NumVertices,
fn reverse_source_topo(&self) -> (Vec<usize>, Vec<usize>)where
Self: NumVertices,
Source§impl<T> FaceVertexAttrib for QuadMesh<T>where
T: Real,
impl<T> FaceVertexAttrib for QuadMesh<T>where
T: Real,
Source§fn topo_attrib_size(&self) -> usize
fn topo_attrib_size(&self) -> usize
Source§fn topo_attrib_dict(&self) -> &HashMap<String, Attribute<FaceVertexIndex>>
fn topo_attrib_dict(&self) -> &HashMap<String, Attribute<FaceVertexIndex>>
Source§fn topo_attrib_dict_mut(
&mut self,
) -> &mut HashMap<String, Attribute<FaceVertexIndex>>
fn topo_attrib_dict_mut( &mut self, ) -> &mut HashMap<String, Attribute<FaceVertexIndex>>
Source§fn topo_attrib_dict_and_cache_mut(
&mut self,
) -> (&mut HashMap<String, Attribute<FaceVertexIndex>>, Option<&mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>>)
fn topo_attrib_dict_and_cache_mut( &mut self, ) -> (&mut HashMap<String, Attribute<FaceVertexIndex>>, Option<&mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>>)
Source§impl<T> From<QuadMesh<T>> for PointCloud<T>where
T: Real,
Convert a quad mesh to a point cloud by erasing all quad data.
impl<T> From<QuadMesh<T>> for PointCloud<T>where
T: Real,
Convert a quad mesh to a point cloud by erasing all quad data.
Source§fn from(mesh: QuadMesh<T>) -> PointCloud<T>
fn from(mesh: QuadMesh<T>) -> PointCloud<T>
Source§impl<T> From<QuadMesh<T>> for PolyMesh<T>where
T: Real,
Convert a quad mesh into a polygon mesh.
impl<T> From<QuadMesh<T>> for PolyMesh<T>where
T: Real,
Convert a quad mesh into a polygon mesh.
Source§impl<T> From<QuadMesh<T>> for QuadMeshExt<T>where
T: Real,
impl<T> From<QuadMesh<T>> for QuadMeshExt<T>where
T: Real,
Source§fn from(base_mesh: QuadMesh<T>) -> QuadMeshExt<T>
fn from(base_mesh: QuadMesh<T>) -> QuadMeshExt<T>
Source§impl<T> From<QuadMeshExt<T>> for QuadMesh<T>where
T: Real,
impl<T> From<QuadMeshExt<T>> for QuadMesh<T>where
T: Real,
Source§fn from(ext: QuadMeshExt<T>) -> QuadMesh<T>
fn from(ext: QuadMeshExt<T>) -> QuadMesh<T>
Source§impl<T> Merge for QuadMesh<T>where
T: Real,
impl<T> Merge for QuadMesh<T>where
T: Real,
Source§fn merge(&mut self, other: QuadMesh<T>) -> &mut QuadMesh<T>
fn merge(&mut self, other: QuadMesh<T>) -> &mut QuadMesh<T>
Attributes with the same name but different types won’t be merged.
Source§fn merge_iter(iterable: impl IntoIterator<Item = Self>) -> Selfwhere
Self: Default,
fn merge_iter(iterable: impl IntoIterator<Item = Self>) -> Selfwhere
Self: Default,
Source§fn merge_vec(vec: Vec<Self>) -> Selfwhere
Self: Default,
fn merge_vec(vec: Vec<Self>) -> Selfwhere
Self: Default,
Vec of objects into one of the same type.Source§fn merge_slice(slice: &[Self]) -> Self
fn merge_slice(slice: &[Self]) -> Self
merge_vec, this function takes an immutable reference to a collection of
meshes, and creates a brand new mesh that is a union of all the given meshes.Source§impl<T> NumVertices for QuadMesh<T>where
T: Real,
impl<T> NumVertices for QuadMesh<T>where
T: Real,
fn num_vertices(&self) -> usize
Source§impl<T> SplitIntoConnectedComponents<VertexIndex, FaceIndex> for QuadMesh<T>where
T: Real,
impl<T> SplitIntoConnectedComponents<VertexIndex, FaceIndex> for QuadMesh<T>where
T: Real,
fn split_into_connected_components(self) -> Vec<QuadMesh<T>>
Source§impl<T> VertexAttrib for QuadMesh<T>where
T: Real,
impl<T> VertexAttrib for QuadMesh<T>where
T: Real,
Source§fn topo_attrib_size(&self) -> usize
fn topo_attrib_size(&self) -> usize
Source§fn topo_attrib_dict(&self) -> &HashMap<String, Attribute<VertexIndex>>
fn topo_attrib_dict(&self) -> &HashMap<String, Attribute<VertexIndex>>
Source§fn topo_attrib_dict_mut(
&mut self,
) -> &mut HashMap<String, Attribute<VertexIndex>>
fn topo_attrib_dict_mut( &mut self, ) -> &mut HashMap<String, Attribute<VertexIndex>>
Source§fn topo_attrib_dict_and_cache_mut(
&mut self,
) -> (&mut HashMap<String, Attribute<VertexIndex>>, Option<&mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>>)
fn topo_attrib_dict_and_cache_mut( &mut self, ) -> (&mut HashMap<String, Attribute<VertexIndex>>, Option<&mut HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>>)
Source§impl<T> VertexPositions for QuadMesh<T>where
T: Real,
impl<T> VertexPositions for QuadMesh<T>where
T: Real,
type Element = [T; 3]
Source§fn vertex_positions(&self) -> &[<QuadMesh<T> as VertexPositions>::Element]
fn vertex_positions(&self) -> &[<QuadMesh<T> as VertexPositions>::Element]
Source§fn vertex_positions_mut(
&mut self,
) -> &mut [<QuadMesh<T> as VertexPositions>::Element]
fn vertex_positions_mut( &mut self, ) -> &mut [<QuadMesh<T> as VertexPositions>::Element]
Source§fn vertex_position_iter(&self) -> Iter<'_, Self::Element>
fn vertex_position_iter(&self) -> Iter<'_, Self::Element>
Source§fn vertex_position_iter_mut(&mut self) -> IterMut<'_, Self::Element>
fn vertex_position_iter_mut(&mut self) -> IterMut<'_, Self::Element>
Source§fn vertex_position<VI>(&self, vidx: VI) -> Self::Element
fn vertex_position<VI>(&self, vidx: VI) -> Self::Element
impl<T> StructuralPartialEq for QuadMesh<T>where
T: Real,
Auto Trait Implementations§
impl<T> Freeze for QuadMesh<T>
impl<T> RefUnwindSafe for QuadMesh<T>where
T: RefUnwindSafe,
impl<T> Send for QuadMesh<T>
impl<T> Sync for QuadMesh<T>
impl<T> Unpin for QuadMesh<T>where
T: Unpin,
impl<T> UnwindSafe for QuadMesh<T>where
T: UnwindSafe,
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
Source§impl<M, T> BoundingBox<T> for M
impl<M, T> BoundingBox<T> for M
Source§fn bounding_box(&self) -> BBox<T>
fn bounding_box(&self) -> BBox<T>
Compute the bounding box of this object.
Source§impl<T> CloneBytes for Twhere
T: Clone + 'static,
impl<T> CloneBytes for Twhere
T: Clone + 'static,
unsafe fn clone_bytes(src: &[MaybeUninit<u8>]) -> Box<[MaybeUninit<u8>]>
unsafe fn clone_from_bytes(dst: &mut [MaybeUninit<u8>], src: &[MaybeUninit<u8>])
unsafe fn clone_into_raw_bytes( src: &[MaybeUninit<u8>], dst: &mut [MaybeUninit<u8>], )
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<M> Connectivity<FaceVertexIndex, VertexIndex> for M
impl<M> Connectivity<FaceVertexIndex, VertexIndex> for M
Source§type Topo = (Vec<usize>, Vec<usize>)
type Topo = (Vec<usize>, Vec<usize>)
Source§fn precompute_topo(
&self,
) -> <M as Connectivity<FaceVertexIndex, VertexIndex>>::Topo
fn precompute_topo( &self, ) -> <M as Connectivity<FaceVertexIndex, VertexIndex>>::Topo
Source§fn num_elements(&self) -> usize
fn num_elements(&self) -> usize
Source§fn push_neighbours<T>(
&self,
index: FaceVertexIndex,
stack: &mut Vec<FaceVertexIndex>,
topo: &<M as Connectivity<FaceVertexIndex, VertexIndex>>::Topo,
attrib: Option<&[T]>,
)
fn push_neighbours<T>( &self, index: FaceVertexIndex, stack: &mut Vec<FaceVertexIndex>, topo: &<M as Connectivity<FaceVertexIndex, VertexIndex>>::Topo, attrib: Option<&[T]>, )
Source§fn connectivity(&self) -> (Vec<usize>, usize)
fn connectivity(&self) -> (Vec<usize>, usize)
Source§impl<M> Connectivity<VertexIndex, FaceIndex> for M
impl<M> Connectivity<VertexIndex, FaceIndex> for M
Source§type Topo = (Vec<usize>, Vec<usize>)
type Topo = (Vec<usize>, Vec<usize>)
Source§fn precompute_topo(&self) -> <M as Connectivity<VertexIndex, FaceIndex>>::Topo
fn precompute_topo(&self) -> <M as Connectivity<VertexIndex, FaceIndex>>::Topo
Source§fn num_elements(&self) -> usize
fn num_elements(&self) -> usize
Source§fn push_neighbours<T>(
&self,
index: VertexIndex,
stack: &mut Vec<VertexIndex>,
topo: &<M as Connectivity<VertexIndex, FaceIndex>>::Topo,
_: Option<&[T]>,
)
fn push_neighbours<T>( &self, index: VertexIndex, stack: &mut Vec<VertexIndex>, topo: &<M as Connectivity<VertexIndex, FaceIndex>>::Topo, _: Option<&[T]>, )
Source§fn connectivity(&self) -> (Vec<usize>, usize)
fn connectivity(&self) -> (Vec<usize>, usize)
Source§impl<T> DebugBytes for Twhere
T: Debug + 'static,
impl<T> DebugBytes for Twhere
T: Debug + 'static,
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.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> DropBytes for Twhere
T: 'static,
impl<T> DropBytes for Twhere
T: 'static,
unsafe fn drop_bytes(bytes: &mut [MaybeUninit<u8>])
Source§impl<'a, S, I> Get<'a, I> for Swhere
I: GetIndex<'a, S>,
impl<'a, S, I> Get<'a, I> for Swhere
I: GetIndex<'a, S>,
type Output = <I as GetIndex<'a, S>>::Output
fn get(&self, idx: I) -> Option<<I as GetIndex<'a, S>>::Output>
Source§fn at(&self, idx: I) -> Self::Output
fn at(&self, idx: I) -> Self::Output
get that will panic if the equivalent get call is None,
which typically means that the given index is out of bounds. Read moreSource§unsafe fn at_unchecked(&self, idx: I) -> Self::Output
unsafe fn at_unchecked(&self, idx: I) -> Self::Output
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>
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>
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 moreSource§impl<S, I> Isolate<I> for Swhere
I: IsolateIndex<S>,
impl<S, I> Isolate<I> for Swhere
I: IsolateIndex<S>,
Source§impl<T> PartialEqBytes for Twhere
T: PartialEq + 'static,
impl<T> PartialEqBytes for Twhere
T: PartialEq + 'static,
unsafe fn eq_bytes(a: &[MaybeUninit<u8>], b: &[MaybeUninit<u8>]) -> bool
Source§impl<M> Partition for Mwhere
M: Attrib,
impl<M> Partition for Mwhere
M: Attrib,
Source§fn partition_by_attrib<T, Src>(&self, attrib: &str) -> (Vec<usize>, usize)where
T: AttributeValueHash,
Src: AttribIndex<M>,
fn partition_by_attrib<T, Src>(&self, attrib: &str) -> (Vec<usize>, usize)where
T: AttributeValueHash,
Src: AttribIndex<M>,
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T, N> PushArrayToVec<N> for T
impl<T, N> PushArrayToVec<N> for T
Source§impl<T, M> Rotate<T> for M
impl<T, M> Rotate<T> for M
Source§fn rotate_by_matrix(&mut self, mtx: [[T; 3]; 3])
fn rotate_by_matrix(&mut self, mtx: [[T; 3]; 3])
Rotate the mesh using the given column-major rotation matrix.
Source§fn rotate_by_vector(&mut self, e: [T; 3])where
T: Zero,
fn rotate_by_vector(&mut self, e: [T; 3])where
T: Zero,
e. The direction of
e specifies the axis of rotation and its magnitude is the angle in radians.Source§impl<S, T> Rotated<T> for S
impl<S, T> Rotated<T> for S
Source§fn rotated(self, u: [T; 3], theta: T) -> S
fn rotated(self, u: [T; 3], theta: T) -> S
self rotated about the unit vector u by the given angle theta (in
radians). Read moreSource§fn rotated_by_matrix(self, mtx: [[T; 3]; 3]) -> S
fn rotated_by_matrix(self, mtx: [[T; 3]; 3]) -> S
self rotated using the given column-major rotation matrixSource§fn rotated_by_vector(self, e: [T; 3]) -> S
fn rotated_by_vector(self, e: [T; 3]) -> S
self rotated about the Euler vector e.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.Source§impl<S, T> Translated<T> for Swhere
S: Translate<T>,
impl<S, T> Translated<T> for Swhere
S: Translate<T>,
Source§fn translated(self, t: [T; 3]) -> S
fn translated(self, t: [T; 3]) -> S
self translated by the given translation vector t.