Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
MiSkinExtractIjk Class Referenceabstract

MeshViz Skin extractor for a structured volume mesh. More...

#include <MeshVizXLM/extractors/MiSkinExtractIjk.h>

+ Inheritance diagram for MiSkinExtractIjk:

Public Member Functions

virtual ~MiSkinExtractIjk ()
 
virtual void addCellRange (MbVec3ui rbegin, MbVec3ui rend)=0
 Add a new cell range constraint to iterate over when performing the skin extraction.
 
virtual void clearCellRanges ()=0
 Remove all cell ranges previously added.
 
virtual const MeXSurfaceMeshUnstructuredextractSkin (const MiCellFilterIjk *cellFilter=NULL)=0
 Builds the topology and geometry of a mesh skin.
 
virtual const MeXScalardSetIextractScalarSet (const MiScalardSetIjk &inputSet)=0
 Extracts a scalar set from the volume mesh.
 
virtual const MeXVec3dSetIextractVec3Set (const MiVec3dSetIjk &inputSet)=0
 Extracts a vector set from the volume mesh.
 
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 MiSkinExtractIjkgetNewInstance (const MiVolumeMeshRegular &mesh, bool parallel=true, MiTessellator *tessellator=NULL)
 Factory method returning a new instance of a class implementing this interface.
 
static MiSkinExtractIjkgetNewInstance (const MiVolumeMeshCurvilinear &mesh, bool parallel=true, MiTessellator *tessellator=NULL)
 
static MiSkinExtractIjkgetNewInstance (const MiVolumeMeshRectilinear &mesh, bool parallel=true, MiTessellator *tessellator=NULL)
 
static MiSkinExtractIjkgetNewInstance (const MiVolumeMeshVertexHexahedronIjk &mesh, bool parallel=true, MiTessellator *tessellator=NULL)
 

Detailed Description

MeshViz Skin extractor for a structured volume mesh.

Builds an MiSurfaceMeshUnstructured interface containing the mesh skin for the given data set at the given value. The skin of a mesh is made up of all the faces that belong to only one cell. Internal faces of a mesh will not be displayed unless they are adjacent to dead cells.

Note
The skin extraction processing on MiVolumeMeshCurvilinear and MiVolumeMeshVertexHexahedronIjk can be cancelled by setting a MiExtractorCallback, which will throw a MiCancellationException.

Definition at line 51 of file MiSkinExtractIjk.h.

Constructor & Destructor Documentation

◆ ~MiSkinExtractIjk()

virtual MiSkinExtractIjk::~MiSkinExtractIjk ( )
inlinevirtual

Definition at line 54 of file MiSkinExtractIjk.h.

Member Function Documentation

◆ addCellRange()

virtual void MiSkinExtractIjk::addCellRange ( MbVec3ui  rbegin,
MbVec3ui  rend 
)
pure virtual

Add a new cell range constraint to iterate over when performing the skin extraction.

Default is to iterate over all cells in the mesh. Adding a new range to the extractor changes its state, thus triggering a new extraction when calling extractSkin() even if the mesh remains the same. Note: For now, only the first added cellrange is considered during the extraction. Further added ones are ignored.

Parameters
rbeginthe smallest cell indices (i,j,k) in the range.
rendthe largest cell indices (i,j,k) in the range (not included in extraction). Note: The value UNDEFINED_ID may be used for any index and is interpreted as the minimum/maximum cell index available in the current mesh for that axis.

◆ clearCellRanges()

virtual void MiSkinExtractIjk::clearCellRanges ( )
pure virtual

Remove all cell ranges previously added.

Clearing all ranges changes the extractor state, thus triggering a new extraction when calling extractSkin() even if the mesh remains the same.

◆ extractScalarSet()

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

Extracts a scalar set from the volume mesh.

The scalars are mapped onto the current extracted skin.

Parameters
inputSetthe input scalar set defined on the volume mesh
Returns
the output scalar set defined on the resulting surface mesh

Implemented in MiSkinExtractHexahedronIjk.

◆ extractSkin()

virtual const MeXSurfaceMeshUnstructured & MiSkinExtractIjk::extractSkin ( const MiCellFilterIjk cellFilter = NULL)
pure virtual

Builds the topology and geometry of a mesh skin.

Throws a MiCancellationException if cancelled (see MiExtractorCallback).

Parameters
cellFilterThe cell filter.
Returns
The skin extracted as an unstructured surface mesh.

◆ extractVec3Set()

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

Extracts a vector set from the volume mesh.

The vectors are mapped onto the current extracted skin.

Parameters
inputSetthe input vec3 set defined on the volume mesh
Returns
the output scalar set defined on the resulting surface mesh

Implemented in MiSkinExtractHexahedronIjk.

◆ getExtract()

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

Returns the result of the extraction as a mesh.

◆ getNewInstance() [1/4]

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

◆ getNewInstance() [2/4]

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

◆ getNewInstance() [3/4]

static MiSkinExtractIjk * MiSkinExtractIjk::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 MiSkinExtractIjk * MiSkinExtractIjk::getNewInstance ( const MiVolumeMeshVertexHexahedronIjk mesh,
bool  parallel = true,
MiTessellator tessellator = NULL 
)
static

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