VR-Forces 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) 2024 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 
17 #include <vrvMath/DtCamera.h>
19 
25 #include <vrvOsg/DtWeatherLayer.h>
28 
30 
31 #include <vrvCore/DtCloudLayer.h>
33 
34 #include <matrix/vlVector.h>
35 
36 
37 namespace makVrv
38 {
39  // Forward declarations.
40  class DtJobSplitter;
41  class DtWeatherArea;
42  class DtWeatherFogFroxelGrid;
43 
44 
75  class DT_DLL_VRVOSG DtWeatherAreaGroup : public osg::Group
76  {
77  public:
78 
81  {
82  SensorMaterialTypeNone = 0,
88  SensorMaterialTypeCount
89  };
90 
93  {
94  DrawItemTypeNone = 0,
99  };
100 
103 
105  DtWeatherAreaGroup(const DtWeatherAreaGroup& orig, const osg::CopyOp& opr);
106 
108  virtual ~DtWeatherAreaGroup();
109 
111  DtWeatherAreaGroup() = delete;
112 
114  DtWeatherAreaGroup(const DtWeatherAreaGroup &other) = delete;
115 
117  DtWeatherAreaGroup &operator=(const DtWeatherAreaGroup &other) = delete;
118 
119  public:
120 
122  virtual void init();
123 
125  virtual void releaseGLObjects(osg::State* state = 0) const override;
126 
128  virtual osg::Object* clone(const osg::CopyOp& copyop) const { return new DtWeatherAreaGroup(*this, copyop); }
129  virtual osg::Object* cloneType() const { return NULL; }
130 
132  virtual void deleteGeode();
133 
134  // !\brief Gets the sensor node associated with the given material type
135  // !\param matType The material type enumeration.
136  virtual osg::Node* getOrCreateSensorNode(SensorMaterialType matType);
137 
139  virtual void removeCloudLayer(DtCloudLayerId layerId);
140 
143  virtual bool removeHeightFog(DtUniqueID uniqueId);
144 
146  virtual void removeCloudLayers();
147 
149  virtual void addGroundFog(DtCloudLayerId layerId, const DtVector& position,
150  float orientation, float cornerRadius, const DtVector& bounds,
151  double density, bool infinite, bool relative, bool altitudeIsHAT);
152 
155  virtual DtUniqueID addHeightFog(const DtVector& position, float orientation,
156  float cornerRadius, const DtVector& bounds, double density, bool relative);
157 
159  virtual void addPatchyGroundFog(DtCloudLayerId layerId,
160  const DtVector& position, float orientation, float cornerRadius,
161  const DtVector& bounds, double density, bool relative);
162 
164  virtual void addSandstorm(DtCloudLayerId layerId, const DtVector& position,
165  float orientation, float cornerRadius, const DtVector& bounds,
166  double density, bool infinite, bool relative, bool altitudeIsHAT);
167 
169  virtual void addBlowingDustArea(DtCloudLayerId layerId,
170  const DtVector& position, float orientation, float cornerRadius,
171  const DtVector& bounds, bool relative);
172 
174  virtual void addBlowingSandArea(DtCloudLayerId layerId,
175  const DtVector& position, float orientation, float cornerRadius,
176  const DtVector& bounds, bool relative);
177 
179  virtual void addBlowingSnowArea(DtCloudLayerId layerId,
180  const DtVector& position, float orientation, float cornerRadius,
181  const DtVector& bounds, bool relative);
182 
190  virtual DtUniqueID addPrecipitationShaft(osg::Vec3d& position,
191  const osg::Matrixd& rotation, const DtVector& bounds,
192  const float cornerRadius, const float intensity);
193 
196  virtual void removePrecipitationShaft(DtUniqueID uniqueId);
197 
202  virtual void setWeatherPrecipitationShaftBounds(DtUniqueID uniqueId,
203  const DtVector& bounds, const float cornerRadius);
204 
209  virtual void setWeatherPrecipitationShaftTransform(DtUniqueID uniqueId,
210  const osg::Vec3d& position, const osg::Matrixd& rotation);
211 
215  virtual void setWeatherPrecipitationShaftIntensity(DtUniqueID uniqueId,
216  const float intensity);
217 
221  virtual void setWeatherPrecipitationShaftBaseColor(DtUniqueID uniqueId,
222  const DtVector& color);
223 
228  virtual void setWeatherPrecipitationShaftWind(DtUniqueID uniqueId,
229  const float windDirectionRad, const float windSpeedMps);
230 
234  virtual void setWeatherPrecipitationShaftEnabled(DtUniqueID uniqueId, bool enabled);
235 
243  virtual DtUniqueID addLightning(osg::Vec3d& position,
244  const osg::Matrixd& rotation, const DtVector& bounds,
245  const float cornerRadius, const float intensity);
246 
249  virtual void removeLightning(DtUniqueID uniqueId);
250 
255  virtual void setWeatherLightningBounds(DtUniqueID uniqueId,
256  const DtVector& bounds, const float cornerRadius);
257 
262  virtual void setWeatherLightningTransform(DtUniqueID uniqueId,
263  const osg::Vec3d& position, const osg::Matrixd& rotation);
264 
268  virtual void setWeatherLightningIntensity(DtUniqueID uniqueId,
269  const float intensity);
270 
274  virtual void setWeatherLightningEnabled(DtUniqueID uniqueId, bool enabled);
275 
279  virtual void setCloudLayerDensity(DtCloudLayerId layerId, float density);
280 
284  virtual void setHeightFogDensity(DtUniqueID uniqueId, float density);
285 
289  virtual void setCloudLayerEnabled(DtCloudLayerId layerId, bool enabled);
290 
294  virtual void setHeightFogEnabled(DtUniqueID uniqueId, bool enabled);
295 
297  virtual void setCloudLayerPositionAndOrientation(DtCloudLayerId layerId,
298  const DtVector& position, float orientation);
299 
301  virtual void setHeightFogPositionAndOrientation(DtUniqueID uniqueId,
302  const DtVector& position, float orientation, bool relative);
303 
309  virtual void setCloudLayerBaseColor(DtCloudLayerId layerId,
310  float red, float green, float blue);
311 
317  virtual void setHeightFogBaseColor(DtUniqueID uniqueId,
318  float red, float green, float blue);
319 
324  virtual void setHeightFogBounds(DtUniqueID uniqueId,
325  const DtVector& bounds, const float cornerRadius);
326 
330  virtual void setCloudLayerParticleSizeVariation(DtCloudLayerId layerId,
331  float variation);
332 
336  virtual void setCloudLayerPatternedLook(DtCloudLayerId layerId,
337  bool patternedEnable);
338 
343  virtual void setCloudLayerWind(DtCloudLayerId layerId,
344  float windDirectionRad, float windSpeedMps);
345 
349  virtual void setGlobalWind(float windDirectionRad, float windSpeedMps);
350 
352  virtual void drawObjects(osg::RenderInfo& renderInfo,
353  const DtWeatherAreaDrawable& drawable);
354 
358  virtual void gatherWeatherAreas(const osg::Vec3d& position,
359  std::vector<DtWeatherArea*>& areas);
360 
366  virtual bool computeLocalPrecipitation(const DtVector& location,
367  int& precipType, float& intensity);
368 
374  virtual bool computeLocalGroundRainAccumulation(const DtVector& location,
375  float& depth, float& blend);
376 
378  virtual bool shouldActivateRaindrops() const;
379 
385  virtual bool bindFogFroxelTexture(const int unit, const unsigned int renderContextId);
386 
388  virtual float fogFroxelMaxDistance() const;
389 
390  protected:
391 
394  struct DrawItem
395  {
397  : mySortDistance(0)
398  , mySortPriority(0)
399  , myItemType(DrawItemTypeNone)
400  , myItem(0)
401  {
402  // intentional noop
403  }
404 
405  int mySortDistance; // squared distance from camera
406  int mySortPriority; // lower number draws first
408  void* myItem;
409  };
410 
413  {
414  public:
415  bool operator()(const DtWeatherAreaGroup::DrawItem& lhs,
416  const DtWeatherAreaGroup::DrawItem& rhs);
417  };
418 
421  {
423  : myUniqueId(-1)
424  , myEnabled(true)
425  , myBasisPos(0,0,0)
426  , myCameraBasisDirty(false)
427  , myPosition(0,0,0)
428  , myAltitude(0)
429  , myDensity(0.001f)
430  , myAltitudeBlend(0)
431  , myDensityBlend(0)
432  , myCornerRadius(1)
433  , myBounds(1,1,1)
434  , myBaseColor(1,1,1)
435  {
436  //intentional nop
437  }
438 
440  bool myEnabled;
441  osg::Vec3d myPosition;
442  osg::Vec3d myBasisPos;
443  osg::Matrixd myBasisRot;
444  bool myCameraBasisDirty; // true when transform was set relative to camera
445  float myAltitude;
446  float myDensity;
450  DtVector myBounds; // x = length, y = width, z = thickness
452  };
453 
456  {
462  };
463 
467  {
468  GroundFogPatchState() : myPatternTextureWidth(1.0f)
469  {
470  // intentional noop
471  }
472 
476  };
477 
480  {
483  };
484 
488  {
491  };
492 
495  {
497  };
498 
500  virtual void initGroundFogPatchState();
501 
503  virtual void initSandstormState();
504 
506  virtual void initGroundFogEffectState();
507 
509  virtual void initPrecipitationShaftState();
510 
512  virtual void initLightningState();
513 
515  virtual void loadShaders();
516 
518  virtual void loadGroundFogPatchShaders();
519 
521  virtual void loadSandstormShaders();
522 
524  virtual void loadGroundFogEffectShaders();
525 
527  virtual void loadPrecipitationShaftShaders();
528 
530  virtual void loadLightningShaders();
531 
533  virtual void clearDrawBins();
534 
536  virtual void updateImGui();
537 
539  virtual void debugAreaBounds();
540 
542  void flushDrawBin(osg::RenderInfo& renderInfo,
543  const DtWeatherAreaDrawable& drawable, std::vector<DrawItem>& drawBin);
544 
546  virtual void drawGroundFogPatchArea(DtGroundFogPatchArea::DrawData& drawData,
547  DtGroundFogPatchArea* area, const bool stateDirty);
548 
550  virtual void drawGroundFogEffect(DtGroundFogEffect::DrawData& drawData,
551  DtGroundFogPatchArea* area, const bool stateDirty);
552 
554  virtual void drawPrecipitationShaft(
556  DtWeatherPrecipitationShaft* shaft, const bool stateDirty);
557 
559  virtual void drawLightning(DtWeatherLightning::DrawData& drawData,
560  DtWeatherLightning* lightning, const bool stateDirty);
561 
565  virtual void applyState(DtGroundFogPatchArea::DrawData& drawData,
566  GroundFogPatchState& mutableState) const;
567 
569  virtual void applyState(DtGroundFogEffect::DrawData& drawData) const;
570 
572  virtual void applyState(DtWeatherPrecipitationShaft::DrawData& drawData) const;
573 
575  virtual void applyState(DtWeatherLightning::DrawData& drawData) const;
576 
578  virtual void initSoftnessUniforms(osg::StateSet& ss,
579  SoftnessUniforms& softnessUniforms);
580 
584  virtual void setupSoftness(osg::Camera* camera,
585  SoftnessUniforms& softnessUniforms) const;
586 
588  void connectSignals();
589 
591  virtual void slot_reloadShaders();
592 
594  virtual void slot_simulationUpdate();
595 
597  virtual void slot_weatherAreaObjectAdded(DtUniqueID id, DtWeatherAreaObject*);
598 
600  virtual void slot_weatherAreaObjectToBeRemoved(DtUniqueID id, DtWeatherAreaObject*);
601 
603  virtual void slot_weatherAreaObjectTransformChanged(DtUniqueID id,
604  const DtVector& position, const float orientation);
605 
607  virtual void slot_weatherAreaObjectBoundsChanged(DtUniqueID id,
608  const DtVector& bounds, const float cornerRadius);
609 
611  virtual void slot_weatherAreaObjectPrecipitationIntensityChanged(
612  DtUniqueID id, const float intensity);
613 
615  virtual void slot_weatherAreaObjectPrecipitationTypeChanged(
616  DtUniqueID id, const unsigned int type);
617 
619  virtual void slot_weatherAreaObjectGroundRainAccumulationChanged(
620  DtUniqueID id, const float depth);
621 
623  virtual void slot_weatherAreaObjectFogColorChanged(DtUniqueID id,
624  const DtVector& color);
625 
627  virtual void slot_weatherAreaObjectVisibilityDistanceChanged(
628  DtUniqueID id, const float distance);
629 
631  virtual void slot_weatherAreaObjectOvercastChanged(DtUniqueID id,
632  const float distance);
633 
635  virtual void slot_weatherAreaObjectLightningEnabledChanged(
636  DtUniqueID id, const bool enabled);
637 
639  virtual void slot_weatherAreaObjectWindChanged(
640  DtUniqueID id, const float direction, const float speed);
641 
643  virtual void slot_weatherAreaObjectCloudLayerAdded(
644  DtUniqueID id, DtCloudLayerId layerId, int cloudType);
645 
647  virtual void slot_weatherAreaObjectCloudLayerRemoved(
648  DtUniqueID id, DtCloudLayerId layerId);
649 
651  virtual void traverse(osg::NodeVisitor& nv);
652 
654  virtual void disableHeightFog();
655 
658  virtual void cullUpdate(osg::Camera* cam);
659 
662  virtual void cullUpdateHeightFog(osg::Camera* cam);
663 
667  virtual void computeBasis(const osg::Vec3d& inGeocentricPos, osg::Matrixd& rotOut);
668 
670  virtual void releaseGroundFogPatchGLObjects(osg::State* state) const;
671 
673  virtual void releaseGroundFogEffectGLObjects(osg::State* state) const;
674 
676  virtual void releaseWeatherPrecipitationShaftGLObjects(osg::State* state) const;
677 
679  virtual void releaseWeatherLightningGLObjects(osg::State* state) const;
680 
681  protected:
682 
684 
687 
688  osg::ref_ptr<osg::Node> mySensorNodes[SensorMaterialTypeCount];
689 
693 
697 
701 
707 
708  std::vector<DrawItem> myPreSortBin;
709  std::vector<DrawItem> mySortBinPreClouds;
710  std::vector<DrawItem> mySortBinPostClouds;
711  std::vector<DrawItem> mySortBinTransparent;
712 
713  // Needs to be mutable because it's used during draw implementation.
719 
720  typedef std::map< DtUniqueID, HeightFogItem > DtHeightFogMap;
722 
723  typedef std::map< DtCloudLayerId, DtUniqueID > DtCloudLayerIdToUniqueIdMap;
725 
727 
728  double myLastTime;
729  float myTimeStep;
730 
732 
734 
736 
738 
739  private:
740 
743  osg::Node* getChildNodeByName(osg::Group* parent, const char* name);
744 
746  typedef std::map< DtCloudLayerId, DtGroundFogPatchArea* > DtGroundFogPatchAreaMap;
748 
750  typedef std::map< DtCloudLayerId, DtWeatherArea* > DtWeatherAreaMap;
752 
754  typedef std::map< DtUniqueID, DtWeatherArea* > DtWeatherAreaObjectMap;
756 
758  typedef std::map< DtUniqueID, DtWeatherPrecipitationShaft* > DtWeatherPrecipitationShaftMap;
760 
762  typedef std::map< DtUniqueID, DtWeatherLightning* > DtWeatherLightningMap;
764 
765  bool myHeightFogDisabled = false;
766  };
767 
768 
769 
772  {
773 
774  public:
777 
779  virtual ~DtWeatherAreaGroupCreator();
780 
783 
785  DtWeatherAreaGroupCreator &operator=(const DtWeatherAreaGroupCreator &other) = delete;
786 
788  static DtWeatherAreaGroupCreator& instance(DtDe& theIG);
789 
791  static void registerInstance(DtDe& theIG, DtWeatherAreaGroupCreator* anInstance);
792 
794  virtual DtWeatherAreaGroup* create(DtDe&);
795  };
796 }
797 
798 
std::vector< DrawItem > myPreSortBin
Definition: DtWeatherAreaGroup.h:708
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
DtUniqueID myUniqueId
Definition: DtWeatherAreaGroup.h:439
osg::ref_ptr< makVrv::DtWeatherAreaDrawable > mySortTransparentDrawable
Definition: DtWeatherAreaGroup.h:700
DtDe & myDe
Definition: DtWeatherAreaGroup.h:683
Vector3_32 myBaseColor
Definition: DtWeatherAreaGroup.h:451
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:723
A structure used to hold data for drawing.
Definition: DtGroundFogEffect.h:53
HeightFogItem()
Definition: DtWeatherAreaGroup.h:422
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:754
osg::ref_ptr< osg::Uniform > myViewMatrixInvUniform
Definition: DtWeatherAreaGroup.h:490
osg::Vec3d myPosition
Definition: DtWeatherAreaGroup.h:441
DtSignalConnectionManager myConnections
Definition: DtWeatherAreaGroup.h:733
DtHeightFogMap myHeightFogMap
Definition: DtWeatherAreaGroup.h:721
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
osg::ref_ptr< osg::Group > mySortPreCloudsGroupNode
Definition: DtWeatherAreaGroup.h:690
double myLastTime
Definition: DtWeatherAreaGroup.h:728
DtWeatherPrecipitationShaftMap myMutableWeatherPrecipitationShaftMap
Definition: DtWeatherAreaGroup.h:759
A structure to hold depth softness uniforms for shaders.
Definition: DtWeatherAreaGroup.h:455
osg::Vec3d myBasisPos
Definition: DtWeatherAreaGroup.h:442
osg::ref_ptr< osg::Uniform > myInvPersMatrixUniform
Definition: DtWeatherAreaGroup.h:457
Creator that is used to create the weather area group.
Definition: DtWeatherAreaGroup.h:771
float myAltitudeBlend
Definition: DtWeatherAreaGroup.h:447
GroundFogPatchState myMutableGroundFogPatchState
Definition: DtWeatherAreaGroup.h:714
osg::ref_ptr< osg::Group > myGroundFogPatchSensorGroup
Definition: DtWeatherAreaGroup.h:702
bool myCameraBasisDirty
Definition: DtWeatherAreaGroup.h:444
A structure to hold draw state information for ground fog effect shaders.
Definition: DtWeatherAreaGroup.h:479
PrecipitationShaftState myMutablePrecipitationShaftState
Definition: DtWeatherAreaGroup.h:717
Contains makVrv::DtGroundFogPatchArea class.
Definition: DtWeatherAreaGroup.h:98
DtWeatherFogFroxelGrid * myWeatherFogFroxelGrid
Definition: DtWeatherAreaGroup.h:735
bool myEnabled
Definition: DtWeatherAreaGroup.h:440
osg::ref_ptr< osg::Uniform > mySoftnessUniform
Definition: DtWeatherAreaGroup.h:461
float myWindSpeedMps
Definition: DtWeatherAreaGroup.h:685
osg::ref_ptr< osg::Group > mySortTransparentGroupNode
Definition: DtWeatherAreaGroup.h:698
A structure used to hold data for drawing.
Definition: DtWeatherLightning.h:70
DtCloudLayerIdToUniqueIdMap myCloudLayerIdToUniqueIdMap
Definition: DtWeatherAreaGroup.h:724
this class is used to split work up between threads.
Definition: DtJobSplitter.h:64
DtGroundFogPatchAreaMap myMutableGroundFogPatchAreaMap
Definition: DtWeatherAreaGroup.h:747
A structure to hold data for a height fog object.
Definition: DtWeatherAreaGroup.h:420
This class simulates and renders a precipitation shaft area. The area volume is filled with a density...
Definition: DtWeatherPrecipitationShaft.h:63
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:75
DtJobSplitter * myJobSplitter
Definition: DtWeatherAreaGroup.h:731
virtual osg::Object * clone(const osg::CopyOp &copyop) const
required functions for derriving from osg::Group
Definition: DtWeatherAreaGroup.h:128
osg::ref_ptr< makVrv::DtWeatherAreaDrawable > mySortPostCloudsDrawable
Definition: DtWeatherAreaGroup.h:696
GroundFogPatchState()
Definition: DtWeatherAreaGroup.h:468
osg::ref_ptr< osg::Uniform > myViewMatrixInvUniform
Definition: DtWeatherAreaGroup.h:482
DrawItem()
Definition: DtWeatherAreaGroup.h:396
SensorMaterialType
brief Sensor material type enumerations used for sensorfx.
Definition: DtWeatherAreaGroup.h:80
Camera forward declarations.
std::vector< DrawItem > mySortBinTransparent
Definition: DtWeatherAreaGroup.h:711
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:489
bool myDebugAreaBoundsEnabled
Definition: DtWeatherAreaGroup.h:737
This class simulates and renders a lightning area. The area will randomly create lightning within a s...
Definition: DtWeatherLightning.h:63
A structure to hold draw state information for lightning shaders.
Definition: DtWeatherAreaGroup.h:494
osg::ref_ptr< osg::Group > myWeatherPrecipitationShaftSensorGroup
Definition: DtWeatherAreaGroup.h:705
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:750
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:496
float myAltitude
Definition: DtWeatherAreaGroup.h:445
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:706
osg::ref_ptr< osg::Uniform > myPersMatrixUniform
Definition: DtWeatherAreaGroup.h:458
DrawItemType
brief Draw item type enumerations used for sorting bins.
Definition: DtWeatherAreaGroup.h:92
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:473
osg::ref_ptr< makVrv::DtWeatherAreaDrawable > mySortPreCloudsDrawable
Definition: DtWeatherAreaGroup.h:692
float myPatternTextureWidth
Definition: DtWeatherAreaGroup.h:475
float myDensity
Definition: DtWeatherAreaGroup.h:446
osg::ref_ptr< osg::Group > myGroundFogEffectSensorGroup
Definition: DtWeatherAreaGroup.h:704
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
osg::ref_ptr< osg::Group > mySortPostCloudsGroupNode
Definition: DtWeatherAreaGroup.h:694
std::vector< DrawItem > mySortBinPostClouds
Definition: DtWeatherAreaGroup.h:710
GroundFogPatchState myMutableSandstormState
Definition: DtWeatherAreaGroup.h:715
DtWeatherAreaObjectMap myMutableWeatherAreaObjectMap
Definition: DtWeatherAreaGroup.h:755
osg::ref_ptr< osg::Geode > mySortPreCloudsGeode
Definition: DtWeatherAreaGroup.h:691
int mySortDistance
Definition: DtWeatherAreaGroup.h:405
Contains vrvCore::DtCloudLayerRecord declaration.
osg::ref_ptr< osg::Uniform > myViewportUniform
Definition: DtWeatherAreaGroup.h:459
float myTimeStep
Definition: DtWeatherAreaGroup.h:729
DtWeatherFogFroxelGrid uses a frustum voxel grid to compute density/translucency at voxel locations b...
Definition: DtWeatherFogFroxelGrid.h:56
LightningState myMutableLightningState
Definition: DtWeatherAreaGroup.h:718
A structure used to hold data for drawing.
Definition: DtWeatherPrecipitationShaft.h:70
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtWeatherLightningMap myMutableWeatherLightningMap
Definition: DtWeatherAreaGroup.h:763
std::map< DtUniqueID, DtWeatherLightning * > DtWeatherLightningMap
This is mutable because it&#39;s used as part of the const drawImplementation.
Definition: DtWeatherAreaGroup.h:762
A structure to hold draw state information for precipitation shaft shaders.
Definition: DtWeatherAreaGroup.h:487
std::map< DtUniqueID, DtWeatherPrecipitationShaft * > DtWeatherPrecipitationShaftMap
This is mutable because it&#39;s used as part of the const drawImplementation.
Definition: DtWeatherAreaGroup.h:758
An area of ground fog patch items and effects. One ground fog patch area is associated with a non-inf...
Definition: DtGroundFogPatchArea.h:71
Functor for comparing draw items by sorting distance.
Definition: DtWeatherAreaGroup.h:412
std::map< DtUniqueID, HeightFogItem > DtHeightFogMap
Definition: DtWeatherAreaGroup.h:720
Frustum_64 myFrustum
Definition: DtWeatherAreaGroup.h:726
float myDensityBlend
Definition: DtWeatherAreaGroup.h:448
Base class to provide boost signal/slot management.
void * myItem
Definition: DtWeatherAreaGroup.h:408
float myCornerRadius
Definition: DtWeatherAreaGroup.h:449
osg::Matrixd myBasisRot
Definition: DtWeatherAreaGroup.h:443
Contains makVrv::DtWeatherAreaDrawable class.
osg::ref_ptr< osg::Group > mySandstormSensorGroup
Definition: DtWeatherAreaGroup.h:703
osg::ref_ptr< osg::Uniform > myIsReflectionUniform
Definition: DtWeatherAreaGroup.h:460
long long DtCloudLayerId
Definition: DtCloudLayer.h:26
Contains makVrv::DtGroundFogEffect class.
Camera 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:746
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:76
Contains the makVrv::DtOsgCullVisitorParameters class. Visual mode information is set into the camera...
std::vector< DrawItem > mySortBinPreClouds
Definition: DtWeatherAreaGroup.h:709
GroundFogEffectState myMutableGroundFogEffectState
Definition: DtWeatherAreaGroup.h:716
osg::ref_ptr< osg::Uniform > myViewMatrixInvUniform
Definition: DtWeatherAreaGroup.h:474
A structure to hold data for a draw item. A draw item is placed in a draw item sorting bin...
Definition: DtWeatherAreaGroup.h:394
A structure used to hold data for drawing.
Definition: DtGroundFogPatchArea.h:84
A structure to hold draw state information for ground fog patch (and sandstorm) shaders.
Definition: DtWeatherAreaGroup.h:466
DrawItemType myItemType
Definition: DtWeatherAreaGroup.h:407
osg::ref_ptr< osg::Geode > mySortPostCloudsGeode
Definition: DtWeatherAreaGroup.h:695
Contains makVrv::DtWeatherLightning class.
Contains makVrv::DtWeatherPrecipitationShaft class.
int mySortPriority
Definition: DtWeatherAreaGroup.h:406
osg::ref_ptr< osg::Geode > mySortTransparentGeode
Definition: DtWeatherAreaGroup.h:699
DtWeatherAreaMap myMutableWeatherAreaMap
Definition: DtWeatherAreaGroup.h:751
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:481
float myWindDirectionRad
Definition: DtWeatherAreaGroup.h:686
virtual osg::Object * cloneType() const
Definition: DtWeatherAreaGroup.h:129
DtVector myBounds
Definition: DtWeatherAreaGroup.h:450

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)