Mcubes: Marching Cubes Isosurface library
Uses the Marching Cubes algorithm to create isosurfaces in Rust, from volume data. Designed to be easy to integrate.
Based loosely on PyMarchingCubes.
Outputs a native Mesh, which contains native Vertexs. In practice, you will convert these to whatever
mesh struct your application uses. For example, graphics::Mesh.
Uses lin-alg for its Vec3 type; this is the library's only dependency.
Used by the Daedalus molecule viewer to view experimentally-derived electron density from protein crystals.
The grid must be regularly spaced, along 3 orthogonal axes. Values are either a Vec<f32>, or points which impl
mcubes::GridPoint. This trait contains a single method: To get the value at that point.
Example use:
use ;
/// An example data struct from your application. If you use something like this
/// to represent a point, you may with to use the `from_gridpoints` constructor.
Why another Marching Cubes library? I couldn't figure out how to use the existing ones.