![]() |
VR-Forces Developer's Guide
|
This class provides a facade around the osgParticle class hierarchy. It is comparable with osgParticle::ParticleEffect, but with support for multiple particle systems and designed for inheritance.

Classes | |
| struct | DefaultParticleParameters |
Public Member Functions | |
| DtOsgParticleSystemEffect () | |
osg::Group contract functions | |
| typedef std::unordered_map < osgParticle::ParticleSystem *, DefaultParticleParameters > | ParticleParametersMap |
| osg::ref_ptr< osg::Group > | myEmitterGroup |
| osg::ref_ptr< osg::Group > | myProgramGroup |
| osg::ref_ptr< osg::Geode > | myParticleSystemGeode |
| osg::ref_ptr< osg::Group > | myProxyGroup |
| osg::ref_ptr< osg::Group > | myTransformGroup |
| std::vector< osg::ref_ptr < osg::Sequence > > | mySequences |
| bool | mySequencesLooping |
| bool | mySequencesReverse |
| osg::ref_ptr < osg::MatrixTransform > | myParticleSystemTransform |
| bool | myTransformsSet |
| bool | myUseLocalParticleSystem |
| osg::Vec3 | myPosition |
| float | myScale |
| float | myIntensity |
| double | myStartTime |
| double | myEmitterDuration |
| int | myMaxParticlesToEmit |
| osg::Vec3 | myWind |
| osg::Vec3 | myUp |
| bool | myIsRotorWash |
| float | myRotorDiameter |
| float | myRotorWindSpeed |
| ParticleParametersMap | myDefaultParticleParameters |
| virtual const char * | libraryName () const |
| virtual const char * | className () const |
| virtual bool | isSameKindAs (const osg::Object *obj) const |
| virtual void | accept (osg::NodeVisitor &v) |
| virtual osg::Group * | emitterGroup () |
| virtual osg::Group * | programGroup () |
| virtual osg::Group * | proxyGroup () |
| virtual osg::Group * | transformGroup () |
| virtual void | setUpEmittersAndPrograms ()=0 |
| virtual void | buildEffect () |
| virtual bool | useLocalParticleSystem () |
| virtual void | setUseLocalParticleSystem (bool b) |
| virtual float | scale () const |
| virtual void | setScale (float scale) |
| virtual float | intensity () |
| virtual void | setIntensity (float intensity) |
| virtual double | startTime () |
| virtual void | setStartTime (double startTime) |
| virtual double | emitterDuration () |
| virtual void | setEmitterDuration (double emitterDuration) |
| virtual double | particleLifetime () |
| void | setMaxParticlesToEmit (int max) |
| int | maxParticlesToEmit () |
| virtual osg::Vec3 | wind () const |
| virtual void | setWind (const osg::Vec3 &wind) |
| virtual void | setIsRotorWash (bool isRotorWash) |
| virtual bool | isRotorWash () |
| virtual void | setRotorDiameter (double diameter) |
| virtual double | rotorDiameter () const |
| virtual void | setRotorWindSpeed (double speed) |
| virtual double | rotorWindSpeed () const |
| virtual osg::Vec3 | up () const |
| virtual void | setUp (const osg::Vec3 &up) |
| virtual void | stop () |
| virtual void | start () |
| virtual void | pause () |
| virtual void | resume () |
| virtual void | setLoopMode (bool loopOn) |
| virtual void | setReverseAnimation (bool reverse) |
| virtual void | traverse (osg::NodeVisitor &nv) |
| virtual osg::Node * | particleSystemNode () |
| virtual osg::Geode * | particleSystemGeode () |
| virtual void | setMatrix (const osg::Matrix &mat) |
| void | getSizeRange (osgParticle::ParticleSystem *particleSystem, float &min, float &max) const |
| virtual void | addParent (osg::Group *parent) |
| virtual void | setupParticleScalingDefaults (osgParticle::ParticleSystem *ps) |
| virtual void | setupParticleLightingDefaults (osgParticle::ParticleSystem *ps) |
| virtual void | scaleDefaultParticleSizes (float scale) |
| virtual | ~DtOsgParticleSystemEffect () |
| DtOsgParticleSystemEffect (const DtOsgParticleSystemEffect ©, const osg::CopyOp ©op) | |
|
protected |
Get the name of the object's class.
| makVrv::DtOsgParticleSystemEffect::DtOsgParticleSystemEffect | ( | ) |
CTOR.
|
protectedvirtual |
DTOR.
|
protected |
Copy CTOR - not implemented.
|
virtual |
Get the name of the object's class.
|
virtual |
Get the name of the object's class.
|
virtual |
Test for type sameness.
|
virtual |
Get the name of the object's class.
|
virtual |
Get an osg Group containing the emitters for this effect.
|
virtual |
Get an osg Group containing the programs for this effect.
|
virtual |
Get an osg Group containing the effect's proxy nodes.
|
virtual |
Get an osg Group containing transforms placed at the top of the effect.
|
pure virtual |
Set the emitter group and program group appropriately.
Implemented in makVrv::DtCopyableOsgParticleSystemEffect.
|
virtual |
Build the effect up from its current state.
|
virtual |
Get a previously set useLocalParticleSystem flag.
|
virtual |
Included for possible future use. This method currently has no effect.
Reimplemented in makVrv::DtCopyableOsgParticleSystemEffect.
|
virtual |
Get the current particle system scale factor.
|
virtual |
Scale the particle system by the specified value. Both the geometry of the system as well as the size of individual particles are scaled.
|
virtual |
Get a previously set intensity.
|
virtual |
Included for possible future use. This method currently has no effect.
|
virtual |
Get the start time of the particle effect.
|
virtual |
Set the start time of the particle effect.
|
virtual |
Get the emitter duration previously set.
|
virtual |
Set the emitter duration. This sets the lifetime of future particles emitted, for all emitters in the effect.
|
virtual |
Find the maximum lifetime of any future particle in any of the particle systems that make up this effect.
| void makVrv::DtOsgParticleSystemEffect::setMaxParticlesToEmit | ( | int | max | ) |
Set the maximum number of particles to emit.
| int makVrv::DtOsgParticleSystemEffect::maxParticlesToEmit | ( | ) |
Get the maximum number of particles to emit.
|
virtual |
Get a previously set wind value.
|
virtual |
Set the wind vector.
|
virtual |
For rotorwash type effects, scale the vortex force and radius based on the distance from the particle effect to the helicopter This method is currently not used (but is used in the particle system effects)
|
virtual |
For rotorwash type effects, get whether we scale the vortex force and radius based on the distance from the particle effect to the helicopter.
|
virtual |
For rotorwash type effects, set the diameter of the helicoper rotor blades (rotor disk)
|
virtual |
For rotorwash type effects, get the diameter of the helicoper rotor blades (rotor disk)
|
virtual |
For rotorwash type effects, set the speed of the helicoper rotor blade rotation.
|
virtual |
For rotorwash type effects, get the speed of the helicoper rotor blade rotation.
|
virtual |
Get a previously set up value.
|
virtual |
set the up value
|
virtual |
Stop the particle effect.
|
virtual |
start the particle effect
|
virtual |
Pause the particle effect.
|
virtual |
resume the particle effect
|
virtual |
Set whether or not looping is on.
|
virtual |
Animations to reverse.
|
virtual |
Interrupt CullVisitors to update the transforms.
|
virtual |
Get the node containing the particle system geometry.
|
virtual |
Get an osg Geode containing drawables for this effect's particle systems.
|
virtual |
Set the matrix transform that this particle effect is currently beneath. Note that scaling also modifies this matrix, so use of this method may interfere.
| void makVrv::DtOsgParticleSystemEffect::getSizeRange | ( | osgParticle::ParticleSystem * | particleSystem, |
| float & | min, | ||
| float & | max | ||
| ) | const |
The the minimum and maximum particle sizes cached for a particular particle system.
|
protectedvirtual |
Specify a group that has this effect as a child node.
|
protectedvirtual |
Grab the mininum and maximum particle sizes from the particle system. These will be scaled when the particle effect is scaled.
|
protectedvirtual |
Set how lighting should affect this particle system.
|
protectedvirtual |
Scale the size of new particles. In addition to scaling the entire effect (which scales the particle positions) the particle sizes also need to be scaled.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.
|
protected |
Get the name of the object's class.