Geometry processing library in pure Rust

:exclamation: Under development. API may change.

Features

Isotropic remeshing

This algorithm incrementally performs simple operations such as edge splits, edge collapses, edge flips, and Laplacian smoothing. All the vertices of the remeshed patch are reprojected to the original surface to keep a good approximation of the input. Any of those operations can be turned off using appropriate method (with_<operation>(false)).

image

Example

rust let remesher = IncrementalRemesher::new() .with_iterations_count(10) .with_split_edges(true) .with_collapse_edges(true) .with_flip_edges(true) .with_shift_vertices(true) .with_project_vertices(true); remesher.remesh(&mut mesh, 0.002f32);

Mesh simplification (decimation)

This library implements incremental edge decimation algorithm. On each iteration edge with lowest collapse cost is collapsed. Several stop condition are supported: * Max error - algorithm stops when collapse lowest cost is bigger than given value * Min faces count - algorithm stops when faces count drops below given value

image

Example

rust let mut decimator = EdgeDecimator::new() .max_error(Some(0.0005)) .min_faces_count(Some(10000)); decimator.decimate(&mut mesh);

TODO: