Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

# osgParticle::Program Class Reference

An abstract `ParticleProcessor` descendant for modifying particles "on the fly" during the cull traversal. More...

Inheritance diagram for osgParticle::Program:

[legend]
List of all members.

## Public Member Functions
| Program ()
| Program (const Program &copy, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
virtual const char * | libraryName () const
| return the name of the node's library.
virtual const char * | className () const
| return the name of the node's class type.
virtual bool | isSameKindAs (const osg::Object *obj) const
virtual void | accept (osg::NodeVisitor &nv)
| Visitor Pattern : calls the apply method of a NodeVisitor with this node's type.
## Protected Member Functions
virtual | ~Program ()
Program & | operator= (const Program &)
void | process (double dt)
| Implementation of `ParticleProcessor::process()`. Do not call this method by yourself.
virtual void | execute (double dt)=0
| Execute the program on the particle system. Must be overriden in descendant classes.

## Detailed Description

An abstract `ParticleProcessor` descendant for modifying particles "on the fly" during the cull traversal.

Descendants of this class must implement the `execute()` method, which should iterate through all particles in the linked particle system and modify them somehow (usually updating their velocity vector).

## Constructor & Destructor Documentation

osgParticle::Program::Program | ( |  | ) |

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

virtual osgParticle::Program::~Program | ( |  | ) | `[inline, protected, virtual]`

## Member Function Documentation

virtual void osgParticle::Program::accept | ( | osg::NodeVisitor & | nv | ) | `[inline, virtual]`

| Visitor Pattern : calls the apply method of a NodeVisitor with this node's type. Reimplemented from osgParticle::ParticleProcessor.

virtual const char* osgParticle::Program::className | ( |  | ) | const`[inline, virtual]`

| return the name of the node's class type. Reimplemented from osgParticle::ParticleProcessor.

virtual void osgParticle::Program::execute | ( | double | dt | ) | `[protected, pure virtual]`

| Execute the program on the particle system. Must be overriden in descendant classes. Implemented in osgParticle::FluidProgram, and osgParticle::ModularProgram.

virtual bool osgParticle::Program::isSameKindAs | ( | const osg::Object * | obj | ) | const`[inline, virtual]`

| Reimplemented from osgParticle::ParticleProcessor.

virtual const char* osgParticle::Program::libraryName | ( |  | ) | const`[inline, virtual]`

| return the name of the node's library. Reimplemented from osgParticle::ParticleProcessor.

Program& osgParticle::Program::operator= | ( | const Program & |  | ) | `[inline, protected]`

void osgParticle::Program::process | ( | double | dt | ) | `[inline, protected, virtual]`

| Implementation of `ParticleProcessor::process()`. Do not call this method by yourself. Implements osgParticle::ParticleProcessor.

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

- article/Program