Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
MiIsosurfExtractUnstructured Class Referenceabstract

MeshViz Isosurface extractor for unstructured meshes More...

#include <MeshVizXLM/extractors/MiIsosurfExtractUnstructured.h>

+ Inheritance diagram for MiIsosurfExtractUnstructured:

Public Member Functions

virtual ~MiIsosurfExtractUnstructured ()
 
virtual const MeXSurfaceMeshUnstructuredextractIsovalue (double isovalue, const MiScalardSetI &dataSet, const MiCellFilterI *cellFilter=NULL)=0
 Builds the isosurface of the given isovalue in the given dataset as a surface mesh.
 
virtual const MeXLineMeshUnstructuredextractLineIsovalue (double isovalue, const MiScalardSetI &dataSet, const MiCellFilterI *cellFilter=NULL)=0
 Builds the isosurface of the given isovalue in the given dataset and as a line mesh representing the edges of each cell.
 
virtual const MeXScalardSetIextractScalarSet (const MiScalardSetI &inputSet)=0
 Extracts a scalar set from the volume mesh.
 
virtual const MeXVec3dSetIextractVec3Set (const MiVec3dSetI &inputSet)=0
 Extracts a vector set from the volume mesh.
 
virtual const MeXSurfaceMeshUnstructuredgetExtract () const =0
 Returns the result of the extraction as a mesh.
 
virtual const MeXLineMeshUnstructuredgetLineExtract () const =0
 Returns the result of the extraction as a line 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 MiIsosurfExtractUnstructuredgetNewInstance (const MiVolumeMeshUnstructured &mesh, bool parallel=true, MiTessellator *tessellator=NULL)
 Factory method returning a new instance of a class implementing this interface.
 

Detailed Description

MeshViz Isosurface extractor for unstructured meshes

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

When MiVolumeCell::getIsosurfTopology() cannot be defined in polyhedral cells, an MiTessellator::getNewTessellatorPolyhedron() is required as an argument of getNewInstance() to produce a volume mesh made up of cells compatible with the marching cube algorithm.

Note
Only instances from MiTessellator::getNewTessellatorPolyhedron() are supported, any other types derived from MiTessellator will be ignored.

Definition at line 52 of file MiIsosurfExtractUnstructured.h.

Constructor & Destructor Documentation

◆ ~MiIsosurfExtractUnstructured()

virtual MiIsosurfExtractUnstructured::~MiIsosurfExtractUnstructured ( )
inlinevirtual

Definition at line 55 of file MiIsosurfExtractUnstructured.h.

Member Function Documentation

◆ extractIsovalue()

virtual const MeXSurfaceMeshUnstructured & MiIsosurfExtractUnstructured::extractIsovalue ( double  isovalue,
const MiScalardSetI dataSet,
const MiCellFilterI 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

◆ extractLineIsovalue()

virtual const MeXLineMeshUnstructured & MiIsosurfExtractUnstructured::extractLineIsovalue ( double  isovalue,
const MiScalardSetI dataSet,
const MiCellFilterI cellFilter = NULL 
)
pure virtual

Builds the isosurface of the given isovalue in the given dataset and as a line mesh representing the edges of each cell.

Note
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
cellFilterThe cell filter
Returns
The extracted isosurface as line mesh

◆ extractScalarSet()

virtual const MeXScalardSetI & MiIsosurfExtractUnstructured::extractScalarSet ( const MiScalardSetI inputSet)
pure virtual

Extracts a scalar set from the volume mesh.

The scalars are mapped onto the current extracted isosurface refering to either the line mesh or the surface mesh depending on whether extractIsovalue() or extractLineIsovalue() was last called.

Parameters
inputSetthe input scalar set defined on the volume mesh
Returns
the output scalar set defined on the latest extracted mesh

◆ extractVec3Set()

virtual const MeXVec3dSetI & MiIsosurfExtractUnstructured::extractVec3Set ( const MiVec3dSetI inputSet)
pure virtual

Extracts a vector set from the volume mesh.

The vectors are mapped onto the current extracted isosurface refering to either the line mesh or the surface mesh depending on whether extractIsovalue() or extractLineIsovalue() was last called.

Parameters
inputSetthe input vector set defined on the volume mesh
Returns
the output vector set defined on the latest extracted mesh

◆ getExtract()

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

Returns the result of the extraction as a mesh.

◆ getLineExtract()

virtual const MeXLineMeshUnstructured & MiIsosurfExtractUnstructured::getLineExtract ( ) const
pure virtual

Returns the result of the extraction as a line mesh.

◆ getNewInstance()

static MiIsosurfExtractUnstructured * MiIsosurfExtractUnstructured::getNewInstance ( const MiVolumeMeshUnstructured 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.

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