openmesh 0.2.0

Vertex-face mesh validation library
Documentation

OpenMesh

OpenMesh is a Rust mesh validation library using face-vertex data structure.

Quick Start

Install OpenMesh with

cargo add openmesh

Example:

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:

This feature requires enabling the io feature flags, such as stl and obj.

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