VR-Forces 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 | Protected Member Functions | Private Types | Private Member Functions | Private Attributes
makVrv::DtTacticalSmokeEmitter Class Reference

An emitter class that manages and emits several particles.

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

Classes

struct  PuffData
 

Public Member Functions

 DtTacticalSmokeEmitter ()
 
 DtTacticalSmokeEmitter (const DtTacticalSmokeEmitter &copy, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
 
 META_Object (osgParticle, DtTacticalSmokeEmitter)
 
void setPosition (int puffIndex, const osg::Vec3d &pos)
 
void setDensity (int puffIndex, float dens)
 
void setOneSigma (int puffIndex, const osg::Vec3 &sigmas)
 
void setIntensityRange (float mn, float mx)
 
void setParticleSizeRange (float isz, float fsz)
 
void setParticleColorRange (const osg::Vec4 &icl, const osg::Vec4 &fcl)
 
void setParticleAlphaMultiplier (float alpha)
 
- Public Member Functions inherited from makVrv::DtImprovedModularEmitter
 DtImprovedModularEmitter ()
 
 DtImprovedModularEmitter (const DtImprovedModularEmitter &copy, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
 
 DtImprovedModularEmitter (const osgParticle::ModularEmitter &modularEmitter)
 
virtual ~DtImprovedModularEmitter ()
 
 META_Node (vrvOsg, DtImprovedModularEmitter)
 
virtual void setMaximumCompensationCount (int count)
 
virtual int maximumCompensationCount () const
 
virtual void setCurrentParticlesToEmit (int max)
 
virtual int currentParticlesToEmit () const
 
virtual void setWorldToLocalOrigin (const osg::Matrixd &mat)
 

Protected Member Functions

virtual void emitParticles (double dt)
 
virtual ~DtTacticalSmokeEmitter ()
 
DtTacticalSmokeEmitteroperator= (const DtTacticalSmokeEmitter &)
 

Private Types

typedef std::vector< PuffDataPuffs
 

Private Member Functions

PuffDatapuffData (int puffIndex)
 

Private Attributes

Puffs myPuffs
 
osgParticle::rangef myParticlesPerSec
 
float myAlphaMultiplier
 

Additional Inherited Members

- Protected Attributes inherited from makVrv::DtImprovedModularEmitter
int myMaximumCompensationCount
 
osg::Vec3 myPosition
 
osg::Matrixd myWorldToLocalOrigin
 
int myCurrentParticlesToEmit
 

Member Typedef Documentation

A vector of puff-data objects.

Constructor & Destructor Documentation

makVrv::DtTacticalSmokeEmitter::DtTacticalSmokeEmitter ( )

Default CTOR.

makVrv::DtTacticalSmokeEmitter::DtTacticalSmokeEmitter ( const DtTacticalSmokeEmitter copy,
const osg::CopyOp &  copyop = osg::CopyOp::SHALLOW_COPY 
)

Copy CTOR.

virtual makVrv::DtTacticalSmokeEmitter::~DtTacticalSmokeEmitter ( )
inlineprotectedvirtual

Protected virtual destructor.

Member Function Documentation

makVrv::DtTacticalSmokeEmitter::META_Object ( osgParticle  ,
DtTacticalSmokeEmitter   
)
void makVrv::DtTacticalSmokeEmitter::setPosition ( int  puffIndex,
const osg::Vec3d &  pos 
)

Set an initial position for a puff of particles.

Parameters
[in]puffIndexis the index of the puff position.
[in]posis the puff position for new particles.
void makVrv::DtTacticalSmokeEmitter::setDensity ( int  puffIndex,
float  dens 
)

Set an initial density for a puff of particles.

Parameters
[in]puffIndexis the index of the puff density.
[in]densis the puff density (alpha) for new particles.
void makVrv::DtTacticalSmokeEmitter::setOneSigma ( int  puffIndex,
const osg::Vec3 &  sigmas 
)

Set a sigma-distance for a puff of particles.

Parameters
[in]puffIndexis the index of the puff sigma-distances.
[in]sigmasis the puff sigma-distances for new particles.
void makVrv::DtTacticalSmokeEmitter::setIntensityRange ( float  mn,
float  mx 
)

Set the total number of particles per second for all puffs. This value is divided by the number of puffs and set for each puff, so a value of sixty for six puffs means ten particles per puff.

Parameters
[in]mnis the minimum number to emit (must be greater than zero).
[in]mxis the maximum to emit (must be greater or equal to minimum).
void makVrv::DtTacticalSmokeEmitter::setParticleSizeRange ( float  isz,
float  fsz 
)

Set the uniform size for all particles in all puffs.

Parameters
[in]iszis the initial size of each particle (must be greater than zero).
[in]fszis the final size of each particle (must be greater than zero).
void makVrv::DtTacticalSmokeEmitter::setParticleColorRange ( const osg::Vec4 &  icl,
const osg::Vec4 &  fcl 
)

Set the particle color range. The particles will each change color over their lifetime from an initial color to a final color.

Parameters
[in]iclis the initial color.
[in]fclis the final color.
void makVrv::DtTacticalSmokeEmitter::setParticleAlphaMultiplier ( float  alpha)

Set the particle initial alpha multiplier. This value is multiplied by the density to create an initial alpha value for each particle. Values should be normalized from zero to one. Invalid values are clamped.

Parameters
[in]alphais the multiplier to use.
virtual void makVrv::DtTacticalSmokeEmitter::emitParticles ( double  dt)
protectedvirtual

Emit particles for each of the stored particle types.

Parameters
[in]dtis the delta-time for this call.
Note
Do not call this function directly. This function is automatically called during updates.

Reimplemented from makVrv::DtImprovedModularEmitter.

DtTacticalSmokeEmitter& makVrv::DtTacticalSmokeEmitter::operator= ( const DtTacticalSmokeEmitter )
inlineprotected

Protected copy operator.

PuffData& makVrv::DtTacticalSmokeEmitter::puffData ( int  puffIndex)
private

Get a puff.

Parameters
[in]puffIndexis the index of the puff.
Returns
The puff-data at the given index.
Note
If puffIndex is not found, a new puff-data object is created at that index and then returned.

Member Data Documentation

Puffs makVrv::DtTacticalSmokeEmitter::myPuffs
private
osgParticle::rangef makVrv::DtTacticalSmokeEmitter::myParticlesPerSec
private
float makVrv::DtTacticalSmokeEmitter::myAlphaMultiplier
private

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

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)