VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtWeatherAreaGroup.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
14 #include <osg/Camera>
15 #include <osg/Group>
16 
22 #include <vrvOsg/DtWeatherLayer.h>
25 
27 
28 #include <vrvCore/DtCloudLayer.h>
30 
31 #include <matrix/vlVector.h>
32 
33 
34 namespace makVrv
35 {
36  // Forward declarations.
37  class DtJobSplitter;
38  class DtWeatherArea;
39  class DtWeatherFogFroxelGrid;
40 
41 
72  class DT_DLL_VRVOSG DtWeatherAreaGroup : public osg::Group
73  {
74  public:
75 
78  {
79  SensorMaterialTypeNone = 0,
85  SensorMaterialTypeCount
86  };
87 
90  {
91  DrawItemTypeNone = 0,
96  };
97 
100 
102  DtWeatherAreaGroup(const DtWeatherAreaGroup& orig, const osg::CopyOp& opr);
103 
105  virtual ~DtWeatherAreaGroup();
106 
108  DtWeatherAreaGroup() = delete;
109 
111  DtWeatherAreaGroup(const DtWeatherAreaGroup &other) = delete;
112 
114  DtWeatherAreaGroup &operator=(const DtWeatherAreaGroup &other) = delete;
115 
116  public:
117 
119  virtual void init();
120 
122  virtual void releaseGLObjects(osg::State* state = 0) const override;
123 
125  virtual osg::Object* clone(const osg::CopyOp& copyop) const { return new DtWeatherAreaGroup(*this, copyop); }
126  virtual osg::Object* cloneType() const { return NULL; }
127 
129  virtual void deleteGeode();
130 
131  // !\brief Gets the sensor node associated with the given material type
132  // !\param matType The material type enumeration.
133  virtual osg::Node* getOrCreateSensorNode(SensorMaterialType matType);
134 
136  virtual void removeCloudLayer(DtCloudLayerId layerId);
137 
140  virtual bool removeHeightFog(DtUniqueID uniqueId);
141 
143  virtual void removeCloudLayers();
144 
146  virtual void addGroundFog(DtCloudLayerId layerId, const DtVector& position,
147  float orientation, float cornerRadius, const DtVector& bounds,
148  double density, bool infinite, bool relative, bool altitudeIsHAT);
149 
152  virtual DtUniqueID addHeightFog(const DtVector& position, float orientation,
153  float cornerRadius, const DtVector& bounds, double density, bool relative);
154 
156  virtual void addPatchyGroundFog(DtCloudLayerId layerId,
157  const DtVector& position, float orientation, float cornerRadius,
158  const DtVector& bounds, double density, bool relative);
159 
161  virtual void addSandstorm(DtCloudLayerId layerId, const DtVector& position,
162  float orientation, float cornerRadius, const DtVector& bounds,
163  double density, bool infinite, bool relative, bool altitudeIsHAT);
164 
166  virtual void addBlowingDustArea(DtCloudLayerId layerId,
167  const DtVector& position, float orientation, float cornerRadius,
168  const DtVector& bounds, bool relative);
169 
171  virtual void addBlowingSandArea(DtCloudLayerId layerId,
172  const DtVector& position, float orientation, float cornerRadius,
173  const DtVector& bounds, bool relative);
174 
176  virtual void addBlowingSnowArea(DtCloudLayerId layerId,
177  const DtVector& position, float orientation, float cornerRadius,
178  const DtVector& bounds, bool relative);
179 
187  virtual DtUniqueID addPrecipitationShaft(osg::Vec3d& position,
188  const osg::Matrixd& rotation, const DtVector& bounds,
189  const float cornerRadius, const float intensity);
190 
193  virtual void removePrecipitationShaft(DtUniqueID uniqueId);
194 
199  virtual void setWeatherPrecipitationShaftBounds(DtUniqueID uniqueId,
200  const DtVector& bounds, const float cornerRadius);
201 
206  virtual void setWeatherPrecipitationShaftTransform(DtUniqueID uniqueId,
207  const osg::Vec3d& position, const osg::Matrixd& rotation);
208 
212  virtual void setWeatherPrecipitationShaftIntensity(DtUniqueID uniqueId,
213  const float intensity);
214 
218  virtual void setWeatherPrecipitationShaftBaseColor(DtUniqueID uniqueId,
219  const DtVector& color);
220 
225  virtual void setWeatherPrecipitationShaftWind(DtUniqueID uniqueId,
226  const float windDirectionRad, const float windSpeedMps);
227 
231  virtual void setWeatherPrecipitationShaftEnabled(DtUniqueID uniqueId, bool enabled);
232 
240  virtual DtUniqueID addLightning(osg::Vec3d& position,
241  const osg::Matrixd& rotation, const DtVector& bounds,
242  const float cornerRadius, const float intensity);
243 
246  virtual void removeLightning(DtUniqueID uniqueId);
247 
252  virtual void setWeatherLightningBounds(DtUniqueID uniqueId,
253  const DtVector& bounds, const float cornerRadius);
254 
259  virtual void setWeatherLightningTransform(DtUniqueID uniqueId,
260  const osg::Vec3d& position, const osg::Matrixd& rotation);
261 
265  virtual void setWeatherLightningIntensity(DtUniqueID uniqueId,
266  const float intensity);
267 
271  virtual void setWeatherLightningEnabled(DtUniqueID uniqueId, bool enabled);
272 
276  virtual void setCloudLayerDensity(DtCloudLayerId layerId, float density);
277 
281  virtual void setHeightFogDensity(DtUniqueID uniqueId, float density);
282 
286  virtual void setCloudLayerEnabled(DtCloudLayerId layerId, bool enabled);
287 
291  virtual void setHeightFogEnabled(DtUniqueID uniqueId, bool enabled);
292 
294  virtual void setCloudLayerPositionAndOrientation(DtCloudLayerId layerId,
295  const DtVector& position, float orientation);
296 
298  virtual void setHeightFogPositionAndOrientation(DtUniqueID uniqueId,
299  const DtVector& position, float orientation, bool relative);
300 
306  virtual void setCloudLayerBaseColor(DtCloudLayerId layerId,
307  float red, float green, float blue);
308 
314  virtual void setHeightFogBaseColor(DtUniqueID uniqueId,
315  float red, float green, float blue);
316 
321  virtual void setHeightFogBounds(DtUniqueID uniqueId,
322  const DtVector& bounds, const float cornerRadius);
323 
327  virtual void setCloudLayerParticleSizeVariation(DtCloudLayerId layerId,
328  float variation);
329 
333  virtual void setCloudLayerPatternedLook(DtCloudLayerId layerId,
334  bool patternedEnable);
335 
340  virtual void setCloudLayerWind(DtCloudLayerId layerId,
341  float windDirectionRad, float windSpeedMps);
342 
346  virtual void setGlobalWind(float windDirectionRad, float windSpeedMps);
347 
349  virtual void drawObjects(osg::RenderInfo& renderInfo,
350  const DtWeatherAreaDrawable& drawable);
351 
355  virtual void gatherWeatherAreas(const osg::Vec3d& position,
356  std::vector<DtWeatherArea*>& areas);
357 
363  virtual bool computeLocalPrecipitation(const DtVector& location,
364  int& precipType, float& intensity);
365 
371  virtual bool computeLocalGroundRainAccumulation(const DtVector& location,
372  float& depth, float& blend);
373 
375  virtual bool shouldActivateRaindrops() const;
376 
382  virtual bool bindFogFroxelTexture(const int unit, const unsigned int renderContextId);
383 
385  virtual float fogFroxelMaxDistance() const;
386 
387  protected:
388 
391  struct DrawItem
392  {
394  : mySortDistance(0)
395  , mySortPriority(0)
396  , myItemType(DrawItemTypeNone)
397  , myItem(0)
398  {
399  // intentional noop
400  }
401 
402  int mySortDistance; // squared distance from camera
403  int mySortPriority; // lower number draws first
405  void* myItem;
406  };
407 
410  {
411  public:
412  bool operator()(const DtWeatherAreaGroup::DrawItem& lhs,
413  const DtWeatherAreaGroup::DrawItem& rhs);
414  };
415 
418  {
420  : myUniqueId(-1)
421  , myEnabled(true)
422  , myBasisPos(0,0,0)
423  , myCameraBasisDirty(false)
424  , myPosition(0,0,0)
425  , myAltitude(0)
426  , myDensity(0.001f)
427  , myAltitudeBlend(0)
428  , myDensityBlend(0)
429  , myCornerRadius(1)
430  , myBounds(1,1,1)
431  , myBaseColor(1,1,1)
432  {
433  //intentional nop
434  }
435 
437  bool myEnabled;
438  osg::Vec3d myPosition;
439  osg::Vec3d myBasisPos;
440  osg::Matrixd myBasisRot;
441  bool myCameraBasisDirty; // true when transform was set relative to camera
442  float myAltitude;
443  float myDensity;
447  DtVector myBounds; // x = length, y = width, z = thickness
448  osg::Vec3 myBaseColor;
449  };
450 
453  {
459  };
460 
464  {
465  GroundFogPatchState() : myPatternTextureWidth(1.0f)
466  {
467  // intentional noop
468  }
469 
473  };
474 
477  {
480  };
481 
485  {
488  };
489 
492  {
494  };
495 
497  virtual void initGroundFogPatchState();
498 
500  virtual void initSandstormState();
501 
503  virtual void initGroundFogEffectState();
504 
506  virtual void initPrecipitationShaftState();
507 
509  virtual void initLightningState();
510 
512  virtual void loadShaders();
513 
515  virtual void loadGroundFogPatchShaders();
516 
518  virtual void loadSandstormShaders();
519 
521  virtual void loadGroundFogEffectShaders();
522 
524  virtual void loadPrecipitationShaftShaders();
525 
527  virtual void loadLightningShaders();
528 
530  virtual void clearDrawBins();
531 
533  void flushDrawBin(osg::RenderInfo& renderInfo,
534  const DtWeatherAreaDrawable& drawable, std::vector<DrawItem>& drawBin);
535 
537  virtual void drawGroundFogPatchArea(DtGroundFogPatchArea::DrawData& drawData,
538  DtGroundFogPatchArea* area, const bool stateDirty);
539 
541  virtual void drawGroundFogEffect(DtGroundFogEffect::DrawData& drawData,
542  DtGroundFogPatchArea* area, const bool stateDirty);
543 
545  virtual void drawPrecipitationShaft(
547  DtWeatherPrecipitationShaft* shaft, const bool stateDirty);
548 
550  virtual void drawLightning(DtWeatherLightning::DrawData& drawData,
551  DtWeatherLightning* lightning, const bool stateDirty);
552 
556  virtual void applyState(DtGroundFogPatchArea::DrawData& drawData,
557  GroundFogPatchState& mutableState) const;
558 
560  virtual void applyState(DtGroundFogEffect::DrawData& drawData) const;
561 
563  virtual void applyState(DtWeatherPrecipitationShaft::DrawData& drawData) const;
564 
566  virtual void applyState(DtWeatherLightning::DrawData& drawData) const;
567 
569  virtual void initSoftnessUniforms(osg::StateSet& ss,
570  SoftnessUniforms& softnessUniforms);
571 
575  virtual void setupSoftness(osg::Camera* camera,
576  SoftnessUniforms& softnessUniforms) const;
577 
579  void connectSignals();
580 
582  virtual void slot_reloadShaders();
583 
585  virtual void slot_simulationUpdate();
586 
588  virtual void slot_weatherAreaObjectAdded(DtUniqueID id, DtWeatherAreaObject*);
589 
591  virtual void slot_weatherAreaObjectToBeRemoved(DtUniqueID id, DtWeatherAreaObject*);
592 
594  virtual void slot_weatherAreaObjectTransformChanged(DtUniqueID id,
595  const DtVector& position, const float orientation);
596 
598  virtual void slot_weatherAreaObjectBoundsChanged(DtUniqueID id,
599  const DtVector& bounds, const float cornerRadius);
600 
602  virtual void slot_weatherAreaObjectPrecipitationIntensityChanged(
603  DtUniqueID id, const float intensity);
604 
606  virtual void slot_weatherAreaObjectPrecipitationTypeChanged(
607  DtUniqueID id, const unsigned int type);
608 
610  virtual void slot_weatherAreaObjectGroundRainAccumulationChanged(
611  DtUniqueID id, const float depth);
612 
614  virtual void slot_weatherAreaObjectFogColorChanged(DtUniqueID id,
615  const DtVector& color);
616 
618  virtual void slot_weatherAreaObjectVisibilityDistanceChanged(
619  DtUniqueID id, const float distance);
620 
622  virtual void slot_weatherAreaObjectOvercastChanged(DtUniqueID id,
623  const float distance);
624 
626  virtual void slot_weatherAreaObjectLightningEnabledChanged(
627  DtUniqueID id, const bool enabled);
628 
630  virtual void slot_weatherAreaObjectWindChanged(
631  DtUniqueID id, const float direction, const float speed);
632 
634  virtual void slot_weatherAreaObjectCloudLayerAdded(
635  DtUniqueID id, DtCloudLayerId layerId, int cloudType);
636 
638  virtual void slot_weatherAreaObjectCloudLayerRemoved(
639  DtUniqueID id, DtCloudLayerId layerId);
640 
642  virtual void traverse(osg::NodeVisitor& nv);
643 
645  virtual void disableHeightFog();
646 
649  virtual void cullUpdate(osg::Camera* cam);
650 
653  virtual void cullUpdateHeightFog(osg::Camera* cam);
654 
658  virtual void computeBasis(const osg::Vec3d& inGeocentricPos, osg::Matrixd& rotOut);
659 
661  virtual void releaseGroundFogPatchGLObjects(osg::State* state) const;
662 
664  virtual void releaseGroundFogEffectGLObjects(osg::State* state) const;
665 
667  virtual void releaseWeatherPrecipitationShaftGLObjects(osg::State* state) const;
668 
670  virtual void releaseWeatherLightningGLObjects(osg::State* state) const;
671 
672  protected:
673 
675 
678 
679  osg::ref_ptr<osg::Node> mySensorNodes[SensorMaterialTypeCount];
680 
684 
688 
692 
698 
699  std::vector<DrawItem> myPreSortBin;
700  std::vector<DrawItem> mySortBinPreClouds;
701  std::vector<DrawItem> mySortBinPostClouds;
702  std::vector<DrawItem> mySortBinTransparent;
703 
704  // Needs to be mutable because it's used during draw implementation.
710 
711  typedef std::map< DtUniqueID, HeightFogItem > DtHeightFogMap;
713 
714  typedef std::map< DtCloudLayerId, DtUniqueID > DtCloudLayerIdToUniqueIdMap;
716 
717  std::vector<osg::Vec4d> myCullingPlanes;
718 
719  double myLastTime;
720  float myTimeStep;
721 
723 
725 
727 
728  private:
729 
732  osg::Node* getChildNodeByName(osg::Group* parent, const char* name);
733 
735  typedef std::map< DtCloudLayerId, DtGroundFogPatchArea* > DtGroundFogPatchAreaMap;
737 
739  typedef std::map< DtCloudLayerId, DtWeatherArea* > DtWeatherAreaMap;
741 
743  typedef std::map< DtUniqueID, DtWeatherArea* > DtWeatherAreaObjectMap;
745 
747  typedef std::map< DtUniqueID, DtWeatherPrecipitationShaft* > DtWeatherPrecipitationShaftMap;
749 
751  typedef std::map< DtUniqueID, DtWeatherLightning* > DtWeatherLightningMap;
753  };
754 
755 
756 
759  {
760 
761  public:
764 
766  virtual ~DtWeatherAreaGroupCreator();
767 
770 
772  DtWeatherAreaGroupCreator &operator=(const DtWeatherAreaGroupCreator &other) = delete;
773 
775  static DtWeatherAreaGroupCreator& instance(DtDe& theIG);
776 
778  static void registerInstance(DtDe& theIG, DtWeatherAreaGroupCreator* anInstance);
779 
781  virtual DtWeatherAreaGroup* create(DtDe&);
782  };
783 }
784 
785 
osg::Vec3 myBaseColor
Definition: DtWeatherAreaGroup.h:448
std::vector< DrawItem > myPreSortBin
Definition: DtWeatherAreaGroup.h:699
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
DtUniqueID myUniqueId
Definition: DtWeatherAreaGroup.h:436
osg::ref_ptr< makVrv::DtWeatherAreaDrawable > mySortTransparentDrawable
Definition: DtWeatherAreaGroup.h:691
DtDe & myDe
Definition: DtWeatherAreaGroup.h:674
Contains DtWeatherAreaObjectManager class.
Contains makVrv::DtWeatherLayer class.
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::map< DtCloudLayerId, DtUniqueID > DtCloudLayerIdToUniqueIdMap
Definition: DtWeatherAreaGroup.h:714
A structure used to hold data for drawing.
Definition: DtGroundFogEffect.h:41
HeightFogItem()
Definition: DtWeatherAreaGroup.h:419
The weather area object represents a set localized environmental conditions such as local rain and fo...
Definition: DtWeatherAreaObject.h:33
std::map< DtUniqueID, DtWeatherArea * > DtWeatherAreaObjectMap
This is mutable because it&#39;s used as part of the const drawImplementation.
Definition: DtWeatherAreaGroup.h:743
osg::ref_ptr< osg::Uniform > myViewMatrixInvUniform
Definition: DtWeatherAreaGroup.h:487
osg::Vec3d myPosition
Definition: DtWeatherAreaGroup.h:438
DtSignalConnectionManager myConnections
Definition: DtWeatherAreaGroup.h:724
DtHeightFogMap myHeightFogMap
Definition: DtWeatherAreaGroup.h:712
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
osg::ref_ptr< osg::Group > mySortPreCloudsGroupNode
Definition: DtWeatherAreaGroup.h:681
double myLastTime
Definition: DtWeatherAreaGroup.h:719
DtWeatherPrecipitationShaftMap myMutableWeatherPrecipitationShaftMap
Definition: DtWeatherAreaGroup.h:748
A structure to hold depth softness uniforms for shaders.
Definition: DtWeatherAreaGroup.h:452
osg::Vec3d myBasisPos
Definition: DtWeatherAreaGroup.h:439
osg::ref_ptr< osg::Uniform > myInvPersMatrixUniform
Definition: DtWeatherAreaGroup.h:454
Creator that is used to create the weather area group.
Definition: DtWeatherAreaGroup.h:758
float myAltitudeBlend
Definition: DtWeatherAreaGroup.h:444
GroundFogPatchState myMutableGroundFogPatchState
Definition: DtWeatherAreaGroup.h:705
osg::ref_ptr< osg::Group > myGroundFogPatchSensorGroup
Definition: DtWeatherAreaGroup.h:693
bool myCameraBasisDirty
Definition: DtWeatherAreaGroup.h:441
A structure to hold draw state information for ground fog effect shaders.
Definition: DtWeatherAreaGroup.h:476
PrecipitationShaftState myMutablePrecipitationShaftState
Definition: DtWeatherAreaGroup.h:708
Contains makVrv::DtGroundFogPatchArea class.
Definition: DtWeatherAreaGroup.h:95
DtWeatherFogFroxelGrid * myWeatherFogFroxelGrid
Definition: DtWeatherAreaGroup.h:726
bool myEnabled
Definition: DtWeatherAreaGroup.h:437
osg::ref_ptr< osg::Uniform > mySoftnessUniform
Definition: DtWeatherAreaGroup.h:458
float myWindSpeedMps
Definition: DtWeatherAreaGroup.h:676
osg::ref_ptr< osg::Group > mySortTransparentGroupNode
Definition: DtWeatherAreaGroup.h:689
A structure used to hold data for drawing.
Definition: DtWeatherLightning.h:46
DtCloudLayerIdToUniqueIdMap myCloudLayerIdToUniqueIdMap
Definition: DtWeatherAreaGroup.h:715
this class is used to split work up between threads.
Definition: DtJobSplitter.h:64
DtGroundFogPatchAreaMap myMutableGroundFogPatchAreaMap
Definition: DtWeatherAreaGroup.h:736
A structure to hold data for a height fog object.
Definition: DtWeatherAreaGroup.h:417
This class simulates and renders a precipitation shaft area. The area volume is filled with a density...
Definition: DtWeatherPrecipitationShaft.h:39
A drawable used for drawing items related to weather areas. The class serves as a draw point entry an...
Definition: DtWeatherAreaDrawable.h:30
A group node which serves as a root for weather areas, patchy ground fog areas and effects...
Definition: DtWeatherAreaGroup.h:72
DtJobSplitter * myJobSplitter
Definition: DtWeatherAreaGroup.h:722
virtual osg::Object * clone(const osg::CopyOp &copyop) const
required functions for derriving from osg::Group
Definition: DtWeatherAreaGroup.h:125
osg::ref_ptr< makVrv::DtWeatherAreaDrawable > mySortPostCloudsDrawable
Definition: DtWeatherAreaGroup.h:687
GroundFogPatchState()
Definition: DtWeatherAreaGroup.h:465
osg::ref_ptr< osg::Uniform > myViewMatrixInvUniform
Definition: DtWeatherAreaGroup.h:479
DrawItem()
Definition: DtWeatherAreaGroup.h:393
SensorMaterialType
brief Sensor material type enumerations used for sensorfx.
Definition: DtWeatherAreaGroup.h:77
std::vector< DrawItem > mySortBinTransparent
Definition: DtWeatherAreaGroup.h:702
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:486
This class simulates and renders a lightning area. The area will randomly create lightning within a s...
Definition: DtWeatherLightning.h:39
A structure to hold draw state information for lightning shaders.
Definition: DtWeatherAreaGroup.h:491
osg::ref_ptr< osg::Group > myWeatherPrecipitationShaftSensorGroup
Definition: DtWeatherAreaGroup.h:696
Contains makVrv::DtOsgCullVisitor class.
std::map< DtCloudLayerId, DtWeatherArea * > DtWeatherAreaMap
This is mutable because it&#39;s used as part of the const drawImplementation.
Definition: DtWeatherAreaGroup.h:739
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:493
float myAltitude
Definition: DtWeatherAreaGroup.h:442
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
osg::ref_ptr< osg::Group > myWeatherLightningSensorGroup
Definition: DtWeatherAreaGroup.h:697
osg::ref_ptr< osg::Uniform > myPersMatrixUniform
Definition: DtWeatherAreaGroup.h:455
DrawItemType
brief Draw item type enumerations used for sorting bins.
Definition: DtWeatherAreaGroup.h:89
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:470
osg::ref_ptr< makVrv::DtWeatherAreaDrawable > mySortPreCloudsDrawable
Definition: DtWeatherAreaGroup.h:683
float myPatternTextureWidth
Definition: DtWeatherAreaGroup.h:472
float myDensity
Definition: DtWeatherAreaGroup.h:443
osg::ref_ptr< osg::Group > myGroundFogEffectSensorGroup
Definition: DtWeatherAreaGroup.h:695
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
osg::ref_ptr< osg::Group > mySortPostCloudsGroupNode
Definition: DtWeatherAreaGroup.h:685
std::vector< DrawItem > mySortBinPostClouds
Definition: DtWeatherAreaGroup.h:701
GroundFogPatchState myMutableSandstormState
Definition: DtWeatherAreaGroup.h:706
DtWeatherAreaObjectMap myMutableWeatherAreaObjectMap
Definition: DtWeatherAreaGroup.h:744
osg::ref_ptr< osg::Geode > mySortPreCloudsGeode
Definition: DtWeatherAreaGroup.h:682
int mySortDistance
Definition: DtWeatherAreaGroup.h:402
Contains vrvCore::DtCloudLayerRecord declaration.
osg::ref_ptr< osg::Uniform > myViewportUniform
Definition: DtWeatherAreaGroup.h:456
float myTimeStep
Definition: DtWeatherAreaGroup.h:720
DtWeatherFogFroxelGrid uses a frustum voxel grid to compute density/translucency at voxel locations b...
Definition: DtWeatherFogFroxelGrid.h:52
LightningState myMutableLightningState
Definition: DtWeatherAreaGroup.h:709
A structure used to hold data for drawing.
Definition: DtWeatherPrecipitationShaft.h:46
DtWeatherLightningMap myMutableWeatherLightningMap
Definition: DtWeatherAreaGroup.h:752
std::map< DtUniqueID, DtWeatherLightning * > DtWeatherLightningMap
This is mutable because it&#39;s used as part of the const drawImplementation.
Definition: DtWeatherAreaGroup.h:751
A structure to hold draw state information for precipitation shaft shaders.
Definition: DtWeatherAreaGroup.h:484
std::map< DtUniqueID, DtWeatherPrecipitationShaft * > DtWeatherPrecipitationShaftMap
This is mutable because it&#39;s used as part of the const drawImplementation.
Definition: DtWeatherAreaGroup.h:747
An area of ground fog patch items and effects. One ground fog patch area is associated with a non-inf...
Definition: DtGroundFogPatchArea.h:56
Functor for comparing draw items by sorting distance.
Definition: DtWeatherAreaGroup.h:409
std::map< DtUniqueID, HeightFogItem > DtHeightFogMap
Definition: DtWeatherAreaGroup.h:711
float myDensityBlend
Definition: DtWeatherAreaGroup.h:445
Base class to provide boost signal/slot management.
void * myItem
Definition: DtWeatherAreaGroup.h:405
float myCornerRadius
Definition: DtWeatherAreaGroup.h:446
osg::Matrixd myBasisRot
Definition: DtWeatherAreaGroup.h:440
Contains makVrv::DtWeatherAreaDrawable class.
osg::ref_ptr< osg::Group > mySandstormSensorGroup
Definition: DtWeatherAreaGroup.h:694
osg::ref_ptr< osg::Uniform > myIsReflectionUniform
Definition: DtWeatherAreaGroup.h:457
long long DtCloudLayerId
Definition: DtCloudLayer.h:26
Contains makVrv::DtGroundFogEffect class.
Contains DLL export macros.
std::map< DtCloudLayerId, DtGroundFogPatchArea * > DtGroundFogPatchAreaMap
This is mutable because it&#39;s used as part of the const drawImplementation.
Definition: DtWeatherAreaGroup.h:735
std::vector< osg::Vec4d > myCullingPlanes
Definition: DtWeatherAreaGroup.h:717
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
Contains the makVrv::DtOsgCullVisitorParameters class. Visual mode information is set into the camera...
std::vector< DrawItem > mySortBinPreClouds
Definition: DtWeatherAreaGroup.h:700
GroundFogEffectState myMutableGroundFogEffectState
Definition: DtWeatherAreaGroup.h:707
osg::ref_ptr< osg::Uniform > myViewMatrixInvUniform
Definition: DtWeatherAreaGroup.h:471
A structure to hold data for a draw item. A draw item is placed in a draw item sorting bin...
Definition: DtWeatherAreaGroup.h:391
A structure used to hold data for drawing.
Definition: DtGroundFogPatchArea.h:69
A structure to hold draw state information for ground fog patch (and sandstorm) shaders.
Definition: DtWeatherAreaGroup.h:463
DrawItemType myItemType
Definition: DtWeatherAreaGroup.h:404
osg::ref_ptr< osg::Geode > mySortPostCloudsGeode
Definition: DtWeatherAreaGroup.h:686
Contains makVrv::DtWeatherLightning class.
Contains makVrv::DtWeatherPrecipitationShaft class.
int mySortPriority
Definition: DtWeatherAreaGroup.h:403
osg::ref_ptr< osg::Geode > mySortTransparentGeode
Definition: DtWeatherAreaGroup.h:690
DtWeatherAreaMap myMutableWeatherAreaMap
Definition: DtWeatherAreaGroup.h:740
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:478
float myWindDirectionRad
Definition: DtWeatherAreaGroup.h:677
virtual osg::Object * cloneType() const
Definition: DtWeatherAreaGroup.h:126
DtVector myBounds
Definition: DtWeatherAreaGroup.h:447

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)