osgParticle::FluidProgram Class Reference

`#include <FluidProgram>`

Inheritance diagram for osgParticle::FluidProgram:

## Public Member Functions

| FluidProgram ()
| FluidProgram (const FluidProgram &copy, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
| META_Node (osgParticle, FluidProgram)
void | setFluidViscosity (float v)
| Set the viscosity of the fluid.
float | getFluidViscosity () const
| Get the viscosity of the fluid.
void | setFluidDensity (float d)
| Set the density of the fluid.
float | getFluidDensity () const
| Get the density of the fluid.
void | setWind (const osg::Vec3 &wind)
| Set the wind vector.
const osg::Vec3 & | getWind () const
| Get the wind vector.
void | setAcceleration (const osg::Vec3 &v)
| Set the acceleration vector.
const osg::Vec3 & | getAcceleration () const
| Get the acceleration vector.
void | setToGravity (float scale=1.0f)
void | setFluidToAir ()
| Set the fluid parameters as for air (20°C temperature).
void | setFluidToWater ()
| Set the fluid parameters as for pure water (20°C temperature).
Public Member Functions inherited from osgParticle::Program
| Program ()
| Program (const Program &copy, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
virtual const char * | libraryName () const
virtual const char * | className () const
virtual bool | isSameKindAs (const osg::Object *obj) const
virtual void | accept (osg::NodeVisitor &nv)
Public Member Functions inherited from osgParticle::ParticleProcessor
| ParticleProcessor ()
| ParticleProcessor (const ParticleProcessor &copy, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
ReferenceFrame | getReferenceFrame () const
| Get the reference frame.
void | setReferenceFrame (ReferenceFrame rf)
| Set the reference frame.
bool | getEnabled () const
| Get whether this processor is enabled or not.
bool | isEnabled () const
void | setEnabled (bool v)
| Set whether this processor is enabled or not.
ParticleSystem * | getParticleSystem ()
| Get a pointer to the destination particle system.
const ParticleSystem * | getParticleSystem () const
| Get a const pointer to the destination particle system.
virtual void | setParticleSystem (ParticleSystem *ps)
| Set the destination particle system.
void | setEndless (bool type)
| Set the endless flag of this processor.
bool | getEndless () const
| Check whether this processor is endless.
bool | isEndless () const
void | setLifeTime (double t)
| Set the lifetime of this processor.
double | getLifeTime () const
| Get the lifetime of this processor.
void | setStartTime (double t)
| Set the start time of this processor.
double | getStartTime () const
| Get the start time of this processor.
void | setCurrentTime (double t)
| Set the current time of this processor.
double | getCurrentTime () const
| Get the current time of this processor.
void | setResetTime (double t)
| Set the reset time of this processor. A value of 0 disables reset.
double | getResetTime () const
| Get the reset time of this processor.
bool | isAlive () const
void | traverse (osg::NodeVisitor &nv)
const osg::Matrix & | getLocalToWorldMatrix ()
| Get the current local-to-world transformation matrix (valid only during cull traversal).
const osg::Matrix & | getWorldToLocalMatrix ()
| Get the current world-to-local transformation matrix (valid only during cull traversal).
const osg::Matrix & | getPreviousLocalToWorldMatrix ()
| Get the previous local-to-world transformation matrix (valid only during cull traversal).
const osg::Matrix & | getPreviousWorldToLocalMatrix ()
| Get the previous world-to-local transformation matrix (valid only during cull traversal).
osg::Vec3 | transformLocalToWorld (const osg::Vec3 &P)
| Transform a point from local to world coordinates (valid only during cull traversal).
osg::Vec3 | rotateLocalToWorld (const osg::Vec3 &P)
| Transform a vector from local to world coordinates, discarding translation (valid only during cull traversal).
osg::Vec3 | transformWorldToLocal (const osg::Vec3 &P)
| Transform a point from world to local coordinates (valid only during cull traversal).
osg::Vec3 | rotateWorldToLocal (const osg::Vec3 &P)
| Transform a vector from world to local coordinates, discarding translation (valid only during cull traversal).
virtual osg::BoundingSphere | computeBound () const
Public Member Functions inherited from osg::Node
| Node ()
| Node (const Node &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual Object * | cloneType () const
virtual Object * | clone (const CopyOp &copyop) const
virtual Node * | asNode ()
virtual const Node * | asNode () const
virtual Drawable * | asDrawable ()
virtual const Drawable * | asDrawable () const
virtual Geometry * | asGeometry ()
virtual const Geometry * | asGeometry () const
virtual Group * | asGroup ()
virtual const Group * | asGroup () const
virtual Transform * | asTransform ()
virtual const Transform * | asTransform () const
virtual Switch * | asSwitch ()
virtual const Switch * | asSwitch () const
virtual Geode * | asGeode ()
virtual const Geode * | asGeode () const
virtual osgTerrain::Terrain * | asTerrain ()
virtual const osgTerrain::Terrain * | asTerrain () const
virtual void | ascend (NodeVisitor &nv)
const ParentList & | getParents () const
ParentList | getParents ()
Group * | getParent (unsigned int i)
const Group * | getParent (unsigned int i) const
unsigned int | getNumParents () const
NodePathList | getParentalNodePaths (osg::Node *haltTraversalAtNode=0) const
MatrixList | getWorldMatrices (const osg::Node *haltTraversalAtNode=0) const
void | setUpdateCallback (Callback *nc)
template<class T>
void | setUpdateCallback (const ref_ptr< T > &nc)
Callback * | getUpdateCallback ()
const Callback * | getUpdateCallback () const
void | addUpdateCallback (Callback *nc)
template<class T>
void | addUpdateCallback (const ref_ptr< T > &nc)
void | removeUpdateCallback (Callback *nc)
template<class T>
void | removeUpdateCallback (const ref_ptr< T > &nc)
unsigned int | getNumChildrenRequiringUpdateTraversal () const
void | setEventCallback (Callback *nc)
template<class T>
void | setEventCallback (const ref_ptr< T > &nc)
Callback * | getEventCallback ()
const Callback * | getEventCallback () const
void | addEventCallback (Callback *nc)
template<class T>
void | addEventCallback (const ref_ptr< T > &nc)
void | removeEventCallback (Callback *nc)
template<class T>
void | removeEventCallback (const ref_ptr< T > &nc)
unsigned int | getNumChildrenRequiringEventTraversal () const
void | setCullCallback (Callback *nc)
template<class T>
void | setCullCallback (const ref_ptr< T > &nc)
Callback * | getCullCallback ()
const Callback * | getCullCallback () const
void | addCullCallback (Callback *nc)
template<class T>
void | addCullCallback (const ref_ptr< T > &nc)
void | removeCullCallback (Callback *nc)
template<class T>
void | removeCullCallback (const ref_ptr< T > &nc)
void | setCullingActive (bool active)
bool | getCullingActive () const
unsigned int | getNumChildrenWithCullingDisabled () const
bool | isCullingActive () const
unsigned int | getNumChildrenWithOccluderNodes () const
bool | containsOccluderNodes () const
void | setNodeMask (NodeMask nm)
NodeMask | getNodeMask () const
void | setStateSet (osg::StateSet *stateset)
template<class T>
void | setStateSet (const osg::ref_ptr< T > &stateset)
osg::StateSet * | getOrCreateStateSet ()
osg::StateSet * | getStateSet ()
const osg::StateSet * | getStateSet () const
void | setDescriptions (const DescriptionList &descriptions)
DescriptionList & | getDescriptions ()
const DescriptionList & | getDescriptions () const
const std::string & | getDescription (unsigned int i) const
std::string & | getDescription (unsigned int i)
unsigned int | getNumDescriptions () const
void | addDescription (const std::string &desc)
void | setInitialBound (const osg::BoundingSphere &bsphere)
const BoundingSphere & | getInitialBound () const
void | dirtyBound ()
const BoundingSphere & | getBound () const
void | setComputeBoundingSphereCallback (ComputeBoundingSphereCallback *callback)
template<class T>
void | setComputeBoundingSphereCallback (const ref_ptr< T > &callback)
ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback ()
const ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback () const
virtual void | setThreadSafeRefUnref (bool threadSafe)
virtual void | resizeGLObjectBuffers (unsigned int)
virtual void | releaseGLObjects (osg::State *=0) const
Public Member Functions inherited from osg::Object
| Object ()
| Object (bool threadSafeRefUnref)
| Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
std::string | getCompoundClassName () const
virtual NodeVisitor * | asNodeVisitor ()
virtual const NodeVisitor * | asNodeVisitor () const
virtual StateSet * | asStateSet ()
virtual const StateSet * | asStateSet () const
virtual StateAttribute * | asStateAttribute ()
virtual const StateAttribute * | asStateAttribute () const
virtual Uniform * | asUniform ()
virtual const Uniform * | asUniform () const
virtual Camera * | asCamera ()
virtual const Camera * | asCamera () const
virtual Callback * | asCallback ()
virtual const Callback * | asCallback () const
virtual CallbackObject * | asCallbackObject ()
virtual const CallbackObject * | asCallbackObject () const
virtual UserDataContainer * | asUserDataContainer ()
virtual const UserDataContainer * | asUserDataContainer () const
virtual ValueObject * | asValueObject ()
virtual const ValueObject * | asValueObject () const
virtual Image * | asImage ()
virtual const Image * | asImage () const
virtual void | setName (const std::string &name)
void | setName (const char *name)
const std::string & | getName () const
void | setDataVariance (DataVariance dv)
DataVariance | getDataVariance () const
virtual void | computeDataVariance ()
void | setUserDataContainer (osg::UserDataContainer *udc)
template<class T>
void | setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainer * | getUserDataContainer ()
const osg::UserDataContainer * | getUserDataContainer () const
osg::UserDataContainer * | getOrCreateUserDataContainer ()
virtual void | setUserData (Referenced *obj)
template<class T>
void | setUserData (const ref_ptr< T > &ud)
virtual Referenced * | getUserData ()
virtual const Referenced * | getUserData () const
template<typename T>
bool | getUserValue (const std::string &name, T &value) const
template<typename T>
void | setUserValue (const std::string &name, const T &value)
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const
Public Member Functions inherited from osg::Referenced
| Referenced ()
| Referenced (bool threadSafeRefUnref)
| Referenced (const Referenced &)
Referenced & | operator= (const Referenced &)
bool | getThreadSafeRefUnref () const
OpenThreads::Mutex * | getRefMutex () const
int | ref () const
int | unref () const
int | unref_nodelete () const
int | referenceCount () const
ObserverSet * | getObserverSet () const
ObserverSet * | getOrCreateObserverSet () const
void | addObserver (Observer *observer) const
void | removeObserver (Observer *observer) const

## Protected Member Functions

virtual | ~FluidProgram ()
FluidProgram & | operator= (const FluidProgram &)
virtual void | execute (double dt)
| Execute the program on the particle system. Must be overridden in descendant classes.
Protected Member Functions inherited from osgParticle::Program
virtual | ~Program ()
Program & | operator= (const Program &)
void | process (double dt)
| Implementation of `ParticleProcessor::process()`. Do not call this method by yourself.
Protected Member Functions inherited from osgParticle::ParticleProcessor
virtual | ~ParticleProcessor ()
ParticleProcessor & | operator= (const ParticleProcessor &)
Protected Member Functions inherited from osg::Node
virtual | ~Node ()
void | addParent (osg::Group *parent)
void | removeParent (osg::Group *parent)
void | setNumChildrenRequiringUpdateTraversal (unsigned int num)
void | setNumChildrenRequiringEventTraversal (unsigned int num)
void | setNumChildrenWithCullingDisabled (unsigned int num)
void | setNumChildrenWithOccluderNodes (unsigned int num)
Protected Member Functions inherited from osg::Object
virtual | ~Object ()
Protected Member Functions inherited from osg::Referenced
virtual | ~Referenced ()
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const
void | deleteUsingDeleteHandler () const

## Protected Attributes

osg::Vec3 | _acceleration
float | _viscosity
float | _density
osg::Vec3 | _wind
float | _viscosityCoefficient
float | _densityCoefficient
Protected Attributes inherited from osgParticle::ParticleProcessor
ReferenceFrame | _rf
bool | _enabled
double | _t0
osg::ref_ptr< ParticleSystem > | _ps
bool | _first_ltw_compute
bool | _need_ltw_matrix
bool | _first_wtl_compute
bool | _need_wtl_matrix
osg::Matrix | _ltw_matrix
osg::Matrix | _wtl_matrix
osg::Matrix | _previous_ltw_matrix
osg::Matrix | _previous_wtl_matrix
osg::NodeVisitor * | _current_nodevisitor
bool | _endless
double | _lifeTime
double | _startTime
double | _currentTime
double | _resetTime
unsigned int | _frameNumber
Protected Attributes inherited from osg::Node
BoundingSphere | _initialBound
ref_ptr< ComputeBoundingSphereCallback > | _computeBoundCallback
BoundingSphere | _boundingSphere
bool | _boundingSphereComputed
ParentList | _parents
ref_ptr< Callback > | _updateCallback
unsigned int | _numChildrenRequiringUpdateTraversal
ref_ptr< Callback > | _eventCallback
unsigned int | _numChildrenRequiringEventTraversal
ref_ptr< Callback > | _cullCallback
bool | _cullingActive
unsigned int | _numChildrenWithCullingDisabled
unsigned int | _numChildrenWithOccluderNodes
NodeMask | _nodeMask
ref_ptr< StateSet > | _stateset
Protected Attributes inherited from osg::Object
std::string | _name
DataVariance | _dataVariance
osg::UserDataContainer * | _userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr | _observerSet
OpenThreads::Atomic | _refCount

## Additional Inherited Members

Public Types inherited from osgParticle::ParticleProcessor
enum | ReferenceFrame { RELATIVE_RF , ABSOLUTE_RF }
Public Types inherited from osg::Node
typedef std::vector< Group * > | ParentList
typedef unsigned int | NodeMask
typedef std::vector< std::string > | DescriptionList
Public Types inherited from osg::Object
enum | DataVariance { DYNAMIC , STATIC , UNSPECIFIED }
Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * | getGlobalReferencedMutex ()
static void | setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * | getDeleteHandler ()

## Detailed Description

A program class for performing operations on particles using a sequence of operators. To use a `FluidProgram` you have to create some `Operator` objects and add them to the program. All operators will be applied to each particle in the same order they've been added to the program.

## Constructor & Destructor Documentation

## FluidProgram() [1/2]

osgParticle::FluidProgram::FluidProgram | ( |  | ) |

Referenced by FluidProgram(), META_Node(), and operator=().

## FluidProgram() [2/2]

osgParticle::FluidProgram::FluidProgram | ( | const FluidProgram & | copy,
|  | const osg::CopyOp & | copyop = osg::CopyOp::SHALLOW_COPY )

References FluidProgram(), and osg::CopyOp::SHALLOW_COPY.

## ~FluidProgram()

virtual osgParticle::FluidProgram::~FluidProgram | ( |  | ) |

inline protected virtual

## Member Function Documentation

## execute()

virtual void osgParticle::FluidProgram::execute | ( | double | dt | ) |

protected virtual

Execute the program on the particle system. Must be overridden in descendant classes.

Implements osgParticle::Program.

## getAcceleration()

const osg::Vec3 & osgParticle::FluidProgram::getAcceleration | ( |  | ) | const

inline

Get the acceleration vector.

References _acceleration.

## getFluidDensity()

float osgParticle::FluidProgram::getFluidDensity | ( |  | ) | const

inline

Get the density of the fluid.

References _density.

## getFluidViscosity()

float osgParticle::FluidProgram::getFluidViscosity | ( |  | ) | const

inline

Get the viscosity of the fluid.

References _viscosity.

## getWind()

const osg::Vec3 & osgParticle::FluidProgram::getWind | ( |  | ) | const

inline

Get the wind vector.

References _wind.

## META_Node()

osgParticle::FluidProgram::META_Node | ( | osgParticle | ,
|  | FluidProgram | )

References FluidProgram().

## operator=()

FluidProgram & osgParticle::FluidProgram::operator= | ( | const FluidProgram & |  | ) |

inline protected

References FluidProgram().

## setAcceleration()

void osgParticle::FluidProgram::setAcceleration | ( | const osg::Vec3 & | v | ) |

inline

Set the acceleration vector.

References _acceleration.

## setFluidDensity()

void osgParticle::FluidProgram::setFluidDensity | ( | float | d | ) |

inline

Set the density of the fluid.

References _density, _densityCoefficient, and osg::PI.

Referenced by setFluidToAir(), and setFluidToWater().

## setFluidToAir()

void osgParticle::FluidProgram::setFluidToAir | ( |  | ) |

inline

Set the fluid parameters as for air (20°C temperature).

References setFluidDensity(), setFluidViscosity(), and setToGravity().

## setFluidToWater()

void osgParticle::FluidProgram::setFluidToWater | ( |  | ) |

inline

Set the fluid parameters as for pure water (20°C temperature).

References setFluidDensity(), setFluidViscosity(), and setToGravity().

## setFluidViscosity()

void osgParticle::FluidProgram::setFluidViscosity | ( | float | v | ) |

inline

Set the viscosity of the fluid.

References _viscosity, _viscosityCoefficient, and osg::PI.

Referenced by setFluidToAir(), and setFluidToWater().

## setToGravity()

void osgParticle::FluidProgram::setToGravity | ( | float | scale = 1.0f | ) |

inline

Set the acceleration vector to the gravity on earth (0, 0, -9.81). The acceleration will be multiplied by the `scale` parameter.

References _acceleration.

Referenced by setFluidToAir(), and setFluidToWater().

## setWind()

void osgParticle::FluidProgram::setWind | ( | const osg::Vec3 & | wind | ) |

inline

Set the wind vector.

References _wind.

## Member Data Documentation

## _acceleration

osg::Vec3 osgParticle::FluidProgram::_acceleration

protected

Referenced by getAcceleration(), setAcceleration(), and setToGravity().

## _density

float osgParticle::FluidProgram::_density

protected

Referenced by getFluidDensity(), and setFluidDensity().

## _densityCoefficient

float osgParticle::FluidProgram::_densityCoefficient

protected

Referenced by setFluidDensity().

## _viscosity

float osgParticle::FluidProgram::_viscosity

protected

Referenced by getFluidViscosity(), and setFluidViscosity().

## _viscosityCoefficient

float osgParticle::FluidProgram::_viscosityCoefficient

protected

Referenced by setFluidViscosity().

## _wind

osg::Vec3 osgParticle::FluidProgram::_wind

protected

Referenced by getWind(), and setWind().

The documentation for this class was generated from the following file:

- FluidProgram