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

## 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]`

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

- Program
- Program.cpp