Representation of level surface of volume mesh. More...
#include <MeshViz/3Ddata/PoMeshLevelSurf.h>
Public Types | |
enum | SurfOrientation { ORIENTED_TO_MIN, ORIENTED_TO_MAX } |
Public Member Functions | |
virtual SoType | getTypeId () const |
virtual const SoNodekitCatalog * | getNodekitCatalog () const |
PoMeshLevelSurf () | |
virtual void | rebuild () |
Static Public Member Functions | |
static SoType | getClassTypeId () |
static const SoNodekitCatalog * | getClassNodekitCatalog () |
Public Attributes | |
SoSFEnum | surfOrientation |
SoSFFloat | levelValue |
SoSFInt32 | valuesIndexForLevel |
This class represents a 3D level surface of the current volume mesh. See PoMesh for more explanations about the current mesh.
The geometry of the level surface is defined by interpolation relating to the set of scalar values of which index is defined by the field valuesIndexForLevel. However, if valuesIndexForLevel = -1, the set of scalar values is the one of which index is PoMesh::valuesIndex. If this scalar value set does not exist in the current mesh, the representation is empty.
If the field PoMesh::valuesIndex is not defined (or if coloringType = COLOR_INHERITED), the representation uses only one inherited color. If the field PoMesh::valuesIndex is defined (and if coloringType != COLOR_INHERITED), the representation is colored by using the current data mapping applied to each mesh node value. (see PoMesh for more explanations about the current data-mapping).
NOTE : This class is not designed to build an isosurface with a "per cell" data set : When valuesIndexForLevel refers to a data set with a "PER_CELL" data binding (see PbMesh::DataBinding), the result is unpredictable. However, an isosurface can be built with a "PER_NODE" data set, and colored using a "PER_CELL" data set : when valuesIndexForLevel refers to a PER_NODE data set and valuesIndex refers to a PER_CELL data set, a valid isosurface is built.
The vector data of the mesh for this representation is unused.
The isosurface can be generated by using either a triangle strip set or an indexed face set depending on the preference variable SoPreference::OIV_3DDATA_USE_TRIANGLE_STRIP_SET
levelValue | 0.0 |
surfOrientation | ORIENTED_TO_MAX |
valuesIndexForLevel | -1 |
valuesIndex | -1 |
coloringType | COLOR_INHERITED |
vecsIndex | -1 |
valuesIndexForCellFilter | -1 |
moduleDataMapping | NULL |
PoMeshLevelSurf::PoMeshLevelSurf | ( | ) |
Constructor.
static const SoNodekitCatalog* PoMeshLevelSurf::getClassNodekitCatalog | ( | ) | [static] |
Returns the SoNodekitCatalog for this class.
Reimplemented from PoMesh3D.
static SoType PoMeshLevelSurf::getClassTypeId | ( | ) | [static] |
Returns the type identifier for this class.
Reimplemented from PoMesh3D.
virtual const SoNodekitCatalog* PoMeshLevelSurf::getNodekitCatalog | ( | ) | const [virtual] |
Returns the SoNodekitCatalog for this instance.
Reimplemented from PoMesh3D.
virtual SoType PoMeshLevelSurf::getTypeId | ( | ) | const [virtual] |
Returns the type identifier for this specific instance.
Reimplemented from PoMesh3D.
virtual void PoMeshLevelSurf::rebuild | ( | ) | [virtual] |
Value of the level surface.
Orientation of the level surface.
ORIENTED_TO_MIN: The facet normals of the level surface are oriented to the region of the mesh where the values are less than levelValue.
ORIENTED_TO_MAX: The facet normals of the level surface are oriented to the region of the mesh where the values are greater than levelValue. These normal orientations are respected if each element of the mesh respects the orientation rules (see the definition of each type of mesh).
Index of the set of value used to compute the level surface.
If valuesIndexForLevel == -1, this index is defined by PoMesh::valuesIndex. -1 by default.