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