cee::ug::ParticleTraceGroup
-
class ParticleTraceGroup : public RefCountedObject
Configuration of a group of particle trace objects.
To visualize features of a vector field, it is possible to define streamlines; the paths of mass less particles through the flow. Streamlines can be computed based on specification of single points. Animated display of movement along the streamlines is a powerful and direct way to show the features of the flow.
Particle traces is defined by a vector result defining the vector field and an array of trace seed points. The particles traces uses 3D primitives such as cylinders, spheres, lines, ribbons or comets. A scalar result can be mapped as fringes onto these primitives.
The particle trace can be animated. Control the animation using UnstructGridModel::setParticleTraceTime().
A ParticleTraceGroup is featured on a model through UnstructGridModel::addParticleTraceGroup().
Public Types
-
enum VisualizationStyle
Visualization style for a particle trace.
Values:
-
enumerator CYLINDERS
Draw the particle trace lines as 3D cylinders.
-
enumerator SPHERES
Draw the particle trace points as spheres.
Spheres also have a pulse count for starting particles at regular intervals. Spheres requires shader support (OpenGL 2.0)
-
enumerator RIBBONS
Draw the particle trace lines as ribbons.
-
enumerator COMETS
Draw the particle trace points as comets.
Comets also have a pulse count for starting particles at regular intervals. Comets requires shader support (OpenGL 2.0)
-
enumerator LINES
Draw particle traces as lines.
-
enumerator ARROWS
Draw the particle trace points as arrows.
Arrows also have a pulse count for starting particles at regular intervals. Arrows requires shader support (OpenGL 2.0)
-
enumerator CYLINDERS
Public Functions
-
ParticleTraceGroup()
Constructs an empty particle trace group.
-
void setSeedPoints(const std::vector<Vec3d> &seedPoints)
Sets the seed points to use for particle tracing.
There will be one trace computed from each seed point.
-
bool visible() const
Returns true if this group is visible.
-
void setVisible(bool visible)
Sets visibility for this group.
-
int vectorResultId() const
Returns the id of the current vector result used to calculate particle trajectories.
-
void setVectorResultId(int resultId)
Sets the id of the vector result used to calculate the particle trajectories.
-
int mapScalarResultId() const
Returns the id of the scalar result mapped on the primitives.
Returns -1 if none.
-
void setMapScalarResultId(int resultId)
Sets the id of the scalar result mapped on the primitives.
Set resultId to -1 to clear the mapped scalar result.
-
bool computeForward() const
Returns true if the particle trace will be computed forward from the seed points.
-
void setComputeForward(bool compute)
Sets if the particle trace will be computed forward from the seed points.
-
bool computeBackward() const
Returns true if the particle trace will be computed backward from the seed points.
-
void setComputeBackward(bool compute)
Sets if the particle trace will be computed backward from the seed points.
-
int maximumNumberOfPointsToCompute() const
Returns the maximum number of points to compute for this group.
-
void setMaximumNumberOfPointsToCompute(int maxNumPoints)
Sets the maximum number of points to compute for this group.
-
double extrapolateRatioLength() const
Sets the ratio length relative to the frame bounding box to test when moving out of the part.
-
void setExtrapolateRatioLength(double extrapolateRatioLength)
Returns the ratio length relative to the frame bounding box to test when moving out of the part.
-
VisualizationStyle visualizationStyle() const
Returns the visualization style.
-
void setVisualizationStyle(VisualizationStyle style)
Sets the visualization style.
-
double scaleFactor() const
Returns the current scale factor.
-
void set3DPrimitiveRadius(ScaleMode mode, double scaleFactor)
Sets the 3D primitive radius.
If relative scaling is used, a factor of 1 (default) will give a size of 0.006 times the largest extent of the model’s bounding box.
-
double pointSamplingNumberOfPulses() const
Returns the number of sampling pulses.
-
void setPointSamplingNumberOfPulses(double numPulses)
Sets the number of sampling pulses.
-
double cometLength() const
Returns the length of the comet primitive.
-
void setCometLength(double length)
Sets the length of the comet primitive.
-
double arrowLength() const
Returns the length of the arrow primitive.
-
void setArrowLength(double length)
Sets the length of the arrow primitive.
-
double ribbonRelativeWidth() const
Returns the width of the ribbon primitive.
-
void setRibbonRelativeWidth(double relativeSize)
Sets the width of the ribbon primitive.
-
double ribbonRelativeThickness() const
Returns the thickness of the ribbon primitive.
-
void setRibbonRelativeThickness(double relativeSize)
Sets the thickness of the ribbon primitive.
-
double minimumTraceTime(size_t frameIndex) const
Returns minimum trace time.
-
double maximumTraceTime(size_t frameIndex) const
Returns maximum trace time.
-
bool ignoreClipping() const
Returns true if the trace will ignore clipping, false if the trace will be clipped.
-
void setIgnoreClipping(bool ignore)
Sets if the trace will ignore clipping.
-
bool isPrecomputed() const
Returns true if the particle trace group is precomputed.
Precomputed particle traces cannot be altered or moved.
-
void setTraceData(size_t frameIndex, const std::vector<ParticleTraceData> &groupDataArr)
Sets the particle trace data for the given frame.
Allow for user defined particle traces in the unstruct grid model.
Pre-requisites for using this method:
The particle trace group must already have been added to an unstruct grid model
The model must have some content - the given frame index must exist and have some model in it.
If using scalars, there must be a scalar in the model for the scalar mapping to work
-
void traceData(size_t frameIndex, std::vector<ParticleTraceData> *groupDataArr) const
Gets the particle trace data for the given frame.
-
enum VisualizationStyle