Base class of all streamline representations on a mesh. More...
#include <MeshViz/3Ddata/PoBaseStreamLine.h>
Public Types | |
enum | IntegrationDirection { FORWARD, BACKWARD } |
Public Member Functions | |
virtual SoType | getTypeId () const |
virtual const SoNodekitCatalog * | getNodekitCatalog () const |
PoBaseStreamLine () | |
Static Public Member Functions | |
static SoType | getClassTypeId () |
static const SoNodekitCatalog * | getClassNodekitCatalog () |
Public Attributes | |
SoMFVec3f | startPoints |
SoMFColor | colors |
SoSFFloat | maxLifetime |
SoSFFloat | maxLength |
SoSFFloat | minSpeed |
SoSFFloat | integrationStepLengthFactor |
SoSFInt32 | integrationMaxStepNumber |
SoSFEnum | integrationDirection |
Class to calculate the geometry of streamlines starting from a list of source points. A streamline is a line that is everywhere tangent to the vectors field. Streamlines are meaningless for unsteady flow, because the time is not taken into account during the computation of the line. Streamlines are calculated by using a Runge/Kutta method of order 2.
The streamlines are calculated from a set of vectors in the current mesh. See PoMesh for more explanations about the current mesh. The index of vectors data set used to compute streamlines, is defined by the field PoMesh::vecsIndex. If this vectors data set does not exist in the current mesh, the representation is empty. The origin of each vector is a node of the mesh.
The derived classes respect the following rules to color the representation:
If PoMesh::coloringType = COLOR_INHERITED and if the field "colors" is empty, the representation uses only one inherited color, so each part of the representation have the same color.
If PoMesh::coloringType = COLOR_INHERITED and if the field colors is not empty, the representation uses each colors of field for each streamline. For example, the streamline starting from the i-th startPoints is colored by colors[inum_colors], where num_colors is the size of the field "colors".
If the field PoMesh::valuesIndex is not defined (i.e. < 0), and if coloringType != COLOR_INHERITED, the representations are colored by using the current data mapping applied to the velocity at each point of the streamlines. The definition of the "current data mapping" is explained in PoMesh.
If the field PoMesh::valuesIndex is defined, and if coloringType != COLOR_INHERITED, the representations are colored by using the current data mapping applied to the value at each point of the streamlines.
startPoints | SbVec3f(0,0,0) |
maxLifetime | 0 (i.e. infinite) |
maxLength | 0 (i.e. infinite) |
minSpeed | 0 (i.e. infinite) |
integrationStepLengthFactor | 0.3 |
integrationMaxStepNumber | 0 (i.e. infinite) |
integrationDirection | FORWARD |
colors | (SbColor(1,0,0) |
coloringType | COLOR_INHERITED |
valuesIndex | -1 |
valuesIndexForCellFilter | -1 |
vecsIndex | -1 |
moduleDataMapping | NULL |
PoBaseStreamLine::PoBaseStreamLine | ( | ) |
Constructor.
static const SoNodekitCatalog* PoBaseStreamLine::getClassNodekitCatalog | ( | ) | [static] |
Returns the SoNodekitCatalog for this class.
Reimplemented from PoMesh.
Reimplemented in PoStreamLine, PoStreamLineMotion, PoStreamParticleMotion, PoStreamPointMotion, PoStreamSphereMotion, PoStreamSurface, and PoStreamTadpoleMotion.
static SoType PoBaseStreamLine::getClassTypeId | ( | ) | [static] |
Returns the type identifier for this class.
Reimplemented from PoMesh.
Reimplemented in PoStreamLine, PoStreamLineMotion, PoStreamParticleMotion, PoStreamPointMotion, PoStreamSphereMotion, PoStreamSurface, and PoStreamTadpoleMotion.
virtual const SoNodekitCatalog* PoBaseStreamLine::getNodekitCatalog | ( | ) | const [virtual] |
Returns the SoNodekitCatalog for this instance.
Reimplemented from PoMesh.
Reimplemented in PoStreamLine, PoStreamLineMotion, PoStreamParticleMotion, PoStreamPointMotion, PoStreamSphereMotion, PoStreamSurface, and PoStreamTadpoleMotion.
virtual SoType PoBaseStreamLine::getTypeId | ( | ) | const [virtual] |
Returns the type identifier for this specific instance.
Reimplemented from PoMesh.
Reimplemented in PoStreamLine, PoStreamLineMotion, PoStreamParticleMotion, PoStreamPointMotion, PoStreamSphereMotion, PoStreamSurface, and PoStreamTadpoleMotion.
List of colors used by some derived class to color each streamline.
Empty field by default.
Direction of integration.
FORWARD by default.
Computing the streamline is done while the number of integration step is less than integrationMaxStepNumber.
integrationMaxStepNumber <= 0 means infinite. 0 by default.
It is a factor of the size of a cell.
It represents the gap between two consecutive points of the calculated streamline. The gap depends of the cell's size. If S is the size of the current cell, the gap is S*integrationStepLengthFactor. The lower this step is, the more accurate the streamline is. Setting a value < 1, ensures that each cell which cross the streamline is taken into account. 0.3 by default.
The curvilinear distance between the start-point and the last point of a streamline must be less than maxLength.
maxLength <= 0 means an infinite distance. 0 by default.
The difference between the time of the start-point and the time of the last point of a streamline must be less than maxLifetime.
maxLifetime <= 0 means an infinite lifetime. 0 by default.
The streamline ends when it goes through a point where the velocity is less than minSpeed.
minSpeed <= 0 means an infinite speed. 0 by default.
Start points of the streamlines.
SbVec3f(0,0,0) by default.