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

MeshViz Skin extractor for an unstructured volume mesh. More...

#include <MeshVizXLM/extractors/MiSkinExtractUnstructured.h>

+ Inheritance diagram for MiSkinExtractUnstructured:

Public Member Functions

virtual ~MiSkinExtractUnstructured ()
 
virtual void addCellRange (size_t rbegin, size_t 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 MiCellFilterI *cellFilter=NULL)=0
 Builds the topology and geometry of a mesh skin.
 
virtual const MeXLineMeshUnstructuredextractLineSkin (const MiCellFilterI *cellFilter=NULL)=0
 Builds the topology and geometry of the line skin.
 
virtual const MeXPointMeshCurvilinearextractPoints (const MiCellFilterI *cellFilter=NULL)=0
 Builds the topology and geometry of the point skin.
 
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.
 
virtual const MeXPointMeshCurvilineargetPointExtract () const =0
 Returns the result of the extraction as a point 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 MiSkinExtractUnstructuredgetNewInstance (const MiVolumeMeshUnstructured &mesh, bool parallel=true, MiTessellator *tessellator=NULL)
 Factory method returning a new instance of a class implementing this interface.
 

Detailed Description

MeshViz Skin extractor for an unstructured volume mesh.

Performs 3 types of extractions:

extractSkin() builds a MeXSurfaceMeshUnstructured interfaces containing the skin of the given mesh. The skin of a mesh is made up of all the faces that belong to only one cell. Scalar and vector sets can be mapped onto this surface by calling extractScalarSet() and extractVec3Set().

extractLineSkin() builds a MeXLineMeshUnstructured interface containing the line skin of the given mesh, which is made up of the edges from the faces that belong to the skin. When working with quadratic meshes, only outer edges of non-linear cells are extracted.

extractPoints() builds an MeXPointMeshCurvilinear interface containing the point skin of the given mesh, which is made up of the nodes from the faces that belong to the skin.

Internal faces and edges of a mesh will not be displayed except if they are adjacent to dead cells.

extractScalarSet() builds the extracted scalarset corresponding to the latest skin extracted (surface, line or points).

extractVec3Set() builds the extracted vectorset corresponding to the latest skin extracted (surface, line or points).

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

Definition at line 64 of file MiSkinExtractUnstructured.h.

Constructor & Destructor Documentation

◆ ~MiSkinExtractUnstructured()

virtual MiSkinExtractUnstructured::~MiSkinExtractUnstructured ( )
inlinevirtual

Definition at line 67 of file MiSkinExtractUnstructured.h.

Member Function Documentation

◆ addCellRange()

virtual void MiSkinExtractUnstructured::addCellRange ( size_t  rbegin,
size_t  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 index in the range.
rendthe largest cell index in the range (not included in extraction). Note: The value UNDEFINED_ID is interpreted as the minimum/maximum cell index available in the current mesh.

◆ clearCellRanges()

virtual void MiSkinExtractUnstructured::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.

◆ extractLineSkin()

virtual const MeXLineMeshUnstructured & MiSkinExtractUnstructured::extractLineSkin ( const MiCellFilterI cellFilter = NULL)
pure virtual

Builds the topology and geometry of the line skin.

The line skin of the given mesh is made up of the edges from the faces that belong to the skin. When working with quadratic meshes, only outer edges of non-linear cells are extracted. Throws a MiCancellationException if cancelled (see MiExtractorCallback).

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

◆ extractPoints()

virtual const MeXPointMeshCurvilinear & MiSkinExtractUnstructured::extractPoints ( const MiCellFilterI cellFilter = NULL)
pure virtual

Builds the topology and geometry of the point skin.

The point skin of the given mesh is made up of the nodes from the faces that belong to the skin. Throws a MiCancellationException if cancelled (see MiExtractorCallback).

Parameters
cellFilterThe cell filter.
Returns
the skin extracted as a point mesh.

◆ extractScalarSet()

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

Extracts a scalar set from the volume mesh.

The scalars are mapped onto the current extracted skin refering to either the line skin or the surface skin depending on whether extractSkin() or extractLineSkin() was last called.

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

◆ extractSkin()

virtual const MeXSurfaceMeshUnstructured & MiSkinExtractUnstructured::extractSkin ( const MiCellFilterI 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 & MiSkinExtractUnstructured::extractVec3Set ( const MiVec3dSetI inputSet)
pure virtual

Extracts a vector set from the volume mesh.

The vectors are mapped onto the current extracted skin refering to either the line skin or the surface skin depending on whether extractSkin() or extractLineSkin() 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 & MiSkinExtractUnstructured::getExtract ( ) const
pure virtual

Returns the result of the extraction as a mesh.

◆ getLineExtract()

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

Returns the result of the extraction as a line mesh.

◆ getNewInstance()

static MiSkinExtractUnstructured * MiSkinExtractUnstructured::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.

◆ getPointExtract()

virtual const MeXPointMeshCurvilinear & MiSkinExtractUnstructured::getPointExtract ( ) const
pure virtual

Returns the result of the extraction as a point mesh.


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