#include <MRMarchingCubes.h>
Public Member Functions | |
MRVOXELS_API | MarchingCubesByParts (const Vector3i &dims, const MarchingCubesParams ¶ms, int layersPerBlock=0) |
MRVOXELS_API | ~MarchingCubesByParts () |
MRVOXELS_API | MarchingCubesByParts (MarchingCubesByParts &&s) noexcept |
MRVOXELS_API MarchingCubesByParts & | operator= (MarchingCubesByParts &&s) noexcept |
MRVOXELS_API int | layersPerBlock () const |
the number of z-slices of the volume in the blocks | |
MRVOXELS_API int | nextZ () const |
the last z-layer of the previous part and the first z-layer of the next part | |
MRVOXELS_API Expected< void > | addPart (const SimpleVolume &part) |
adds one more part of volume into consideration, with first z=nextZ() | |
MRVOXELS_API Expected< TriMesh > | finalize () |
finishes processing and outputs produced trimesh | |
converts volume split on parts by planes z=const into mesh, last z-layer of previous part must be repeated as first z-layer of next part usage: MarchingCubesByParts x( dims, params); x.addPart( part1 ); ... x.addPart( partN ); Mesh mesh = Mesh::fromTriMesh( *x.finalize() );
|
explicit |
prepares convention for given volume dimensions and given parameters
layersPerBlock | all z-slices of the volume will be partitioned on blocks of given size to process blocks in parallel (0 means auto-select layersPerBlock) |
MRVOXELS_API MR::MarchingCubesByParts::~MarchingCubesByParts | ( | ) |
|
noexcept |
MRVOXELS_API Expected< void > MR::MarchingCubesByParts::addPart | ( | const SimpleVolume & | part | ) |
adds one more part of volume into consideration, with first z=nextZ()
MRVOXELS_API Expected< TriMesh > MR::MarchingCubesByParts::finalize | ( | ) |
finishes processing and outputs produced trimesh
MRVOXELS_API int MR::MarchingCubesByParts::layersPerBlock | ( | ) | const |
the number of z-slices of the volume in the blocks
MRVOXELS_API int MR::MarchingCubesByParts::nextZ | ( | ) | const |
the last z-layer of the previous part and the first z-layer of the next part
|
noexcept |