Isosurface extractor for unstructured meshes
More...
#include <MeshVizXLM/extractors/MiIsosurfExtractUnstructured.h>
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.
◆ ~MiIsosurfExtractUnstructured()
virtual MiIsosurfExtractUnstructured::~MiIsosurfExtractUnstructured |
( |
| ) |
|
|
inlinevirtual |
◆ extractIsovalue()
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
-
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 |
- Returns
- The extracted isosurface
◆ extractLineIsovalue()
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
-
isovalue | Value for which an isosurface must be computed |
dataSet | The input data set used to compute the isovalue from |
cellFilter | The cell filter |
- Returns
- The extracted isosurface as line mesh
◆ extractScalarSet()
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
-
inputSet | the input scalar set defined on the volume mesh |
- Returns
- the output scalar set defined on the latest extracted mesh
◆ extractVec3Set()
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
-
inputSet | the input vector set defined on the volume mesh |
- Returns
- the output vector set defined on the latest extracted mesh
◆ getExtract()
Returns the result of the extraction as a mesh.
◆ getLineExtract()
Returns the result of the extraction as a line mesh.
◆ getNewInstance()
Factory method returning a new instance of a class implementing this interface.
- Parameters
-
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,...). |
- Note
- Only some of the extraction algorithms have a parallel implementation.
The documentation for this class was generated from the following file: