pub struct TriangleMesh {
pub vertices: Vec<[f64; 3]>,
pub triangles: Vec<[usize; 3]>,
pub normals: Vec<[f64; 3]>,
}Expand description
Triangle mesh from tessellation.
Fields§
§vertices: Vec<[f64; 3]>Vertex positions.
triangles: Vec<[usize; 3]>Triangle indices (each triple is one triangle).
normals: Vec<[f64; 3]>Per-triangle normals (optional).
Implementations§
Source§impl TriangleMesh
impl TriangleMesh
Sourcepub fn add_vertex(&mut self, position: [f64; 3]) -> usize
pub fn add_vertex(&mut self, position: [f64; 3]) -> usize
Add a vertex and return its index.
Sourcepub fn add_triangle(&mut self, v0: usize, v1: usize, v2: usize)
pub fn add_triangle(&mut self, v0: usize, v1: usize, v2: usize)
Add a triangle.
Sourcepub fn compute_normals(&mut self)
pub fn compute_normals(&mut self)
Compute normals for all triangles.
Sourcepub fn bounding_box(&self) -> BoundingBox
pub fn bounding_box(&self) -> BoundingBox
Compute the bounding box.
Sourcepub fn surface_area(&self) -> f64
pub fn surface_area(&self) -> f64
Compute the total surface area.
Sourcepub fn vertex_count(&self) -> usize
pub fn vertex_count(&self) -> usize
Count the number of vertices.
Sourcepub fn triangle_count(&self) -> usize
pub fn triangle_count(&self) -> usize
Count the number of triangles.
Sourcepub fn merge(&mut self, other: &TriangleMesh)
pub fn merge(&mut self, other: &TriangleMesh)
Merge another mesh into this one.
Trait Implementations§
Source§impl Clone for TriangleMesh
impl Clone for TriangleMesh
Source§fn clone(&self) -> TriangleMesh
fn clone(&self) -> TriangleMesh
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TriangleMesh
impl Debug for TriangleMesh
Auto Trait Implementations§
impl Freeze for TriangleMesh
impl RefUnwindSafe for TriangleMesh
impl Send for TriangleMesh
impl Sync for TriangleMesh
impl Unpin for TriangleMesh
impl UnsafeUnpin for TriangleMesh
impl UnwindSafe for TriangleMesh
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.