14#ifndef OSGPARTICLE_PARTICLEEFFECT
15#define OSGPARTICLE_PARTICLEEFFECT
28 _automaticSetup(automaticSetup),
29 _useLocalParticleSystem(true),
33 _emitterDuration(1.0),
40 virtual const char*
libraryName()
const {
return "osgParticle"; }
41 virtual const char*
className()
const {
return "ParticleEffect"; }
79 bool areAllParticlesDead()
const {
return _particleSystem.valid()?_particleSystem->areAllParticlesDead():
true; }
Definition ParticleEffect:24
Particle _defaultParticleTemplate
Definition ParticleEffect:109
const osg::Vec3 & getWind() const
Definition ParticleEffect:76
const Particle & getDefaultParticleTemplate() const
Definition ParticleEffect:55
void setAutomaticSetup(bool flag)
Definition ParticleEffect:45
virtual const char * libraryName() const
Definition ParticleEffect:40
virtual const Emitter * getEmitter() const =0
bool getUseLocalParticleSystem() const
Definition ParticleEffect:49
double getParticleDuration() const
Definition ParticleEffect:73
bool areAllParticlesDead() const
Get whether all particles are dead.
Definition ParticleEffect:79
ParticleEffect(bool automaticSetup=true)
Definition ParticleEffect:27
virtual void setUpEmitterAndProgram()=0
const ParticleSystem * getParticleSystem() const
Definition ParticleEffect:91
void setTextureFileName(const std::string &filename)
std::string _textureFileName
Definition ParticleEffect:108
double _emitterDuration
Definition ParticleEffect:114
osg::Vec3 _wind
Definition ParticleEffect:115
void setPosition(const osg::Vec3 &position)
void setIntensity(float intensity)
double getStartTime() const
Definition ParticleEffect:67
void setEmitterDuration(double duration)
virtual const Program * getProgram() const =0
double getEmitterDuration() const
Definition ParticleEffect:70
void setUseLocalParticleSystem(bool local)
void setWind(const osg::Vec3 &wind)
virtual void setDefaults()
ParticleSystem * getParticleSystem()
Definition ParticleEffect:90
virtual void buildEffect()
osg::ref_ptr< ParticleSystem > _particleSystem
Definition ParticleEffect:105
const std::string & getTextureFileName() const
Definition ParticleEffect:52
float _intensity
Definition ParticleEffect:112
double _startTime
Definition ParticleEffect:113
void setParticleDuration(double duration)
void setParticleSystem(const osg::ref_ptr< T > &ri)
Definition ParticleEffect:88
const osg::Vec3 & getPosition() const
Definition ParticleEffect:58
bool getAutomaticSetup() const
Definition ParticleEffect:46
virtual Program * getProgram()=0
float getIntensity() const
Definition ParticleEffect:64
virtual Emitter * getEmitter()=0
void setStartTime(double startTime)
bool _automaticSetup
Definition ParticleEffect:103
osg::Vec3 _position
Definition ParticleEffect:110
void setParticleSystem(ParticleSystem *ps)
virtual void accept(osg::NodeVisitor &nv)
Definition ParticleEffect:43
virtual bool isSameKindAs(const osg::Object *obj) const
Definition ParticleEffect:42
float getScale() const
Definition ParticleEffect:61
void setDefaultParticleTemplate(const Particle &p)
float _scale
Definition ParticleEffect:111
virtual ~ParticleEffect()
Definition ParticleEffect:101
virtual const char * className() const
Definition ParticleEffect:41
ParticleEffect(const ParticleEffect ©, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
void setScale(float scale)
bool _useLocalParticleSystem
Definition ParticleEffect:107
Definition ParticleSystem:54
Definition osgParticle/Program:36
@ SHALLOW_COPY
Definition CopyOp:47
Definition NodeVisitor:82
virtual void apply(Drawable &drawable)
void pushOntoNodePath(Node *node)
Definition NodeVisitor:287
bool validNodeMask(const osg::Node &node) const
Definition NodeVisitor:221
void popFromNodePath()
Definition NodeVisitor:293
T * get() const
Definition ref_ptr:117
Definition AccelOperator:27
#define OSGPARTICLE_EXPORT
Definition osgParticle/Export:40