VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
visutwin::canvas::MetalMarchingCubesPass Class Reference

#include <platform/graphics/metal/metalMarchingCubesPass.h>

Public Member Functions

MCExtractResult extract (Texture *volumeTexture, const MCComputeParams &params)
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)
MetalMarchingCubesPassoperator= (const MetalMarchingCubesPass &)=delete
 ~MetalMarchingCubesPass ()

Detailed Description

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.

Constructor & Destructor Documentation

◆ MetalMarchingCubesPass() [1/2]

visutwin::canvas::MetalMarchingCubesPass::MetalMarchingCubesPass ( MetalGraphicsDevice * device)
explicit

Definition at line 641 of file metalMarchingCubesPass.cpp.

Referenced by MetalMarchingCubesPass(), and operator=().

◆ ~MetalMarchingCubesPass()

visutwin::canvas::MetalMarchingCubesPass::~MetalMarchingCubesPass ( )

Definition at line 646 of file metalMarchingCubesPass.cpp.

◆ MetalMarchingCubesPass() [2/2]

visutwin::canvas::MetalMarchingCubesPass::MetalMarchingCubesPass ( const MetalMarchingCubesPass & )
delete

Member Function Documentation

◆ extract()

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.

Parameters
volumeTexture3D texture (R32Float) containing scalar volume data.
paramsExtraction parameters (isovalue, dims, domain, etc.).
Returns
Extraction result with vertex buffer and count.

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.

◆ extractBatch()

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.

Parameters
volumeTexture3D texture (R32Float) containing scalar volume data.
baseParamsBase extraction parameters (dims, domain, texelSize shared).
isovaluesIsovalue for each layer.
flipNormalsPer-layer flip normal flags (same size as isovalues).
Returns
Batch result with per-layer vertex buffers and counts.

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.

◆ isReady()

bool visutwin::canvas::MetalMarchingCubesPass::isReady ( ) const
inlinenodiscard

True once ensureResources() has succeeded.

Definition at line 113 of file metalMarchingCubesPass.h.

◆ operator=()

MetalMarchingCubesPass & visutwin::canvas::MetalMarchingCubesPass::operator= ( const MetalMarchingCubesPass & )
delete

The documentation for this class was generated from the following files: