VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GaussianParticleSystem.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 
10 #include <osg/Group>
11 #include <osg/Referenced>
12 
13 namespace osg {
14  class PositionAttitudeTransform;
15 }
16 
17 namespace osgParticle {
18  class Particle;
19  class ParticleSystem;
20  class ParticleSystemUpdater;
21  class ModularEmitter;
22  class Program;
23  class RandomRateCounter;
24  class PointPlacer;
25  class RadialShooter;
26 }
27 
38 class GaussianParticles : public osg::Group
39 {
40 public:
48  GaussianParticles( double theta, double phi, double sigma=1.0,
49  double life=4.0, double height=1.0 );
50 
52  virtual ~GaussianParticles();
53 
55  osg::PositionAttitudeTransform* positionAttitudeTransform() const
56  {
57  return myPat.get();
58  }
59 
63  osgParticle::Particle* particle() const
64  {
65  return myParticle;
66  }
67 
71  osgParticle::ParticleSystem* particleSystem() const
72  {
73  return myParticleSystem.get();
74  }
75 
79  osgParticle::ParticleSystemUpdater* particleSystemUpdater() const
80  {
81  return myParticleSystemUpdater.get();
82  }
83 
88  osgParticle::ModularEmitter* modularEmitter() const
89  {
90  return myModularEmitter.get();
91  }
92 
95  osgParticle::RandomRateCounter* randomRateCounter() const
96  {
97  return myRandomRateCounter.get();
98  }
99 
102  osgParticle::PointPlacer* pointPlacer() const
103  {
104  return myPointPlacer.get();
105  }
106 
109  osgParticle::RadialShooter* radialShooter() const
110  {
111  return myRadialShooter.get();
112  }
113 
118  osgParticle::Program* program() const
119  {
120  return myProgram.get();
121  }
122 
123 private:
124  osg::ref_ptr<osg::PositionAttitudeTransform> myPat;
125  osgParticle::Particle* myParticle; // not an osg::Object - no ref counting.
126  osg::ref_ptr<osgParticle::ParticleSystem> myParticleSystem;
127  osg::ref_ptr<osgParticle::ParticleSystemUpdater> myParticleSystemUpdater;
128  osg::ref_ptr<osgParticle::ModularEmitter> myModularEmitter;
129  osg::ref_ptr<osgParticle::Program> myProgram;
130  osg::ref_ptr<osgParticle::RandomRateCounter> myRandomRateCounter;
131  osg::ref_ptr<osgParticle::PointPlacer> myPointPlacer;
132  osg::ref_ptr<osgParticle::RadialShooter> myRadialShooter;
133 };

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)