Skin extractor for a structured volume mesh. More...
#include <MeshVizXLM/extractors/MiSkinExtractIjk.h>
Public Member Functions | |
virtual | ~MiSkinExtractIjk () |
virtual void | addCellRange (MbVec3ui rbegin, MbVec3ui rend)=0 |
virtual void | clearCellRanges ()=0 |
virtual const MeXSurfaceMeshUnstructured & | extractSkin (const MiCellFilterIjk *cellFilter=NULL)=0 |
virtual const MeXScalardSetI & | extractScalarSet (const MiScalardSetIjk &inputSet)=0 |
virtual const MeXVec3dSetI & | extractVec3Set (const MiVec3dSetIjk &inputSet)=0 |
virtual const MeXSurfaceMeshUnstructured & | getExtract () const =0 |
| |
static MiSkinExtractIjk * | getNewInstance (const MiVolumeMeshRegular &mesh, bool parallel=true, MiTessellator *tessellator=NULL) |
static MiSkinExtractIjk * | getNewInstance (const MiVolumeMeshCurvilinear &mesh, bool parallel=true, MiTessellator *tessellator=NULL) |
static MiSkinExtractIjk * | getNewInstance (const MiVolumeMeshRectilinear &mesh, bool parallel=true, MiTessellator *tessellator=NULL) |
static MiSkinExtractIjk * | getNewInstance (const MiVolumeMeshVertexHexahedronIjk &mesh, bool parallel=true, MiTessellator *tessellator=NULL) |
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.
virtual MiSkinExtractIjk::~MiSkinExtractIjk | ( | ) | [inline, 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.
rbegin | the smallest cell indices (i,j,k) in the range. | |
rend | the 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. |
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.
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.
inputSet | the input scalar set defined on the volume mesh |
Implemented in MiSkinExtractHexahedronIjk.
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).
cellFilter | The cell filter. |
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.
inputSet | the input vec3 set defined on the volume mesh |
Implemented in MiSkinExtractHexahedronIjk.
virtual const MeXSurfaceMeshUnstructured& MiSkinExtractIjk::getExtract | ( | ) | const [pure virtual] |
Returns the result of the extraction as a mesh.
static MiSkinExtractIjk* MiSkinExtractIjk::getNewInstance | ( | const MiVolumeMeshVertexHexahedronIjk & | mesh, | |
bool | parallel = true , |
|||
MiTessellator * | tessellator = NULL | |||
) | [static] |
Factory method returning a new instance of a class implementing this interface.
mesh | The input mesh | |
parallel | When true, tries to create an extract module using a parallel algorithm to speed up the extraction. | |
tessellator | The tessellator object used for tessellating non linear cells (quadratic,...). |
static MiSkinExtractIjk* MiSkinExtractIjk::getNewInstance | ( | const MiVolumeMeshRectilinear & | mesh, | |
bool | parallel = true , |
|||
MiTessellator * | tessellator = NULL | |||
) | [static] |
Factory method returning a new instance of a class implementing this interface.
mesh | The input mesh | |
parallel | When true, tries to create an extract module using a parallel algorithm to speed up the extraction. | |
tessellator | The tessellator object used for tessellating non linear cells (quadratic,...). |
static MiSkinExtractIjk* MiSkinExtractIjk::getNewInstance | ( | const MiVolumeMeshCurvilinear & | mesh, | |
bool | parallel = true , |
|||
MiTessellator * | tessellator = NULL | |||
) | [static] |
Factory method returning a new instance of a class implementing this interface.
mesh | The input mesh | |
parallel | When true, tries to create an extract module using a parallel algorithm to speed up the extraction. | |
tessellator | The tessellator object used for tessellating non linear cells (quadratic,...). |
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.
mesh | The input mesh | |
parallel | When true, tries to create an extract module using a parallel algorithm to speed up the extraction. | |
tessellator | The tessellator object used for tessellating non linear cells (quadratic,...). |