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 |
virtual const MeXSurfaceMeshUnstructured & | extractSurface (const std::vector< const MiCellFilterI * > *cellFilters)=0 |
virtual const MeXScalardSetI & | extractScalarSet (const MiScalardSetI &inputSet)=0 |
virtual const MeXScalardSetI & | extractScalarSet (const std::vector< const MiScalardSetI * > &scalarSets)=0 |
virtual const MeXVec3dSetI & | extractVec3Set (const MiVec3dSetI &inputSet)=0 |
virtual const MeXVec3dSetI & | extractVec3Set (const std::vector< const MiVec3dSetI * > &vec3Sets)=0 |
virtual const MeXSurfaceMeshUnstructured & | getExtract () const =0 |
Static Public Member Functions | |
static MiNonOverlappedCellsExtractUnstructured * | getNewInstance (const MiSurfaceMeshUnstructured &mesh, bool parallel=true) |
static MiNonOverlappedCellsExtractUnstructured * | getNewInstance (const std::vector< const MiSurfaceMeshUnstructured * > &meshList, bool parallel=true) |
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:
MiNonOverlappedCellsExtractUnstructured* extract = MiNonOverlappedCellsExtractUnstructured::getNewInstance(meshList); const MeXScalardSetI& scalarSet = extract->extractScalarSet(scalarSets); const MeXVec3dSetI& vectorSet = extract->extractVec3Set(vectorSets);
virtual MiNonOverlappedCellsExtractUnstructured::~MiNonOverlappedCellsExtractUnstructured | ( | ) | [inline, virtual] |
virtual const MeXScalardSetI& MiNonOverlappedCellsExtractUnstructured::extractScalarSet | ( | const std::vector< const MiScalardSetI * > & | scalarSets | ) | [pure virtual] |
virtual const MeXScalardSetI& MiNonOverlappedCellsExtractUnstructured::extractScalarSet | ( | const MiScalardSetI & | inputSet | ) | [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. |
virtual const MeXSurfaceMeshUnstructured& MiNonOverlappedCellsExtractUnstructured::extractSurface | ( | const std::vector< const MiCellFilterI * > * | cellFilters | ) | [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) |
virtual const MeXSurfaceMeshUnstructured& MiNonOverlappedCellsExtractUnstructured::extractSurface | ( | const MiCellFilterI * | cellFilter = NULL |
) | [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))
virtual const MeXVec3dSetI& MiNonOverlappedCellsExtractUnstructured::extractVec3Set | ( | const std::vector< const MiVec3dSetI * > & | vec3Sets | ) | [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) |
virtual const MeXVec3dSetI& MiNonOverlappedCellsExtractUnstructured::extractVec3Set | ( | const MiVec3dSetI & | inputSet | ) | [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. |
virtual const MeXSurfaceMeshUnstructured& MiNonOverlappedCellsExtractUnstructured::getExtract | ( | ) | const [pure virtual] |
Returns the result of the extraction as a mesh.
static MiNonOverlappedCellsExtractUnstructured* MiNonOverlappedCellsExtractUnstructured::getNewInstance | ( | const std::vector< const MiSurfaceMeshUnstructured * > & | meshList, | |
bool | parallel = true | |||
) | [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. |
static MiNonOverlappedCellsExtractUnstructured* MiNonOverlappedCellsExtractUnstructured::getNewInstance | ( | const MiSurfaceMeshUnstructured & | mesh, | |
bool | parallel = true | |||
) | [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. |