VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions
makVrv::DtOsgParticleSystemEffect Class Referenceabstract

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.

Inheritance diagram for makVrv::DtOsgParticleSystemEffect:
Inheritance graph
[legend]

Classes

struct  DefaultParticleParameters
 

Public Member Functions

 DtOsgParticleSystemEffect ()
 

osg::Group contract functions

Get the name of the object's library/namespace

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 charlibraryName () const
 
virtual const charclassName () 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 &copy, const osg::CopyOp &copyop)
 

Member Typedef Documentation

typedef std::unordered_map<osgParticle::ParticleSystem*,DefaultParticleParameters> makVrv::DtOsgParticleSystemEffect::ParticleParametersMap
protected

Get the name of the object's class.

Constructor & Destructor Documentation

makVrv::DtOsgParticleSystemEffect::DtOsgParticleSystemEffect ( )

CTOR.

virtual makVrv::DtOsgParticleSystemEffect::~DtOsgParticleSystemEffect ( )
protectedvirtual

DTOR.

makVrv::DtOsgParticleSystemEffect::DtOsgParticleSystemEffect ( const DtOsgParticleSystemEffect copy,
const osg::CopyOp &  copyop 
)
protected

Copy CTOR - not implemented.

Member Function Documentation

virtual const char* makVrv::DtOsgParticleSystemEffect::libraryName ( ) const
virtual

Get the name of the object's class.

virtual const char* makVrv::DtOsgParticleSystemEffect::className ( ) const
virtual

Get the name of the object's class.

virtual bool makVrv::DtOsgParticleSystemEffect::isSameKindAs ( const osg::Object *  obj) const
virtual

Test for type sameness.

virtual void makVrv::DtOsgParticleSystemEffect::accept ( osg::NodeVisitor &  v)
virtual

Get the name of the object's class.

virtual osg::Group* makVrv::DtOsgParticleSystemEffect::emitterGroup ( )
virtual

Get an osg Group containing the emitters for this effect.

virtual osg::Group* makVrv::DtOsgParticleSystemEffect::programGroup ( )
virtual

Get an osg Group containing the programs for this effect.

virtual osg::Group* makVrv::DtOsgParticleSystemEffect::proxyGroup ( )
virtual

Get an osg Group containing the effect's proxy nodes.

virtual osg::Group* makVrv::DtOsgParticleSystemEffect::transformGroup ( )
virtual

Get an osg Group containing transforms placed at the top of the effect.

virtual void makVrv::DtOsgParticleSystemEffect::setUpEmittersAndPrograms ( )
pure virtual

Set the emitter group and program group appropriately.

Implemented in makVrv::DtCopyableOsgParticleSystemEffect.

virtual void makVrv::DtOsgParticleSystemEffect::buildEffect ( )
virtual

Build the effect up from its current state.

virtual bool makVrv::DtOsgParticleSystemEffect::useLocalParticleSystem ( )
virtual

Get a previously set useLocalParticleSystem flag.

virtual void makVrv::DtOsgParticleSystemEffect::setUseLocalParticleSystem ( bool  b)
virtual

Included for possible future use. This method currently has no effect.

Reimplemented in makVrv::DtCopyableOsgParticleSystemEffect.

virtual float makVrv::DtOsgParticleSystemEffect::scale ( ) const
virtual

Get the current particle system scale factor.

virtual void makVrv::DtOsgParticleSystemEffect::setScale ( float  scale)
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 float makVrv::DtOsgParticleSystemEffect::intensity ( )
virtual

Get a previously set intensity.

virtual void makVrv::DtOsgParticleSystemEffect::setIntensity ( float  intensity)
virtual

Included for possible future use. This method currently has no effect.

virtual double makVrv::DtOsgParticleSystemEffect::startTime ( )
virtual

Get the start time of the particle effect.

virtual void makVrv::DtOsgParticleSystemEffect::setStartTime ( double  startTime)
virtual

Set the start time of the particle effect.

virtual double makVrv::DtOsgParticleSystemEffect::emitterDuration ( )
virtual

Get the emitter duration previously set.

virtual void makVrv::DtOsgParticleSystemEffect::setEmitterDuration ( double  emitterDuration)
virtual

Set the emitter duration. This sets the lifetime of future particles emitted, for all emitters in the effect.

virtual double makVrv::DtOsgParticleSystemEffect::particleLifetime ( )
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 osg::Vec3 makVrv::DtOsgParticleSystemEffect::wind ( ) const
virtual

Get a previously set wind value.

virtual void makVrv::DtOsgParticleSystemEffect::setWind ( const osg::Vec3 &  wind)
virtual

Set the wind vector.

virtual void makVrv::DtOsgParticleSystemEffect::setIsRotorWash ( bool  isRotorWash)
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 bool makVrv::DtOsgParticleSystemEffect::isRotorWash ( )
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 void makVrv::DtOsgParticleSystemEffect::setRotorDiameter ( double  diameter)
virtual

For rotorwash type effects, set the diameter of the helicoper rotor blades (rotor disk)

virtual double makVrv::DtOsgParticleSystemEffect::rotorDiameter ( ) const
virtual

For rotorwash type effects, get the diameter of the helicoper rotor blades (rotor disk)

virtual void makVrv::DtOsgParticleSystemEffect::setRotorWindSpeed ( double  speed)
virtual

For rotorwash type effects, set the speed of the helicoper rotor blade rotation.

