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
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