14#ifndef OSGPARTICLE_PARTICLEEFFECT
15#define OSGPARTICLE_PARTICLEEFFECT
40 virtual const char*
libraryName()
const {
return "osgParticle"; }
41 virtual const char*
className()
const {
return "ParticleEffect"; }
Vec3f Vec3
Definition Vec3:21
The osgParticle library is a NodeKit that extends the core scene graph to support particle effects.
Definition AccelOperator:27
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
General group node which maintains a list of children.
Definition Group:29
Visitor for type safe operations on osg::Nodes.
Definition NodeVisitor:82
virtual void apply(Drawable &drawable)
void pushOntoNodePath(Node *node)
Method called by osg::Node::accept() method before a call to the NodeVisitor::apply(....
Definition NodeVisitor:287
bool validNodeMask(const osg::Node &node) const
Method to called by Node and its subclass' Node::accept() method, if the result is true it is used to...
Definition NodeVisitor:221
void popFromNodePath()
Method called by osg::Node::accept() method after a call to NodeVisitor::apply(..).
Definition NodeVisitor:293
Base class/standard interface for objects which require IO support, cloning and reference counting.
Definition Object:61
Smart pointer for handling referenced counted objects.
Definition ref_ptr:32
T * get() const
Definition ref_ptr:117
An abstract base class for particle emitters.
Definition Emitter:35
Implementation of a particle.
Definition Particle:47
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
return the name of the node's library.
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)
Visitor Pattern : calls the apply method of a NodeVisitor with this node's type.
Definition ParticleEffect:43
virtual bool isSameKindAs(const osg::Object *obj) const
return true if this and obj are of the same kind of object.
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
return the name of the node's class type.
Definition ParticleEffect:41
ParticleEffect(const ParticleEffect ©, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
void setScale(float scale)
bool _useLocalParticleSystem
Definition ParticleEffect:107
The heart of this class library; its purpose is to hold a set of particles and manage particle creati...
Definition ParticleSystem:54
An abstract ParticleProcessor descendant for modifying particles "on the fly" during the cull travers...
Definition Program:36
#define OSGPARTICLE_EXPORT
Definition Export:40