|
VisuTwin Canvas
C++ 3D Engine — Metal Backend
|
#include <platform/graphics/metal/metalMarchingCubesPass.h>
Public Member Functions | |
| MCExtractResult | extract (Texture *volumeTexture, const MCComputeParams ¶ms) |
| MCBatchResult | extractBatch (Texture *volumeTexture, const MCComputeParams &baseParams, const std::vector< float > &isovalues, const std::vector< bool > &flipNormals={}) |
| bool | isReady () const |
| True once ensureResources() has succeeded. | |
| MetalMarchingCubesPass (const MetalMarchingCubesPass &)=delete | |
| MetalMarchingCubesPass (MetalGraphicsDevice *device) | |
| MetalMarchingCubesPass & | operator= (const MetalMarchingCubesPass &)=delete |
| ~MetalMarchingCubesPass () | |
GPU Marching Cubes isosurface extraction via Metal compute kernels.
Owns compute pipelines, lookup table buffers, and atomic counter buffer. Each extract() call allocates a fresh output vertex buffer that is transferred to the caller (per-extraction ownership).
Thread-unsafe – call from the main rendering thread only.
Definition at line 81 of file metalMarchingCubesPass.h.
|
explicit |
Definition at line 641 of file metalMarchingCubesPass.cpp.
Referenced by MetalMarchingCubesPass(), and operator=().
| visutwin::canvas::MetalMarchingCubesPass::~MetalMarchingCubesPass | ( | ) |
Definition at line 646 of file metalMarchingCubesPass.cpp.
|
delete |
References MetalMarchingCubesPass().
| MCExtractResult visutwin::canvas::MetalMarchingCubesPass::extract | ( | Texture * | volumeTexture, |
| const MCComputeParams & | params ) |
Extract an isosurface from a 3D volume texture. Each call allocates a new output buffer — the caller takes ownership.
| volumeTexture | 3D texture (R32Float) containing scalar volume data. |
| params | Extraction parameters (isovalue, dims, domain, etc.). |
Definition at line 799 of file metalMarchingCubesPass.cpp.
References visutwin::canvas::MCComputeParams::dimsX, visutwin::canvas::MCComputeParams::dimsY, visutwin::canvas::MCComputeParams::dimsZ, visutwin::canvas::Texture::impl(), visutwin::canvas::MCComputeParams::isovalue, visutwin::canvas::MCComputeParams::maxVertices, visutwin::canvas::MCExtractResult::success, visutwin::canvas::MCExtractResult::vertexBuffer, and visutwin::canvas::MCExtractResult::vertexCount.
| MCBatchResult visutwin::canvas::MetalMarchingCubesPass::extractBatch | ( | Texture * | volumeTexture, |
| const MCComputeParams & | baseParams, | ||
| const std::vector< float > & | isovalues, | ||
| const std::vector< bool > & | flipNormals = {} ) |
Extract multiple isosurfaces in a single batch call. Each layer gets its own output buffer — the caller takes ownership.
| volumeTexture | 3D texture (R32Float) containing scalar volume data. |
| baseParams | Base extraction parameters (dims, domain, texelSize shared). |
| isovalues | Isovalue for each layer. |
| flipNormals | Per-layer flip normal flags (same size as isovalues). |
Definition at line 946 of file metalMarchingCubesPass.cpp.
References visutwin::canvas::MCComputeParams::dimsX, visutwin::canvas::MCComputeParams::dimsY, visutwin::canvas::MCComputeParams::dimsZ, visutwin::canvas::MCComputeParams::flipNormals, visutwin::canvas::Texture::impl(), visutwin::canvas::MCComputeParams::isovalue, visutwin::canvas::MCBatchResult::layers, visutwin::canvas::MCComputeParams::maxVertices, and visutwin::canvas::MCBatchResult::success.
|
inlinenodiscard |
True once ensureResources() has succeeded.
Definition at line 113 of file metalMarchingCubesPass.h.
|
delete |
References MetalMarchingCubesPass().