Skip to main content

Crate openmesh

Crate openmesh 

Source
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 rayon

OpenMesh can be used in no_std environment:

cargo add openmesh --no-default-features --features libm

Re-exports§

pub use core::MeshError;
pub use core::MeshValidationReport;

Modules§

core
Algorithms and internal data structures.

Structs§

Face
Mesh
Mesh with vertex-face data structure.
Vertex