Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
MiNonOverlappedCellsExtractUnstructured Class Referenceabstract

MeshViz Remove overlapped cells from a given unstructured surface mesh or a list of meshes. More...

#include <MeshVizXLM/extractors/MiNonOverlappedCellsExtractUnstructured.h>

+ Inheritance diagram for MiNonOverlappedCellsExtractUnstructured:

Public Member Functions

virtual ~MiNonOverlappedCellsExtractUnstructured ()
 
virtual const MeXSurfaceMeshUnstructuredextractSurface (const MiCellFilterI *cellFilter=NULL)=0
 Builds the topology and geometry of the surface mesh after removing all overlapped cells.
 
virtual const MeXSurfaceMeshUnstructuredextractSurface (const std::vector< const MiCellFilterI * > *cellFilters)=0
 Builds the topology and geometry of the surface mesh after removing all overlapped cells.
 
virtual const MeXScalardSetIextractScalarSet (const MiScalardSetI &inputSet)=0
 Extracts a scalar set from the original mesh.
 
virtual const MeXScalardSetIextractScalarSet (const std::vector< const MiScalardSetI * > &scalarSets)=0
 
virtual const MeXVec3dSetIextractVec3Set (const MiVec3dSetI &inputSet)=0
 Extracts a vector set from the original mesh.
 
virtual const MeXVec3dSetIextractVec3Set (const std::vector< const MiVec3dSetI * > &vec3Sets)=0
 Extracts a vector set from the list of meshes.
 
virtual const MeXSurfaceMeshUnstructuredgetExtract () 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 MiNonOverlappedCellsExtractUnstructuredgetNewInstance (const MiSurfaceMeshUnstructured &mesh, bool parallel=true)
 Factory method returning a new instance that works on a single input surface mesh.
 
static MiNonOverlappedCellsExtractUnstructuredgetNewInstance (const std::vector< const MiSurfaceMeshUnstructured * > &meshList, bool parallel=true)
 Factory method returning a new instance that works on a list of surface meshes.
 

Detailed Description

MeshViz 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:

const MeXScalardSetI& scalarSet = extract->extractScalarSet(scalarSets);
const MeXVec3dSetI& vectorSet = extract->extractVec3Set(vectorSets);
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Generic data set interfa...
Definition MeXDataSetI.h:45
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Remove overlapped cells ...
virtual const MeXScalardSetI & extractScalarSet(const MiScalardSetI &inputSet)=0
Extracts a scalar set from the original mesh.
virtual const MeXVec3dSetI & extractVec3Set(const MiVec3dSetI &inputSet)=0
Extracts a vector set from the original mesh.
static MiNonOverlappedCellsExtractUnstructured * getNewInstance(const MiSurfaceMeshUnstructured &mesh, bool parallel=true)
Factory method returning a new instance that works on a single input surface mesh.

Definition at line 72 of file MiNonOverlappedCellsExtractUnstructured.h.

Constructor & Destructor Documentation

◆ ~MiNonOverlappedCellsExtractUnstructured()

virtual MiNonOverlappedCellsExtractUnstructured::~MiNonOverlappedCellsExtractUnstructured ( )
inlinevirtual

Definition at line 75 of file MiNonOverlappedCellsExtractUnstructured.h.

Member Function Documentation

◆ extractScalarSet() [1/2]

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.

Parameters
inputSetThe input scalar set defined on the original mesh.
Returns
The output scalar set defined on the extracted mesh. 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))

◆ extractScalarSet() [2/2]

virtual const MeXScalardSetI & MiNonOverlappedCellsExtractUnstructured::extractScalarSet ( const std::vector< const MiScalardSetI * > &  scalarSets)
pure virtual

◆ extractSurface() [1/2]

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))

◆ extractSurface() [2/2]

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.

Parameters
cellFilterslist that must contain same number of cell filters as the number of input meshes in getNewInstance(const std::vector<const MiSurfaceMeshUnstructured*>&, bool)

◆ extractVec3Set() [1/2]

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.

Parameters
inputSetThe input vector set defined on the original mesh.
Returns
The output vector set defined on the extracted mesh. 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))

◆ extractVec3Set() [2/2]

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.

Parameters
vec3Setslist that must contain same number of vector sets as the number of input meshes in getNewInstance(const std::vector<const MiSurfaceMeshUnstructured*>&, bool)

◆ getExtract()

virtual const MeXSurfaceMeshUnstructured & MiNonOverlappedCellsExtractUnstructured::getExtract ( ) const
pure virtual

Returns the result of the extraction as a mesh.

◆ getNewInstance() [1/2]

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.

Parameters
meshthe input surface mesh.
paralleldummy argument not yet used.

◆ getNewInstance() [2/2]

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.

Parameters
meshListthe input meshes.
paralleldummy argument not yet used.

The documentation for this class was generated from the following file: