## class OSGPARTICLE_EXPORT osgParticle::ModularProgram

> A program class for performing operations on particles using a sequence of operators.

## Inheritance:

### Public Methods

ModularProgram()
ModularProgram(const ModularProgram &copy, const osg::CopyOp &copyop = osg::CopyOp::SHALLOW_COPY)
META_Node(osgParticle, ModularProgram)
inline int numOperators() const
  Get the number of operators
inline void addOperator(Operator* o)
  Add an operator to the list.
inline Operator* getOperator(int i)
  Get a pointer to an operator in the list
inline const Operator* getOperator(int i) const
  Get a const pointer to an operator in the list
inline void removeOperator(int i)
  Remove an operator from the list

### Protected Methods

virtual ~ModularProgram()
ModularProgram& operator=(const ModularProgram &)
void execute(double dt)

### Inherited from Program:

### Public Methods

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)

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

> A program class for performing operations on particles using a sequence of operators. To use a `ModularProgram` 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.

`ModularProgram()`

`ModularProgram(const ModularProgram &copy, const osg::CopyOp &copyop = osg::CopyOp::SHALLOW_COPY)`

`META_Node(osgParticle, ModularProgram)`

`virtual ~ModularProgram()`

`ModularProgram& operator=(const ModularProgram &)`

`void execute(double dt)`

`inline int numOperators() const`
  Get the number of operators

`inline void addOperator(Operator* o)`
  Add an operator to the list.

`inline Operator* getOperator(int i)`
  Get a pointer to an operator in the list

`inline const Operator* getOperator(int i) const`
  Get a const pointer to an operator in the list

`inline void removeOperator(int i)`
  Remove an operator from the list

This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java

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