Struct marching_cubes::marching::MarchingCubes
source · pub struct MarchingCubes { /* private fields */ }Expand description
A struct representing the Marching Cubes algorithm.
The Marching Cubes algorithm is used to extract a triangular mesh representation of a three-dimensional surface from a scalar field.
Examples
use iso::{MarchingCubes, GridCell, Triangle};
let grid = GridCell {
positions: [
[0.0, 0.0, 0.0],
[1.0, 0.0, 0.0],
[1.0, 1.0, 0.0],
[0.0, 1.0, 0.0],
[0.0, 0.0, 1.0],
[1.0, 0.0, 1.0],
[1.0, 1.0, 1.0],
[0.0, 1.0, 1.0]
],
value: [0.0, 0.5, 0.5, 1.0, 0.0, 1.0, 1.0, 0.0],
};
let isolevel = 0.5;
let mc = MarchingCubes::new(isolevel, grid);
let mut triangles = vec![];
let triangle_count = mc.polygonise(&mut triangles);
assert_eq!(triangle_count, 4);Implementations§
source§impl MarchingCubes
impl MarchingCubes
sourcepub fn new(iso_value: f32, grid: GridCell) -> Self
pub fn new(iso_value: f32, grid: GridCell) -> Self
Creates a new instance of the MarchingCubes struct.
Parameters
iso_value: A float value representing the isolevel to use when determining which parts of the grid cell are inside and outside the surface.grid: AGridCellstruct representing the cell to be polygonised. It contains the positions of the cell’s vertices and their values.
Returns
A new instance of the MarchingCubes struct.
sourcepub fn polygonise(self, triangles: &mut [Triangle]) -> i32
pub fn polygonise(self, triangles: &mut [Triangle]) -> i32
Polygonises a grid cell based on the stored isolevel, populating the given triangles slice with the resulting triangles.
Look at polygonise for more information regarding this function.
Parameters
triangles: A mutable slice ofTrianglestructs to be filled with the resulting triangles.
Returns
The number of triangles generated, as an i32.
Trait Implementations§
source§impl Clone for MarchingCubes
impl Clone for MarchingCubes
source§fn clone(&self) -> MarchingCubes
fn clone(&self) -> MarchingCubes
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more