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
.