Open Inventor Release 2024.1.0
 
Loading...
Searching...
No Matches
MiIsosurfExtractIjk Class Referenceabstract

MeshViz Isosurface extractor for structured volume meshes More...

#include <MeshVizXLM/extractors/MiIsosurfExtractIjk.h>

+ Inheritance diagram for MiIsosurfExtractIjk:

Public Member Functions

virtual ~MiIsosurfExtractIjk ()
 
virtual const MeXSurfaceMeshUnstructuredextractIsovalue (double isovalue, const MiScalardSetIjk &dataSet, const MiCellFilterIjk *cellFilter=NULL)=0
 Builds the isosurface of the given isovalue in the given dataset as a surface mesh.
 
virtual const MeXScalardSetIextractScalarSet (const MiScalardSetIjk &inputSet)=0
 Computes a scalar set on the extracted isosurface.
 
virtual const MeXVec3dSetIextractVec3Set (const MiVec3dSetIjk &inputSet)=0
 Computes a vector set on the extracted isosurface.
 
virtual const MeXSurfaceMeshUnstructuredgetExtract () const =0
 Returns the result of the extraction as a mesh.
 
- Public Member Functions inherited from MiBaseExtractor
virtual ~MiBaseExtractor ()
 
virtual void setExtractorCallback (MiExtractorCallback *extractorCallback)=0
 Set the user defined extractor callback which will be called before each extraction, during each extraction and after each extraction.
 
virtual SoDEPRECATED void setExtractorCallback (MiExtractorCallback &extractorCallback)
 

Static Public Member Functions

static MiIsosurfExtractIjkgetNewInstance (const MiVolumeMeshRegular &mesh, bool parallel=true, MiTessellator *tessellator=NULL)
 Factory method returning a new instance of a class implementing this interface.
 
static MiIsosurfExtractIjkgetNewInstance (const MiVolumeMeshCurvilinear &mesh, bool parallel=true, MiTessellator *tessellator=NULL)
 
static MiIsosurfExtractIjkgetNewInstance (const MiVolumeMeshRectilinear &mesh, bool parallel=true, MiTessellator *tessellator=NULL)
 
static MiIsosurfExtractIjkgetNewInstance (const MiVolumeMeshVertexHexahedronIjk &mesh, bool parallel=true, MiTessellator *tessellator=NULL)
 

Detailed Description

MeshViz Isosurface extractor for structured volume meshes

Builds the isosurface of the given isovalue in the given dataset.

Definition at line 46 of file MiIsosurfExtractIjk.h.

Constructor & Destructor Documentation

◆ ~MiIsosurfExtractIjk()

virtual MiIsosurfExtractIjk::~MiIsosurfExtractIjk ( )
inlinevirtual

Definition at line 49 of file MiIsosurfExtractIjk.h.

Member Function Documentation

◆ extractIsovalue()

virtual const MeXSurfaceMeshUnstructured & MiIsosurfExtractIjk::extractIsovalue ( double  isovalue,
const MiScalardSetIjk dataSet,
const MiCellFilterIjk cellFilter = NULL 
)
pure virtual

Builds the isosurface of the given isovalue in the given dataset as a surface mesh.

Note
Memory requirement: The extractIsovalue method allocates a block of memory. The size (in bytes) is the number of cells in the mesh. For a large mesh this is a significant amount of memory. For example, a mesh 2000 x 2000 x 2000 requires 8 giga-bytes of memory to extract an isosurface. Applications should use try/catch blocks to handle the case where this memory allocation fails. Also note that this memory is retained until the extractor is destroyed.
In the case of a dataset bound PER_CELL, it will be converted into a new internal dataset bound PER_NODE and cached in the extractor.
Parameters
isovalueValue for which an isosurface must be computed
dataSetThe input data set used to compute the isovalue from. When extracting from a MiVolumeMeshVertexHexahedronIjk, this dataset must be bound PER_CELL, otherwise the extraction will thow a std::exception.
cellFilterThe cell filter
Returns
The extracted isosurface

Implemented in MiIsosurfExtractHexahedronIjk.

◆ extractScalarSet()

virtual const MeXScalardSetI & MiIsosurfExtractIjk::extractScalarSet ( const MiScalardSetIjk inputSet)
pure virtual

Computes a scalar set on the extracted isosurface.

Parameters
inputSetthe input scalar set defined on the volume mesh When extracting from a MiVolumeMeshVertexHexahedronIjk, this dataset must be bound PER_CELL, otherwise the extraction will thow a std::exception.
Returns
the output scalar set defined on the resulting isosurface mesh

Implemented in MiIsosurfExtractHexahedronIjk.

◆ extractVec3Set()

virtual const MeXVec3dSetI & MiIsosurfExtractIjk::extractVec3Set ( const MiVec3dSetIjk inputSet)
pure virtual

Computes a vector set on the extracted isosurface.

Parameters
inputSetthe input vec3 set defined on the volume mesh When extracting from a MiVolumeMeshVertexHexahedronIjk, this dataset must be bound PER_CELL, otherwise the extraction will thow a std::exception.
Returns
the output scalar set defined on the resulting isosurface mesh

Implemented in MiIsosurfExtractHexahedronIjk.

◆ getExtract()

virtual const MeXSurfaceMeshUnstructured & MiIsosurfExtractIjk::getExtract ( ) const
pure virtual

Returns the result of the extraction as a mesh.

◆ getNewInstance() [1/4]

static MiIsosurfExtractIjk * MiIsosurfExtractIjk::getNewInstance ( const MiVolumeMeshCurvilinear mesh,
bool  parallel = true,
MiTessellator tessellator = NULL 
)
static

◆ getNewInstance() [2/4]

static MiIsosurfExtractIjk * MiIsosurfExtractIjk::getNewInstance ( const MiVolumeMeshRectilinear mesh,
bool  parallel = true,
MiTessellator tessellator = NULL 
)
static

◆ getNewInstance() [3/4]

static MiIsosurfExtractIjk * MiIsosurfExtractIjk::getNewInstance ( const MiVolumeMeshRegular mesh,
bool  parallel = true,
MiTessellator tessellator = NULL 
)
static

Factory method returning a new instance of a class implementing this interface.

Parameters
meshThe input mesh
parallelWhen true, tries to create an extract module using a parallel algorithm to speed up the extraction.
tessellatorThe tessellator object used for tessellating non linear cells (quadratic,...).
Note
Only some of the extraction algorithms have a parallel implementation.

◆ getNewInstance() [4/4]

static MiIsosurfExtractIjk * MiIsosurfExtractIjk::getNewInstance ( const MiVolumeMeshVertexHexahedronIjk mesh,
bool  parallel = true,
MiTessellator tessellator = NULL 
)
static

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