Isosurface extractor for unstructured meshes More...
#include <MeshVizXLM/extractors/MiIsosurfExtractUnstructured.h>
Public Member Functions | |
virtual | ~MiIsosurfExtractUnstructured () |
virtual const MeXSurfaceMeshUnstructured & | extractIsovalue (double isovalue, const MiScalardSetI &dataSet, const MiCellFilterI *cellFilter=NULL)=0 |
virtual const MeXLineMeshUnstructured & | extractLineIsovalue (double isovalue, const MiScalardSetI &dataSet, const MiCellFilterI *cellFilter=NULL)=0 |
virtual const MeXScalardSetI & | extractScalarSet (const MiScalardSetI &inputSet)=0 |
virtual const MeXVec3dSetI & | extractVec3Set (const MiVec3dSetI &inputSet)=0 |
virtual const MeXSurfaceMeshUnstructured & | getExtract () const =0 |
virtual const MeXLineMeshUnstructured & | getLineExtract () const =0 |
Static Public Member Functions | |
static MiIsosurfExtractUnstructured * | getNewInstance (const MiVolumeMeshUnstructured &mesh, bool parallel=true, MiTessellator *tessellator=NULL) |
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.
virtual MiIsosurfExtractUnstructured::~MiIsosurfExtractUnstructured | ( | ) | [inline, virtual] |
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.
isovalue | Value for which an isosurface must be computed | |
dataSet | The 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. | |
cellFilter | The cell filter |
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.
isovalue | Value for which an isosurface must be computed | |
dataSet | The input data set used to compute the isovalue from | |
cellFilter | The cell filter |
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.
inputSet | the input scalar set defined on the volume mesh |
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.
inputSet | the input vector set defined on the volume mesh |
virtual const MeXSurfaceMeshUnstructured& MiIsosurfExtractUnstructured::getExtract | ( | ) | const [pure virtual] |
Returns the result of the extraction as a mesh.
virtual const MeXLineMeshUnstructured& MiIsosurfExtractUnstructured::getLineExtract | ( | ) | const [pure virtual] |
Returns the result of the extraction as a line mesh.
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.
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,...). |