Cylinder slice extractor for structured volume meshes More...
#include <MeshVizXLM/extractors/MiCylinderSliceExtractIjk.h>
Public Member Functions | |
virtual | ~MiCylinderSliceExtractIjk () |
virtual const MeXSurfaceMeshUnstructured & | extractSlice (const MbVec3< double > ¢er, double radius, const MbVec3< double > &direction, const MiCellFilterIjk *cellFilter=NULL)=0 |
virtual const MeXScalardSetI & | extractScalarSet (const MiScalardSetIjk &inputSet)=0 |
virtual const MeXVec3dSetI & | extractVec3Set (const MiVec3dSetIjk &inputSet)=0 |
virtual const MeXSurfaceMeshUnstructured & | getExtract () const =0 |
| |
static MiCylinderSliceExtractIjk * | getNewInstance (const MiVolumeMeshRegular &mesh, bool parallel=true, MiTessellator *tessellator=NULL) |
static MiCylinderSliceExtractIjk * | getNewInstance (const MiVolumeMeshCurvilinear &mesh, bool parallel=true, MiTessellator *tessellator=NULL) |
static MiCylinderSliceExtractIjk * | getNewInstance (const MiVolumeMeshRectilinear &mesh, bool parallel=true, MiTessellator *tessellator=NULL) |
static MiCylinderSliceExtractIjk * | getNewInstance (const MiVolumeMeshVertexHexahedronIjk &mesh, bool parallel=true, MiTessellator *tessellator=NULL) |
A cylinder slice is a surface mesh defined by the intersection of a cylinder of infinite length with the input mesh. The cylinder is defined by a point on its central axis, a vector representing the central axis direction and the radius.
Additional data sets can be mapped onto this extracted surface by calling the extractScalarSet() or extractVec3Set() methods.
The following sample code shows how to extract a cylinder slice from a mesh:
MiCylinderSliceExtractIjk* cylinderSliceExtract = MiCylinderSliceExtractIjk::getNewInstance(mesh); const MeXSurfaceMeshUnstructured& cylinderSlice = cylinderSliceExtract->extractSlice(center, radius, direction, NULL);
virtual MiCylinderSliceExtractIjk::~MiCylinderSliceExtractIjk | ( | ) | [inline, virtual] |
virtual const MeXScalardSetI& MiCylinderSliceExtractIjk::extractScalarSet | ( | const MiScalardSetIjk & | 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. |
Implemented in MiCylinderSliceExtractHexahedronIjk.
virtual const MeXSurfaceMeshUnstructured& MiCylinderSliceExtractIjk::extractSlice | ( | const MbVec3< double > & | center, | |
double | radius, | |||
const MbVec3< double > & | direction, | |||
const MiCellFilterIjk * | cellFilter = NULL | |||
) | [pure virtual] |
Builds the topology and geometry of a cylinder slice intersecting the volume mesh.
center | A point located on the axis of the cylinder | |
radius | The radius of the cylinder | |
direction | A vector representing the axis of the cylinder | |
cellFilter | The cell filter object. |
virtual const MeXVec3dSetI& MiCylinderSliceExtractIjk::extractVec3Set | ( | const MiVec3dSetIjk & | 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. |
Implemented in MiCylinderSliceExtractHexahedronIjk.
virtual const MeXSurfaceMeshUnstructured& MiCylinderSliceExtractIjk::getExtract | ( | ) | const [pure virtual] |
Returns the result of the extraction as a mesh.
static MiCylinderSliceExtractIjk* MiCylinderSliceExtractIjk::getNewInstance | ( | const MiVolumeMeshVertexHexahedronIjk & | mesh, | |
bool | parallel = true , |
|||
MiTessellator * | tessellator = NULL | |||
) | [static] |
Factory method returning a new instance of a class implementing this interface.
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,...). |
static MiCylinderSliceExtractIjk* MiCylinderSliceExtractIjk::getNewInstance | ( | const MiVolumeMeshRectilinear & | mesh, | |
bool | parallel = true , |
|||
MiTessellator * | tessellator = NULL | |||
) | [static] |
Factory method returning a new instance of a class implementing this interface.
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,...). |
static MiCylinderSliceExtractIjk* MiCylinderSliceExtractIjk::getNewInstance | ( | const MiVolumeMeshCurvilinear & | mesh, | |
bool | parallel = true , |
|||
MiTessellator * | tessellator = NULL | |||
) | [static] |
Factory method returning a new instance of a class implementing this interface.
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,...). |
static MiCylinderSliceExtractIjk* MiCylinderSliceExtractIjk::getNewInstance | ( | const MiVolumeMeshRegular & | mesh, | |
bool | parallel = true , |
|||
MiTessellator * | tessellator = NULL | |||
) | [static] |
Factory method returning a new instance of a class implementing this interface.
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,...). |