Remove overlapped cells from a given unstructured surface mesh or a list of meshes. More...
#include <MeshVizXLM/extractors/MiNonOverlappedCellsExtractUnstructured.h>
Public Member Functions | |
virtual | ~MiNonOverlappedCellsExtractUnstructured () |
virtual const MeXSurfaceMeshUnstructured & | extractSurface (const MiCellFilterI *cellFilter=NULL)=0 |
Builds the topology and geometry of the surface mesh after removing all overlapped cells. | |
virtual const MeXSurfaceMeshUnstructured & | extractSurface (const std::vector< const MiCellFilterI * > *cellFilters)=0 |
Builds the topology and geometry of the surface mesh after removing all overlapped cells. | |
virtual const MeXScalardSetI & | extractScalarSet (const MiScalardSetI &inputSet)=0 |
Extracts a scalar set from the original mesh. | |
virtual const MeXScalardSetI & | extractScalarSet (const std::vector< const MiScalardSetI * > &scalarSets)=0 |
virtual const MeXVec3dSetI & | extractVec3Set (const MiVec3dSetI &inputSet)=0 |
Extracts a vector set from the original mesh. | |
virtual const MeXVec3dSetI & | extractVec3Set (const std::vector< const MiVec3dSetI * > &vec3Sets)=0 |
Extracts a vector set from the list of meshes. | |
virtual const MeXSurfaceMeshUnstructured & | getExtract () 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 MiNonOverlappedCellsExtractUnstructured * | getNewInstance (const MiSurfaceMeshUnstructured &mesh, bool parallel=true) |
Factory method returning a new instance that works on a single input surface mesh. | |
static MiNonOverlappedCellsExtractUnstructured * | getNewInstance (const std::vector< const MiSurfaceMeshUnstructured * > &meshList, bool parallel=true) |
Factory method returning a new instance that works on a list of surface meshes. | |
Remove overlapped cells from a given unstructured surface mesh or a list of meshes.
This tool is another type of extractor which takes an unstructured surface mesh as input and produces a new surface mesh where overlapped cells are discarded. We define an overlapped cell as a cell lying on the same plane as a set of cells which are entirely hiding this cell. In the output mesh, the geometry refers to the input geometry and the topology refers to the input topology, except that the overlapped cells are set as "dead cells".
This tool can also work on a list of unstructured surface meshes. In that case, it merges all of them into an output mesh, using the original geometries and topologies where overlapped cells from all input meshes are set as dead. To work on a list of surface meshes, call getNewInstance(const std::vector<const MiSurfaceMeshUnstructured*>&, bool).
To detach the resulting mesh from the input meshes, it must be cloned (see MeXSurfaceMeshUnstructured::getNewClone()).
The following example shows how to remove overlapped cells in a list of meshes:
Definition at line 72 of file MiNonOverlappedCellsExtractUnstructured.h.
|
inlinevirtual |
Definition at line 75 of file MiNonOverlappedCellsExtractUnstructured.h.
|
pure virtual |
Extracts a scalar set from the original mesh.
The scalars are mapped onto the current extracted mesh.
inputSet | The input scalar set defined on the original mesh. |
|
pure virtual |
|
pure virtual |
Builds the topology and geometry of the surface mesh after removing all overlapped cells.
This method must not be called when the extractor is working on a list of meshes. (.ie. the extractor has been built by getNewInstance(const std::vector<const MiSurfaceMeshUnstructured*>&, bool))
|
pure virtual |
Builds the topology and geometry of the surface mesh after removing all overlapped cells.
The resulting mesh is made of all cells of the input meshes but those overlapped.
cellFilters | list that must contain same number of cell filters as the number of input meshes in getNewInstance(const std::vector<const MiSurfaceMeshUnstructured*>&, bool) |
|
pure virtual |
Extracts a vector set from the original mesh.
The vectors are mapped onto the current extracted mesh.
inputSet | The input vector set defined on the original mesh. |
|
pure virtual |
Extracts a vector set from the list of meshes.
The vectors are mapped onto the current extracted mesh.
vec3Sets | list that must contain same number of vector sets as the number of input meshes in getNewInstance(const std::vector<const MiSurfaceMeshUnstructured*>&, bool) |
|
pure virtual |
Returns the result of the extraction as a mesh.
|
static |
Factory method returning a new instance that works on a single input surface mesh.
mesh | the input surface mesh. |
parallel | dummy argument not yet used. |
|
static |
Factory method returning a new instance that works on a list of surface meshes.
meshList | the input meshes. |
parallel | dummy argument not yet used. |