pub struct Mesh<const D: usize> { /* private fields */ }Implementations§
Source§impl Mesh<3>
impl Mesh<3>
pub fn normals(&self) -> TensorRank1Vec2D<3, Reference, Dimensionless>
Source§impl<const D: usize> Mesh<D>
impl<const D: usize> Mesh<D>
pub fn exterior_faces(&self) -> Vec<Vec<usize>>
pub fn bounding_boxes(&self) -> BoundingBoxes<D>
pub fn centroids(&self) -> Coordinates<D>
pub fn bounding_boxes_and_centroids( &self, ) -> impl Iterator<Item = (BoundingBox<D>, Coordinate<D>)>
pub fn blocks(&self) -> Option<&[usize]>
pub fn connectivities(&self) -> &[Connectivity]
pub fn node_sets(&self) -> &[Vec<usize>]
pub fn node_set_numbers(&self) -> Option<&[usize]>
pub fn set_node_sets(&mut self, node_sets: NodeSets)
pub fn side_sets(&self) -> &[Vec<(usize, usize)>]
pub fn side_set_numbers(&self) -> Option<&[usize]>
pub fn set_side_sets(&mut self, side_sets: SideSets)
pub fn iter(&self) -> impl Iterator<Item = &Connectivity>
pub fn coordinates(&self) -> &Coordinates<D>
pub fn node_element_connectivity(&self) -> &[Vec<usize>]
pub fn node_nodes(&self) -> &Graph
pub fn node_node_connectivity(&self) -> &[Vec<usize>]
pub fn number_of_element_blocks(&self) -> usize
pub fn number_of_face_blocks(&self) -> Option<usize>
pub fn number_of_elements(&self) -> usize
pub fn number_of_faces(&self) -> Option<usize>
pub fn number_of_nodes(&self) -> usize
Source§impl Mesh<3>
impl Mesh<3>
pub fn buffer( self, target: &Tessellation, fitting: Fitting, ) -> Result<Self, &'static str>
Sourcepub fn buffer_tets(
self,
target: &Tessellation,
fitting: Fitting,
) -> Result<Self, &'static str>
pub fn buffer_tets( self, target: &Tessellation, fitting: Fitting, ) -> Result<Self, &'static str>
Adds a buffer layer of tetrahedra to a tetrahedral mesh and fits it to the target.
The counterpart of buffer, differing in that each
boundary triangle raises a prism split into three tetrahedra rather
than one hexahedron, so the result stays a single tetrahedral block.
It also runs no clearance pre-pass. restrict is
defined on hexahedral boundary quadrilaterals and has no tetrahedral
analogue yet, so a boundary leaving some node no feasible direction is
fitted here rather than pruned first.
Source§impl Mesh<3>
impl Mesh<3>
pub fn from_segmentation<T>( segmentation: Segmentation<3, T>, remove: Option<&[T]>, ) -> Self
Source§impl<const D: usize> Mesh<D>
impl<const D: usize> Mesh<D>
pub fn smart_laplace_smooth(&mut self, iterations: usize, scale: Scalar)
Source§impl<const D: usize> Mesh<D>
impl<const D: usize> Mesh<D>
pub fn boundary_edges(&self) -> Vec<[usize; 2]>
pub fn boundary_loops(&self) -> Vec<Vec<usize>>
pub fn non_manifold_edges(&self) -> Vec<[usize; 2]>
pub fn non_manifold_seams(&self) -> Vec<Vec<[usize; 2]>>
pub fn non_manifold_vertices(&self) -> Vec<usize>
Trait Implementations§
Source§impl<const D: usize> From<(Set<Vec<Connectivity>>, Set<TensorVector<TensorRank1<D, Reference, Length>>>)> for Mesh<D>
impl<const D: usize> From<(Set<Vec<Connectivity>>, Set<TensorVector<TensorRank1<D, Reference, Length>>>)> for Mesh<D>
Source§fn from(
(connectivities, coordinates): (Connectivities, Set<Coordinates<D>>),
) -> Self
fn from( (connectivities, coordinates): (Connectivities, Set<Coordinates<D>>), ) -> Self
Converts to this type from the input type.
Source§impl<const D: usize> From<(Vec<Connectivity>, TensorVector<TensorRank1<D, Reference, Length>>)> for Mesh<D>
impl<const D: usize> From<(Vec<Connectivity>, TensorVector<TensorRank1<D, Reference, Length>>)> for Mesh<D>
Source§fn from(
(connectivities, coordinates): (Vec<Connectivity>, Coordinates<D>),
) -> Self
fn from( (connectivities, coordinates): (Vec<Connectivity>, Coordinates<D>), ) -> Self
Converts to this type from the input type.
Source§impl<const D: usize> From<Mesh<D>> for (Connectivities, Coordinates<D>)
impl<const D: usize> From<Mesh<D>> for (Connectivities, Coordinates<D>)
Source§impl From<Mesh<D>> for Tessellation
impl From<Mesh<D>> for Tessellation
Source§impl From<Tessellation> for Mesh<D>
impl From<Tessellation> for Mesh<D>
Source§fn from(tessellation: Tessellation) -> Self
fn from(tessellation: Tessellation) -> Self
Converts to this type from the input type.
Source§impl<const D: usize> IntoIterator for Mesh<D>
impl<const D: usize> IntoIterator for Mesh<D>
Auto Trait Implementations§
impl<const D: usize> !Freeze for Mesh<D>
impl<const D: usize> !RefUnwindSafe for Mesh<D>
impl<const D: usize> !Sync for Mesh<D>
impl<const D: usize> Send for Mesh<D>
impl<const D: usize> Unpin for Mesh<D>
impl<const D: usize> UnsafeUnpin for Mesh<D>
impl<const D: usize> UnwindSafe for Mesh<D>
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
Mutably borrows from an owned value. Read more