Open Inventor Release 2024.1.0
 
Loading...
Searching...
No Matches
MiLogicalSliceExtractRegular Class Referenceabstract

MeshViz Logical slice extractor for a regular volume mesh. More...

#include <MeshVizXLM/extractors/MiLogicalSliceExtractRegular.h>

+ Inheritance diagram for MiLogicalSliceExtractRegular:

Public Member Functions

virtual ~MiLogicalSliceExtractRegular ()
 
virtual const MeXSurfaceMeshRegularextractLogicalSlice (MiMesh::Dimension axis, size_t sliceIndex, bool upperVertex, const MiCellFilterIjk *cellFilter=NULL)=0
 Builds the topology and geometry of the logical slice at the given cell index along the given axis.
 
virtual const MeXDataSetIj< double > & extractScalarSet (const MiScalardSetIjk &inputSet)=0
 Extracts a scalar set from the original mesh.
 
virtual const MeXDataSetIj< MbVec3d > & extractVec3Set (const MiVec3dSetIjk &inputSet)=0
 Extracts a vector set from the original mesh.
 
virtual const MeXSurfaceMeshRegulargetExtract () 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 MiLogicalSliceExtractRegulargetNewInstance (const MiVolumeMeshRegular &mesh, bool parallel=true, MiTessellator *tessellator=NULL)
 Factory method returning a new instance of a class implementing this abstract class.
 

Detailed Description

MeshViz Logical slice extractor for a regular volume mesh.

A logical slice is a surface extracted from a IJK volume mesh. It is defined by a slice axis, an index and a boolean flag. The slice axis can be SLICE_I, SLICE_J or SLICE_K. The index represents one of the cell id to extract. For instance,

static SoDEPRECATED const MiMesh::Dimension SLICE_K
Slice at K constant.
virtual const MeXSurfaceMeshRegular & extractLogicalSlice(MiMesh::Dimension axis, size_t sliceIndex, bool upperVertex, const MiCellFilterIjk *cellFilter=NULL)=0
Builds the topology and geometry of the logical slice at the given cell index along the given axis.

extract all the cell(i,j,k) with k=10, extract the upper vertex (along the k-axis) of these cells. When a cell filter is provided, the returned surface contains dead cells.

The methods extractScalarSet() and extractVec3Set() compute a dataset that can be mapped onto the extracted surface. The new dataset is extracted from the given dataset and its size equals either the number of polygons or the number of vertices in the extracted surface. If the input dataset has a PER_CELL binding, the data of the selected cells are extracted and the size of this extracted dataset equals the number of extracted polygons.

Definition at line 61 of file MiLogicalSliceExtractRegular.h.

Constructor & Destructor Documentation

◆ ~MiLogicalSliceExtractRegular()

virtual MiLogicalSliceExtractRegular::~MiLogicalSliceExtractRegular ( )
inlinevirtual

Definition at line 64 of file MiLogicalSliceExtractRegular.h.

Member Function Documentation

◆ extractLogicalSlice()

virtual const MeXSurfaceMeshRegular & MiLogicalSliceExtractRegular::extractLogicalSlice ( MiMesh::Dimension  axis,
size_t  sliceIndex,
bool  upperVertex,
const MiCellFilterIjk cellFilter = NULL 
)
pure virtual

Builds the topology and geometry of the logical slice at the given cell index along the given axis.

When a cell filter is provided, the returned surface may contain dead cells.

Parameters
axisthe axis along which the extraction will be performed.
sliceIndexthe cell index along the selected axis to extract.
upperVertexextract the upper vertices of the selected cells if true, the lower vertices otherwise.
cellFilterthe cell filter to be used to accept or reject cells.

◆ extractScalarSet()

virtual const MeXDataSetIj< double > & MiLogicalSliceExtractRegular::extractScalarSet ( const MiScalardSetIjk 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.

◆ extractVec3Set()

virtual const MeXDataSetIj< MbVec3d > & MiLogicalSliceExtractRegular::extractVec3Set ( const MiVec3dSetIjk 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.

◆ getExtract()

virtual const MeXSurfaceMeshRegular & MiLogicalSliceExtractRegular::getExtract ( ) const
pure virtual

Returns the result of the extraction as a mesh.

◆ getNewInstance()

static MiLogicalSliceExtractRegular * MiLogicalSliceExtractRegular::getNewInstance ( const MiVolumeMeshRegular mesh,
bool  parallel = true,
MiTessellator tessellator = NULL 
)
static

Factory method returning a new instance of a class implementing this abstract class.

Parameters
meshThe input mesh
parallelWhen true, tries to create an extract module using a parallel algorithm to speed up the extraction.
tessellatorThe 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: