12 #include <osg/MatrixTransform>
14 #include <osg/Sequence>
16 #include <unordered_map>
25 class DtImprovedModularEmitter;
40 virtual const char* libraryName()
const;
43 virtual const char* className()
const;
46 virtual bool isSameKindAs(
const osg::Object* obj)
const;
48 virtual void accept(osg::NodeVisitor& v);
52 virtual osg::Group* emitterGroup();
55 virtual osg::Group* programGroup();
58 virtual osg::Group* proxyGroup();
62 virtual osg::Group* transformGroup();
65 virtual void setUpEmittersAndPrograms() = 0;
68 virtual void buildEffect();
71 virtual bool useLocalParticleSystem();
75 virtual void setUseLocalParticleSystem(
bool b);
78 virtual float scale()
const;
83 virtual void setScale(
float scale);
86 virtual float intensity();
90 virtual void setIntensity(
float intensity);
93 virtual double startTime();
96 virtual void setStartTime(
double startTime);
99 virtual double emitterDuration();
104 virtual void setEmitterDuration(
double emitterDuration);
108 virtual double particleLifetime();
111 void setMaxParticlesToEmit(
int max);
114 int maxParticlesToEmit();
117 virtual osg::Vec3 wind()
const;
120 virtual void setWind(
const osg::Vec3& wind);
127 virtual void setIsRotorWash(
bool isRotorWash);
132 virtual bool isRotorWash();
136 virtual void setRotorDiameter(
double diameter);
140 virtual double rotorDiameter()
const;
144 virtual void setRotorWindSpeed(
double speed);
148 virtual double rotorWindSpeed()
const;
151 virtual osg::Vec3 up()
const;
154 virtual void setUp(
const osg::Vec3& up);
160 virtual void start();
163 virtual void pause();
166 virtual void resume();
169 virtual void setLoopMode(
bool loopOn);
172 virtual void setReverseAnimation(
bool reverse);
175 virtual void traverse(osg::NodeVisitor& nv);
178 virtual osg::Node* particleSystemNode();
182 virtual osg::Geode* particleSystemGeode();
187 virtual void setMatrix(
const osg::Matrix& mat);
191 void getSizeRange( osgParticle::ParticleSystem* particleSystem,
float& min,
197 virtual void addParent(osg::Group* parent);
201 virtual void setupParticleScalingDefaults( osgParticle::ParticleSystem*
ps );
204 virtual void setupParticleLightingDefaults( osgParticle::ParticleSystem* ps );
209 virtual void scaleDefaultParticleSizes(
float scale );
float myIntensity
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:235
float myRotorDiameter
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:242
double myEmitterDuration
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:237
osg::Vec3 myWind
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:239
osg::ref_ptr< osg::Group > myProxyGroup
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:222
DT_DLL_tdbutil void ps(int indent_level)
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::vector< osg::ref_ptr< osg::Sequence > > mySequences
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:225
float myScale
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:234
osg::Vec3 myPosition
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:233
osg::ref_ptr< osg::Group > myEmitterGroup
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:219
osg::ref_ptr< osg::Group > myTransformGroup
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:223
double myStartTime
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:236
float myRotorWindSpeed
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:243
Definition: DtOsgParticleSystemEffect.h:245
bool myIsRotorWash
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:241
osg::ref_ptr< osg::Geode > myParticleSystemGeode
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:221
int myMaxParticlesToEmit
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:238
std::unordered_map< osgParticle::ParticleSystem *, DefaultParticleParameters > ParticleParametersMap
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:251
ParticleParametersMap myDefaultParticleParameters
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:253
bool myTransformsSet
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:230
bool mySequencesReverse
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:227
float myMaxSize
Definition: DtOsgParticleSystemEffect.h:248
osg::ref_ptr< osg::Group > myProgramGroup
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:220
bool myUseLocalParticleSystem
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:232
Contains DLL export macros.
This class provides a facade around the osgParticle class hierarchy. It is comparable with osgParticl...
Definition: DtOsgParticleSystemEffect.h:31
osg::Vec3 myUp
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:240
float myMinSize
Definition: DtOsgParticleSystemEffect.h:247
osg::ref_ptr< osg::MatrixTransform > myParticleSystemTransform
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:229
bool mySequencesLooping
Get the name of the object's class.
Definition: DtOsgParticleSystemEffect.h:226