virtual double makVrv::DtOsgParticleSystemEffect::rotorWindSpeed ( ) const
virtual

For rotorwash type effects, get the speed of the helicoper rotor blade rotation.

virtual osg::Vec3 makVrv::DtOsgParticleSystemEffect::up ( ) const
virtual

Get a previously set up value.

virtual void makVrv::DtOsgParticleSystemEffect::setUp ( const osg::Vec3 &  up)
virtual

set the up value

virtual void makVrv::DtOsgParticleSystemEffect::stop ( )
virtual

Stop the particle effect.

virtual void makVrv::DtOsgParticleSystemEffect::start ( )
virtual

start the particle effect

virtual void makVrv::DtOsgParticleSystemEffect::pause ( )
virtual

Pause the particle effect.

virtual void makVrv::DtOsgParticleSystemEffect::resume ( )
virtual

resume the particle effect

virtual void makVrv::DtOsgParticleSystemEffect::setLoopMode ( bool  loopOn)
virtual

Set whether or not looping is on.

virtual void makVrv::DtOsgParticleSystemEffect::setReverseAnimation ( bool  reverse)
virtual

Animations to reverse.

virtual void makVrv::DtOsgParticleSystemEffect::traverse ( osg::NodeVisitor &  nv)
virtual

Interrupt CullVisitors to update the transforms.

virtual osg::Node* makVrv::DtOsgParticleSystemEffect::particleSystemNode ( )
virtual

Get the node containing the particle system geometry.

virtual osg::Geode* makVrv::DtOsgParticleSystemEffect::particleSystemGeode ( )
virtual

Get an osg Geode containing drawables for this effect's particle systems.

virtual void makVrv::DtOsgParticleSystemEffect::setMatrix ( const osg::Matrix &  mat)
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.

virtual void makVrv::DtOsgParticleSystemEffect::addParent ( osg::Group *  parent)
protectedvirtual

Specify a group that has this effect as a child node.

virtual void makVrv::DtOsgParticleSystemEffect::setupParticleScalingDefaults ( osgParticle::ParticleSystem *  ps)
protectedvirtual

Grab the mininum and maximum particle sizes from the particle system. These will be scaled when the particle effect is scaled.

virtual void makVrv::DtOsgParticleSystemEffect::setupParticleLightingDefaults ( osgParticle::ParticleSystem *  ps)
protectedvirtual

Set how lighting should affect this particle system.

virtual void makVrv::DtOsgParticleSystemEffect::scaleDefaultParticleSizes ( float  scale)
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.

Member Data Documentation

osg::ref_ptr<osg::Group> makVrv::DtOsgParticleSystemEffect::myEmitterGroup
protected

Get the name of the object's class.

osg::ref_ptr<osg::Group> makVrv::DtOsgParticleSystemEffect::myProgramGroup
protected

Get the name of the object's class.

osg::ref_ptr<osg::Geode> makVrv::DtOsgParticleSystemEffect::myParticleSystemGeode
protected

Get the name of the object's class.

osg::ref_ptr<osg::Group> makVrv::DtOsgParticleSystemEffect::myProxyGroup
protected

Get the name of the object's class.

osg::ref_ptr<osg::Group> makVrv::DtOsgParticleSystemEffect::myTransformGroup
protected

Get the name of the object's class.

std::vector<osg::ref_ptr<osg::Sequence> > makVrv::DtOsgParticleSystemEffect::mySequences
protected

Get the name of the object's class.

bool makVrv::DtOsgParticleSystemEffect::mySequencesLooping
protected

Get the name of the object's class.

bool makVrv::DtOsgParticleSystemEffect::mySequencesReverse
protected

Get the name of the object's class.

osg::ref_ptr<osg::MatrixTransform> makVrv::DtOsgParticleSystemEffect::myParticleSystemTransform
protected

Get the name of the object's class.

bool makVrv::DtOsgParticleSystemEffect::myTransformsSet
protected

Get the name of the object's class.

bool makVrv::DtOsgParticleSystemEffect::myUseLocalParticleSystem
protected

Get the name of the object's class.

osg::Vec3 makVrv::DtOsgParticleSystemEffect::myPosition
protected

Get the name of the object's class.

float makVrv::DtOsgParticleSystemEffect::myScale
protected

Get the name of the object's class.

float makVrv::DtOsgParticleSystemEffect::myIntensity
protected

Get the name of the object's class.

double makVrv::DtOsgParticleSystemEffect::myStartTime
protected

Get the name of the object's class.

double makVrv::DtOsgParticleSystemEffect::myEmitterDuration
protected

Get the name of the object's class.

int makVrv::DtOsgParticleSystemEffect::myMaxParticlesToEmit
protected

Get the name of the object's class.

osg::Vec3 makVrv::DtOsgParticleSystemEffect::myWind
protected

Get the name of the object's class.

osg::Vec3 makVrv::DtOsgParticleSystemEffect::myUp
protected

Get the name of the object's class.

bool makVrv::DtOsgParticleSystemEffect::myIsRotorWash
protected

Get the name of the object's class.

float makVrv::DtOsgParticleSystemEffect::myRotorDiameter
protected

Get the name of the object's class.

float makVrv::DtOsgParticleSystemEffect::myRotorWindSpeed
protected

Get the name of the object's class.

ParticleParametersMap makVrv::DtOsgParticleSystemEffect::myDefaultParticleParameters
protected

Get the name of the object's class.


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

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)