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 duplicate 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 moreSource§impl Debug for MarchingCubes
impl Debug for MarchingCubes
impl Copy for MarchingCubes
Auto Trait Implementations§
impl Freeze for MarchingCubes
impl RefUnwindSafe for MarchingCubes
impl Send for MarchingCubes
impl Sync for MarchingCubes
impl Unpin for MarchingCubes
impl UnwindSafe for MarchingCubes
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more