pub struct LineMesh<T>where
T: Real,{
pub vertex_positions: IntrinsicAttribute<[T; 3], VertexIndex>,
pub indices: IntrinsicAttribute<[usize; 2], 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; 2], FaceIndex>Pairs of indices into vertices representing line segments.
vertex_attributes: HashMap<String, Attribute<VertexIndex>>Vertex attributes.
face_attributes: HashMap<String, Attribute<FaceIndex>>Line segment attributes.
face_vertex_attributes: HashMap<String, Attribute<FaceVertexIndex>>Line segment vertex attributes.
face_edge_attributes: HashMap<String, Attribute<FaceEdgeIndex>>Line segment edge attributes.
A line segment can be seen as having two directed edges.
attribute_value_cache: HashSet<Value<MaybeUninit<usize>, AttributeValueHashVTable>>Indirect attribute value cache
Implementations§
Source§impl<T> LineMesh<T>where
T: Real,
impl<T> LineMesh<T>where
T: Real,
pub fn new(verts: Vec<[T; 3]>, indices: Vec<[usize; 2]>) -> LineMesh<T>
Sourcepub fn face_iter_mut(&mut self) -> IterMut<'_, [usize; 2]>
pub fn face_iter_mut(&mut self) -> IterMut<'_, [usize; 2]>
Iterate mutably over each face.
Sourcepub fn reversed(self) -> LineMesh<T>
pub fn reversed(self) -> LineMesh<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 LineMesh<T>where
T: Real,
impl<T> Attrib for LineMesh<T>where
T: Real,
Source§fn attrib_size<I>(&self) -> usizewhere
I: AttribIndex<LineMesh<T>>,
fn attrib_size<I>(&self) -> usizewhere
I: AttribIndex<LineMesh<T>>,
I.Source§fn attrib_dict<I>(&self) -> &HashMap<String, Attribute<I>>where
I: AttribIndex<LineMesh<T>>,
fn attrib_dict<I>(&self) -> &HashMap<String, Attribute<I>>where
I: AttribIndex<LineMesh<T>>,
Source§fn attrib_dict_mut<I>(&mut self) -> &mut HashMap<String, Attribute<I>>where
I: AttribIndex<LineMesh<T>>,
fn attrib_dict_mut<I>(&mut self) -> &mut HashMap<String, Attribute<I>>where
I: AttribIndex<LineMesh<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<LineMesh<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<LineMesh<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 LineMesh<T>where
T: Real,
impl<T> FaceAttrib for LineMesh<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 LineMesh<T>where
T: Real,
impl<T> FaceEdge for LineMesh<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 LineMesh<T>where
T: Real,
impl<T> FaceEdgeAttrib for LineMesh<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 LineMesh<T>where
T: Real,
impl<T> FaceVertex for LineMesh<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 LineMesh<T>where
T: Real,
impl<T> FaceVertexAttrib for LineMesh<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<PolyMesh<T>> for LineMesh<T>where
T: Real,
impl<T> From<PolyMesh<T>> for LineMesh<T>where
T: Real,
Source§fn from(mesh: PolyMesh<T>) -> LineMesh<T>
fn from(mesh: PolyMesh<T>) -> LineMesh<T>
Convert a PolyMesh into a LineMesh. This is effectively a wireframe construction.
Note that this conversion does not merge any attributes, each face will generate its own edge. This means that two neighbouring faces will generate two overlapping edges. This is done to preserve all attribute data during the conversion, which means that some of it is duplicated.
Source§impl<T> NumVertices for LineMesh<T>where
T: Real,
impl<T> NumVertices for LineMesh<T>where
T: Real,
fn num_vertices(&self) -> usize
Source§impl<T> VertexAttrib for LineMesh<T>where
T: Real,
impl<T> VertexAttrib for LineMesh<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 LineMesh<T>where
T: Real,
impl<T> VertexPositions for LineMesh<T>where
T: Real,
type Element = [T; 3]
Source§fn vertex_positions(&self) -> &[<LineMesh<T> as VertexPositions>::Element]
fn vertex_positions(&self) -> &[<LineMesh<T> as VertexPositions>::Element]
Source§fn vertex_positions_mut(
&mut self,
) -> &mut [<LineMesh<T> as VertexPositions>::Element]
fn vertex_positions_mut( &mut self, ) -> &mut [<LineMesh<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 LineMesh<T>where
T: Real,
Auto Trait Implementations§
impl<T> Freeze for LineMesh<T>
impl<T> RefUnwindSafe for LineMesh<T>where
T: RefUnwindSafe,
impl<T> Send for LineMesh<T>
impl<T> Sync for LineMesh<T>
impl<T> Unpin for LineMesh<T>where
T: Unpin,
impl<T> UnwindSafe for LineMesh<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.