15 #include <osg/MatrixTransform>
22 namespace osgParticle {
34 class DtTacticalSmokeEmitter;
35 class DtTranslateOperator;
62 const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
68 osg::MatrixTransform* particleTransform();
69 const osg::MatrixTransform* particleTransform()
const;
78 osgParticle::Shooter* particleShooter();
79 const osgParticle::Shooter* particleShooter()
const;
83 osgParticle::Placer* particlePlacer();
84 const osgParticle::Placer* particlePlacer()
const;
88 osgParticle::Counter* particleCounter();
89 const osgParticle::Counter* particleCounter()
const;
93 osgParticle::ParticleSystem* particleSystem();
94 const osgParticle::ParticleSystem* particleSystem()
const;
98 osgParticle::Particle& particleTemplate();
99 const osgParticle::Particle& particleTemplate()
const;
115 void setParticleSpeed(
double speed);
126 void setParticleLifetime(
double life);
133 void setOneSigmaDistance(
int puffIndex,
const osg::Vec3d& dist);
139 void setDensity(
int puffIndex,
double dens);
144 void setPlacement(
int puffIndex,
const osg::Vec3d& pos);
150 void setEmitterLifetime(
double life);
157 void setParticleSizeRange(
double isz,
double fsz);
165 void setParticleRotationRange(
double mn,
double mx);
172 void setParticleColorRange(
const osg::Vec4& icl,
const osg::Vec4& fcl);
179 void setParticleAlphaMultiplier(
double alpha);
186 void setIntensityRange(
double mn,
double mx);
191 void setWind(
const osg::Vec3d& wnd);
195 void setTexture(
const std::string& txt);
219 virtual void traverse(osg::NodeVisitor& nv);