## class OSGPARTICLE_EXPORT osgParticle::Program

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

## Inheritance:

### Public Methods

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)
inline void process(double dt)
  Implementation of `ParticleProcessor::process()`.

### Protected Methods

virtual ~Program()
Program& operator=(const Program &)
virtual void execute(double dt) = 0
  Execute the program on the particle system.

### Inherited from ParticleProcessor:

### Public Methods

inline ReferenceFrame getReferenceFrame() const
void traverse(osg::NodeVisitor &nv)
inline ParticleProcessor::ReferenceFrame getReferenceFrame() const
inline void setReferenceFrame(ReferenceFrame rf)
inline bool isEnabled() const
inline void setEnabled(bool v)
inline ParticleSystem* getParticleSystem()
inline const ParticleSystem* getParticleSystem() const
inline void setParticleSystem(ParticleSystem* ps)
inline void setEndless(bool type)
inline bool isEndless() const
inline void setLifeTime(double t)
inline double getLifeTime() const
inline void setStartTime(double t)
inline double getStartTime() const
inline void setCurrentTime(double t)
inline double getCurrentTime() const
inline void setResetTime(double t)
inline double getResetTime() const
inline bool computeBound() const
inline const osg::Matrix& getLocalToWorldMatrix()
inline const osg::Matrix& getWorldToLocalMatrix()
inline osg::Vec3 transformLocalToWorld(const osg::Vec3 &P)
inline osg::Vec3 transformWorldToLocal(const osg::Vec3 &P)
inline osg::Vec3 rotateLocalToWorld(const osg::Vec3 &P)
inline osg::Vec3 rotateWorldToLocal(const osg::Vec3 &P)

### Public Members

enum ReferenceFrame

## Documentation

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

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

`virtual ~Program()`

`Program& operator=(const Program &)`

`virtual void execute(double dt) = 0`
  Execute the program on the particle system. Must be overriden in descendant classes.

`inline void process(double dt)`
  Implementation of `ParticleProcessor::process()`. Do not call this method by yourself.

Direct child classes:
  ModularProgram

Alphabetic index HTML hierarchy of classes or Java

This page was generated with the help of DOC++.