VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtWeatherEffect.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/DtGlVaoManager.h>
13 #include <vrvOsg/vrvOsg.h>
14 
15 #include <vrvCore/DtJobSplitter.h>
16 
19 
20 #include <osg/BlendFunc>
21 #include <osg/RenderInfo>
22 #include <osg/Vec3d>
23 
24 
25 namespace makVrv
26 {
27  // Forward declarations.
28  class DtWeatherArea;
29  class DtWeatherEffectDrawable;
30  class DtWeatherEffectsObject;
31 
32 
44  {
45  public:
46 
48  struct DrawData
49  {
51  : myRenderInfo(0)
52  , myWeatherEffectsObject(0)
53  , myCamPos(0, 0, 0)
54  , myCamMove(0, 0, 0)
55  , myIsGeoCentric(false)
56  , myNearClip(1.0f)
57  , myParametersUnfmLoc(0)
58  , mySoftnessUnfmLoc(0)
59  , myDepthProxyUnfmLoc(0)
60  , mySurfaceUnfmLoc(0)
61  , mySurfaceProjUnfmLoc(0)
62  , myAdditiveBlend(false)
63  , myStateDirty(true)
64  , myAppliedHeightMap(false)
65  , myDrawable(0)
66  , mySurfaceHeights(0)
67  , mySurfaceHeightCount(0)
68  , mySurfaceBoundsX(1)
69  , mySurfaceBoundsY(1)
70  , mySurfaceCornerRadius(1)
71  , mySurfaceAltitude(0)
72  , myElevationMin(0)
73  , myElevationRange(100000.0f)
74  {
75  // intentional nop
76  }
77 
78  osg::RenderInfo* myRenderInfo;
80  osg::Vec3d myCamPos;
81  osg::Vec3d myCamMove;
83  float myNearClip;
93  std::vector<DtWeatherArea*> myWeatherAreas;
94  const unsigned int* mySurfaceHeights;
100  osg::Matrixf mySurfaceMatrix;
103  };
104 
111  {
112  EffectTypePrecipitation = 0,
113  EffectTypeParticle
114  };
115 
124  {
125  SurfaceHitTypeNone = 0,
128  };
129 
130 
133 
135  virtual ~DtWeatherEffect();
136 
137  private:
138 
140  DtWeatherEffect() = delete;
141 
143  DtWeatherEffect(const DtWeatherEffect &other) = delete;
144 
146  DtWeatherEffect &operator=(const DtWeatherEffect &other) = delete;
147 
148  public:
149 
158  virtual void init(int particleCount, float particleSize, float radius, EffectType type, unsigned int randomSeed);
159 
161  virtual void releaseGLObjects(osg::State* state) const;
162 
167  virtual void simulationUpdate(float timeStep, double currentTime, DtJobSplitter* jobSplitter);
168 
172  virtual void postSimulationUpdate(float timeStep, double currentTime);
173 
177  virtual void draw(DtWeatherEffect::DrawData& drawData, float cullFade = 1.0f) const;
178 
183  virtual void cullUpdate(const osg::Vec3d& camPos, const osg::Matrixd& basis, DtJobSplitter* jobSplitter);
184 
190  virtual void setSurfaceHitType(SurfaceHitType type);
191 
194  virtual void setSurfaceHitOffset(float offset);
195 
198  virtual void setSurfaceHitMaxSlope(float degrees);
199 
206  virtual void setWindBlownParameters(int spawnCount, float minSpeed, float maxSpeed, float minTime, float maxTime);
207 
211  virtual void setWind(float windDirectionRad, float windSpeedMps);
212 
215  virtual void setWindSpeedMultiplier(float multiplier);
216 
219  virtual void setWindLiftMultiplier(float multiplier);
220 
223  virtual void setWindTurbulence(float multiplier);
224 
228  virtual void setWindVariation(float minWind, float maxWind);
229 
237  virtual void setScaleAnimation(float minX, float maxX, float minY, float maxY, float time);
238 
243  virtual void setStreak(float multiplier);
244 
249  virtual void setCameraStreakEnable(bool enable);
250 
256  virtual void setStreakAdjustmentEnable(bool enable);
257 
259  virtual void setOrientFlat(bool enable);
260 
263  virtual void setIntensity(float intensity);
264 
272  virtual void setFadePerIntensity(float fadeMin, float fadeMax, float intensityMin, float intensityMax);
273 
281  virtual void setFadePerWind(float fadeMin, float fadeMax, float windMin, float windMax);
282 
290  virtual void setTextureCoordAnimationPerWind(float multMin, float multMax, float windMin, float windMax);
291 
299  virtual void setParticlesPerIntensity(float percentMin, float percentMax, float intensityMin, float intensityMax);
300 
303  virtual void setBaseColor(const osg::Vec3& color);
304 
307  virtual void setAdditiveBlend(bool enable);
308 
310  virtual bool additiveBlend() const;
311 
314  virtual void setVelocity(float x, float y, float z);
315 
318  virtual void setInitRotationVariation(float rotationDeg);
319 
322  virtual void setRotationVelocity(float velDeg);
323 
325  virtual float radius() const;
326 
332  virtual void setTextureAtlasCell(unsigned char numColumns, unsigned char numRows, unsigned char col, unsigned char row);
333 
339  virtual void setTextureCoordinateAnimation(float dirSpeedU, float dirSpeedV, float scale0, float scale1);
340 
345  virtual void setTexturePatternChannelMix(float mix0, float mix1);
346 
349  virtual void setDepthSoftness(float softness);
350 
352  virtual float depthSoftness() const;
353 
358  virtual void setDepthProximity(float startFade, float fadeEnd, float mix);
359 
362  virtual void setDragCoefficient(float coefficient);
363 
365  virtual float dragCoefficient() const;
366 
369  virtual void setSortEnable(bool enable);
370 
372  virtual bool sortEnable() const;
373 
376  virtual void runSort(const osg::Vec3& localCamPos);
377 
380  virtual void setClampToSurface(bool enable);
381 
383  virtual bool clampToSurface() const;
384 
387  virtual void setGravity(const osg::Vec3& gravity);
388 
394  virtual void setRadiusFading(float fadeInStart, float fadeInEnd, float fadeOutStart, float fadeOutEnd);
395 
396  protected:
397 
399  struct MeshGroup
400  {
402  : myVboPositionArray(0)
403  , myVboMoveArray(0)
404  , myVboTexCoords0Array(0)
405  {
406  myPoints = new osg::Vec4Array;
407  myMove = new osg::Vec4Array;
408  myTexCoords0 = new osg::Vec2Array;
409  }
410 
414 
415  unsigned int myVboPositionArray;
416  unsigned int myVboMoveArray;
417  unsigned int myVboTexCoords0Array;
418  };
419 
421  struct Particle
422  {
424  : myParent(0)
425  , myChild(0)
426  , mySortDepth(0)
427  , myPosition(0, 0, 0, 0)
428  , myMove(0, 0, 0, 1)
429  , myVelocity(0, 0, 0)
430  , myLifeTime(0.0f)
431  , myLifeTimeInit(1.0f)
432  , myUsePhysics(1)
433  , myFadeCurve(0)
434  {
435  //intentional nop
436  }
437 
438  Particle* myParent; // next particle in linked list
439  Particle* myChild; // previous particle in link list
440  float mySortDepth;
441  osg::Vec4 myPosition;
442  osg::Vec4 myMove;
443  osg::Vec3 myVelocity;
444  float myLifeTime; // current life time left
445  float myLifeTimeInit; // initial life time
446  unsigned char myUsePhysics; // note: not a bool to save memory
447  unsigned char myFadeCurve;
448  };
449 
454  struct BlendData
455  {
457  : myValueMin(0)
458  , myValueMax(1)
459  , myBlendMin(0)
460  , myBlendMax(1)
461  {
462  //intentional nop
463  }
464 
465  float myValueMin; // the output value at the min blend
466  float myValueMax; // the output value at the max blend
467  float myBlendMin; // < this value output is 0
468  float myBlendMax; // >= this value, output is myValueMax
469  };
470 
474  virtual void runSimulationUpdateJob(float timeStep, double currentTime);
475 
478  virtual void updateHailSurfaceHit(float timeStep);
479 
482  virtual void updateWindBlownSurfaceHit(float timeStep);
483 
486  virtual void computeSortDepth(const osg::Vec3& reference);
487 
489  virtual void fillSortedParticles();
490 
494  virtual bool bindMeshGroupData(MeshGroup* meshGroup, osg::RenderInfo& renderInfo) const;
495 
499  virtual bool bindDynamicMeshGroupData(MeshGroup* meshGroup, osg::RenderInfo& renderInfo) const;
500 
505  virtual bool bindVaoToMeshGroup(GLuint vao, MeshGroup* meshGroup, osg::RenderInfo& renderInfo) const;
506 
510  virtual void simulatePrecipitationParticles(float timeStep, double currentTime);
511 
516  virtual void simulateParticles(float timeStep, double currentTime, osg::Vec3d& basisPosChange);
517 
518  // non-virtual for maximum inner loop performance.
519 
524  void wrapPosition(float& posX, float& posY, float& posZ);
525 
529  Particle* getFreeParticle(void);
530 
533  void freeParticle(Particle* particle);
534 
539  void spawnHailParticle(const osg::Vec3d& position, const osg::Vec3& normal,
540  const unsigned char usePhysics);
541 
547  void spawnWindBlownParticle(const osg::Vec3d& position,
548  const osg::Vec3& normal, float windRandom, float cosAng);
549 
553  const osg::Vec3 crossProduct(const osg::Vec3& v0, const osg::Vec3& v1);
554 
558  float computeRandomMinMax(float fMin, float fMax);
559 
563  void computeRandomPointInRadius(osg::Vec2& point, float radius);
564 
570  bool clampPosition(osg::Vec3d& position, osg::Vec3& normal, const osg::Vec3& up);
571 
575  virtual float computeBlendControl(const BlendData& data, float blendPos) const;
576 
577  protected:
578 
580  static void theSimulationUpdateJob(void* data);
581 
583  static int theSortBackToFront(const void* arg0, const void* arg1);
584 
586  static void theSortJob(void* data);
587 
588  protected:
589 
592  {
594  : myEffect(0)
595  , myTimeStep(0)
596  , myCurrentTime(0)
597  {
598  //intentional nop
599  }
600 
602  float myTimeStep;
604  };
605 
607  struct SortJobData
608  {
610  : myEffect(0)
611  , myCameraPos(0, 0, 0)
612  {
613  //intentional nop
614  }
615 
617  osg::Vec3 myCameraPos;
618  };
619 
621 
622  osg::Matrixd myBasisRot;
623  osg::Vec3d myBasisPos;
624  osg::Vec3d myLastBasisPos;
626 
632  unsigned int myRandomSeed;
633  osg::Vec3 myScroll;
634  float myRadius;
640  float myWindMin;
641  float myWindMax;
643  osg::Vec3 myVelocity;
647  float myIntensity;
653  osg::Vec3 myBaseColor;
656  float myStreak;
660  float myScaleAnimMinX; // particle width axis shrink/grow
662  float myScaleAnimMinY; // particle height axis shrink/grow
685  osg::Vec3 myGravity;
690 
691  int myWindBlownSpawnCount; // for surface hit wind blown particles
696 
699 
700  Particle* myParticlesMemoryPool; // the array of all particles
701  int myParticleMemoryPoolCount; // the maximum number of particles
702 
703  Particle* myParticlesFree; // the head of the free particle list
704  Particle* myParticlesActive; // the head of the active particle list
705  int myParticleActiveCount; // current active amount of particles
706 
707  Particle** myRenderList; // particle render list array
708  int myRenderParticleCount; // number of particles active in the render list array
709 
712 
715 
717  };
718 
719 
722  {
723  public:
726 
728  virtual ~DtWeatherEffectCreator();
729 
730  private:
732  DtWeatherEffectCreator() = delete;
734  DtWeatherEffectCreator(const DtWeatherEffectCreator& other) = delete;
736  DtWeatherEffectCreator &operator=(const DtWeatherEffectCreator& other) = delete;
737 
738  public:
747  virtual DtWeatherEffect* create(int particleCount, float particleSize, float radius,
748  DtWeatherEffect::EffectType type, unsigned int randomSeed = 0) const;
749 
752  static DtWeatherEffectCreator& instance(DtDe& de);
753 
755  static const std::string& theClassName();
756 
757  protected:
759  };
760 }
761 
762 
763 
764 
float myTexCoordAnimScale1
Definition: DtWeatherEffect.h:672
float myLifeTimeInit
Definition: DtWeatherEffect.h:445
osg::ref_ptr< osg::BlendFunc > myBlendFunc
Definition: DtWeatherEffect.h:655
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
float myWindLiftMultiplier
Definition: DtWeatherEffect.h:638
float mySurfaceBoundsX
Definition: DtWeatherEffect.h:96
osg::Vec3d myBasisPos
Definition: DtWeatherEffect.h:623
A structure used to define a mesh group (voa, positions, coords).
Definition: DtWeatherEffect.h:399
float mySurfaceHitMaxSlope
Definition: DtWeatherEffect.h:630
float myWindMax
Definition: DtWeatherEffect.h:641
BlendData myFadeByIntensity
Definition: DtWeatherEffect.h:648
float myBlendMax
Definition: DtWeatherEffect.h:468
float myBlendMin
Definition: DtWeatherEffect.h:467
Virtual base class.
Definition: DtVirtualBaseClass.h:19
bool myAdditiveBlend
Definition: DtWeatherEffect.h:89
osg::Vec3 myGravity
Definition: DtWeatherEffect.h:685
float mySurfaceAltitude
Definition: DtWeatherEffect.h:99
Particle ** myRenderList
Definition: DtWeatherEffect.h:707
Implementation independent random number generator.
Definition: DtRandomNumberGenerator.h:20
osg::Vec3 myCameraPos
Definition: DtWeatherEffect.h:617
float myTexCoordAnimDirOffsetU
Definition: DtWeatherEffect.h:673
GLint mySurfaceProjUnfmLoc
Definition: DtWeatherEffect.h:88
GLint mySurfaceUnfmLoc
Definition: DtWeatherEffect.h:87
osg::Vec3d myCamMove
Definition: DtWeatherEffect.h:81
float myTexturePatternMix1
Definition: DtWeatherEffect.h:676
float myTexCoordAnimDirOffsetV
Definition: DtWeatherEffect.h:674
bool myOrientFlat
Definition: DtWeatherEffect.h:684
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Definition: DtWeatherEffect.h:127
bool myBasisDirty
Definition: DtWeatherEffect.h:625
SimulationUpdateJobData()
Definition: DtWeatherEffect.h:593
unsigned int myVboTexCoords0Array
Definition: DtWeatherEffect.h:417
Definition: DtWeatherEffect.h:126
bool mySortEnable
Definition: DtWeatherEffect.h:682
SortJobData()
Definition: DtWeatherEffect.h:609
A structure to hold data for a sorting job.
Definition: DtWeatherEffect.h:607
osg::ref_ptr< osg::Vec4Array > myMove
Definition: DtWeatherEffect.h:412
unsigned int GLuint
Definition: DtGlTextureBufferObject.h:17
DrawData()
Definition: DtWeatherEffect.h:50
int mySurfaceHeightCount
Definition: DtWeatherEffect.h:95
float myWindBlownMinTime
Definition: DtWeatherEffect.h:694
float myTimeStep
Definition: DtWeatherEffect.h:602
this class is used to split work up between threads.
Definition: DtJobSplitter.h:64
float myRadiusFadeInFalloff
Definition: DtWeatherEffect.h:687
float myDepthProximityStart
Definition: DtWeatherEffect.h:679
Particle()
Definition: DtWeatherEffect.h:423
osg::Vec3d myCamPos
Definition: DtWeatherEffect.h:80
bool myAppliedHeightMap
Definition: DtWeatherEffect.h:91
bool myCameraStreak
Definition: DtWeatherEffect.h:659
SurfaceHitType mySurfaceHitType
Definition: DtWeatherEffect.h:628
GLint myParametersUnfmLoc
Definition: DtWeatherEffect.h:84
bool myIsGeoCentric
Definition: DtWeatherEffect.h:82
DtWeatherEffect * myEffect
Definition: DtWeatherEffect.h:616
unsigned int myVboMoveArray
Definition: DtWeatherEffect.h:416
float myTextureAtlasRow
Definition: DtWeatherEffect.h:668
BlendData myParticlesByIntensity
Definition: DtWeatherEffect.h:651
osg::Vec3 myVelocity
Definition: DtWeatherEffect.h:443
float myTextureAtlasRows
Definition: DtWeatherEffect.h:666
unsigned char myUsePhysics
Definition: DtWeatherEffect.h:446
bool myAdditiveBlend
Definition: DtWeatherEffect.h:654
float mySurfaceHitOffset
Definition: DtWeatherEffect.h:629
float myScaleAnimMaxX
Definition: DtWeatherEffect.h:661
float myTextureAtlasCols
Definition: DtWeatherEffect.h:665
DtRandomNumberGenerator myRandomNumberGen
Definition: DtWeatherEffect.h:716
unsigned int myRandomSeed
Definition: DtWeatherEffect.h:632
float myWindBlownMaxSpeed
Definition: DtWeatherEffect.h:693
float myTexturePatternMix0
Definition: DtWeatherEffect.h:675
creator for DtWeatherEffect
Definition: DtWeatherEffect.h:721
A structure used to hold data for drawing.
Definition: DtWeatherEffect.h:48
osg::Vec3d myLastBasisPos
Definition: DtWeatherEffect.h:624
osg::Matrixf mySurfaceMatrix
Definition: DtWeatherEffect.h:100
float myWindBlownMinSpeed
Definition: DtWeatherEffect.h:692
float myElevationRange
Definition: DtWeatherEffect.h:102
float myInitRotationRad
Definition: DtWeatherEffect.h:644
Contains makVrv::DtVirtualBaseClass class.
A drawable for drawing weather effects such as hail.
Definition: DtWeatherEffectDrawable.h:36
Contains makVrv::DtRandomNumberGenerator class.
BlendData()
Definition: DtWeatherEffect.h:456
bool myStateDirty
Definition: DtWeatherEffect.h:90
osg::ref_ptr< osg::Vec4Array > myPoints
Definition: DtWeatherEffect.h:411
float myIntensity
Definition: DtWeatherEffect.h:647
float myTexCoordAnimDirSpeedV
Definition: DtWeatherEffect.h:670
osg::Vec3 myScroll
Definition: DtWeatherEffect.h:633
int myRenderParticleCount
Definition: DtWeatherEffect.h:708
SortJobData mySortJobData
Definition: DtWeatherEffect.h:713
Contains makVrv::DtJobSplitter class.
float myWindSpeedMultiplier
Definition: DtWeatherEffect.h:637
float myValueMax
Definition: DtWeatherEffect.h:466
DtJobSplitterJob mySimulationUpdateJob
Definition: DtWeatherEffect.h:711
float myNearClip
Definition: DtWeatherEffect.h:83
this class is used to create weather effects around the eye to represent effects such as mist...
Definition: DtWeatherEffect.h:43
float myWindTurbulence
Definition: DtWeatherEffect.h:639
float myScaleAnimMaxY
Definition: DtWeatherEffect.h:663
float mySurfaceHitTimer
Definition: DtWeatherEffect.h:631
int myParticleActiveCount
Definition: DtWeatherEffect.h:705
EffectType
An enumeration to define the effect type.
Definition: DtWeatherEffect.h:110
float mySortDepth
Definition: DtWeatherEffect.h:440
const unsigned int * mySurfaceHeights
Definition: DtWeatherEffect.h:94
A structure to hold blending control data for things like particle amount per intensity.
Definition: DtWeatherEffect.h:454
float mySurfaceBoundsY
Definition: DtWeatherEffect.h:97
float myDepthProximityRange
Definition: DtWeatherEffect.h:680
float myDepthSoftness
Definition: DtWeatherEffect.h:677
float myRotationVelocity
Definition: DtWeatherEffect.h:645
int myWindBlownSpawnCount
Definition: DtWeatherEffect.h:691
float myDragCoefficient
Definition: DtWeatherEffect.h:642
osg::Vec3 myVelocity
Definition: DtWeatherEffect.h:643
float myWindDirectionRad
Definition: DtWeatherEffect.h:635
A structure used to define a simulation particle.
Definition: DtWeatherEffect.h:421
osg::ref_ptr< osg::Vec2Array > myTexCoords0
Definition: DtWeatherEffect.h:413
float myTextureAtlasCol
Definition: DtWeatherEffect.h:667
osg::Vec3 myBaseColor
Definition: DtWeatherEffect.h:653
float myEffectFade
Definition: DtWeatherEffect.h:646
Particle * myParent
Definition: DtWeatherEffect.h:438
float myRadiusFadeOutStart
Definition: DtWeatherEffect.h:688
double myCurrentTime
Definition: DtWeatherEffect.h:603
BlendData myTexCoordAnimSpeedByWind
Definition: DtWeatherEffect.h:650
GLint myDepthProxyUnfmLoc
Definition: DtWeatherEffect.h:86
DtGlVaoManager * myVaoManager
Definition: DtWeatherEffect.h:698
bool myClampToSurface
Definition: DtWeatherEffect.h:683
GLint mySoftnessUnfmLoc
Definition: DtWeatherEffect.h:85
Particle * myParticlesActive
Definition: DtWeatherEffect.h:704
osg::Vec4 myMove
Definition: DtWeatherEffect.h:442
DtDe & myDe
Definition: DtWeatherEffect.h:758
float myScaleSpeed
Definition: DtWeatherEffect.h:664
float myRadiusFadeOutFalloff
Definition: DtWeatherEffect.h:689
float myWindMin
Definition: DtWeatherEffect.h:640
osg::RenderInfo * myRenderInfo
Definition: DtWeatherEffect.h:78
float myWindSpeedMps
Definition: DtWeatherEffect.h:636
A structure to hold data for a simluation update job.
Definition: DtWeatherEffect.h:591
SimulationUpdateJobData mySimulationUpdateJobData
Definition: DtWeatherEffect.h:710
A generic structure to hold data for a job for use with DtJobSplitter.
Definition: DtJobSplitter.h:26
MeshGroup * myMeshGroup
Definition: DtWeatherEffect.h:697
float myScaleAnimMinX
Definition: DtWeatherEffect.h:660
float myStreakAdjustment
Definition: DtWeatherEffect.h:657
float mySurfaceCornerRadius
Definition: DtWeatherEffect.h:98
DtDe & myDe
Definition: DtWeatherEffect.h:620
float myDepthProximityMix
Definition: DtWeatherEffect.h:678
bool myStreakAdjustmentEnable
Definition: DtWeatherEffect.h:658
This class is used to manage an opengl vertex array object (VAO) dealing with multiple opengl context...
Definition: DtGlVaoManager.h:49
float myTexCoordAnimDirSpeedU
Definition: DtWeatherEffect.h:669
float myLifeTime
Definition: DtWeatherEffect.h:444
float myDepthProximityInvRange
Definition: DtWeatherEffect.h:681
float myTexCoordAnimScale0
Definition: DtWeatherEffect.h:671
float myRadius
Definition: DtWeatherEffect.h:634
Contains DLL export macros.
unsigned int myVboPositionArray
Definition: DtWeatherEffect.h:415
EffectType myEffectType
Definition: DtWeatherEffect.h:627
Particle * myParticlesMemoryPool
Definition: DtWeatherEffect.h:700
float myScaleAnimMinY
Definition: DtWeatherEffect.h:662
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
osg::Vec4 myPosition
Definition: DtWeatherEffect.h:441
float myRadiusFadeInStart
Definition: DtWeatherEffect.h:686
float myParticleSize
Definition: DtWeatherEffect.h:652
SurfaceHitType
An enumeration to define a surface hit effect.
Definition: DtWeatherEffect.h:123
float myValueMin
Definition: DtWeatherEffect.h:465
voidpf uLong offset
Definition: ioapi.h:42
BlendData myFadeByWind
Definition: DtWeatherEffect.h:649
Contains the DtGlVaoManager class declaration.
DtJobSplitterJob mySortJob
Definition: DtWeatherEffect.h:714
DtWeatherEffectsObject * myWeatherEffectsObject
Definition: DtWeatherEffect.h:79
float myElevationMin
Definition: DtWeatherEffect.h:101
unsigned char myFadeCurve
Definition: DtWeatherEffect.h:447
DtWeatherEffect * myEffect
Definition: DtWeatherEffect.h:601
int myParticleMemoryPoolCount
Definition: DtWeatherEffect.h:701
float myWindBlownMaxTime
Definition: DtWeatherEffect.h:695
std::vector< DtWeatherArea * > myWeatherAreas
Definition: DtWeatherEffect.h:93
MeshGroup()
Definition: DtWeatherEffect.h:401
const DtWeatherEffectDrawable * myDrawable
Definition: DtWeatherEffect.h:92
Particle * myParticlesFree
Definition: DtWeatherEffect.h:703
float myStreak
Definition: DtWeatherEffect.h:656
The weather effects object for passing settings from the master to the slave for weather effects...
Definition: DtWeatherEffectsObject.h:27
osg::Matrixd myBasisRot
Definition: DtWeatherEffect.h:622
Particle * myChild
Definition: DtWeatherEffect.h:439

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)