Expand description
§OpenMesh
OpenMesh is a Rust mesh validation library using face-vertex data structure.
§Quick Start
use openmesh::{Face, Mesh, MeshError, Vertex};
let mesh = Mesh {
vertices: vec![
Vertex(0.0, 0.0, 0.0),
Vertex(1.0, 0.0, 0.0),
Vertex(0.0, 1.0, 0.0),
],
faces: vec![Face(0, 1, 2)],
};
assert_eq!(mesh.validate(), Err(MeshError::OpenEdges));Loading mesh from file (requires feature flags stl, obj, etc.):
cargo add openmesh --features stlⓘ
use openmesh::Mesh;
use std::fs::File;
let mut file = File::open("mesh.stl").expect("Failed to open mesh.stl");
let mesh: Mesh = Mesh::from_stl(&mut file).expect("Failed to load mesh.stl");
assert!(mesh.validate().is_ok());OpenMesh also supports parallelization using rayon:
cargo add openmesh --features rayonOpenMesh can be used in no_std environment:
cargo add openmesh --no-default-features --features libmRe-exports§
pub use core::MeshError;pub use core::MeshValidationReport;
Modules§
- core
- Algorithms and internal data structures.