VR-Forces 4.10 Class Documentation
 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 
137  virtual bool usingWeatherLayerType(DtWeatherLayer::LayerType layerType) const;
138 
140  virtual void removeCloudLayer(DtCloudLayerId layerId);
141 
144  virtual bool removeHeightFog(DtUniqueID uniqueId);
145 
147  virtual void removeCloudLayers();
148 
150  virtual void addGroundFog(DtCloudLayerId layerId, const DtVector& position,
151  float orientation, float cornerRadius, const DtVector& bounds,
152  double density, bool infinite, bool relative, bool altitudeIsHAT);
153 
156  virtual DtUniqueID addHeightFog(const DtVector& position, float orientation,
157  float cornerRadius, const DtVector& bounds, double density, bool relative);
158 
160  virtual void addPatchyGroundFog(DtCloudLayerId layerId,
161  const DtVector& position, float orientation, float cornerRadius,
162  const DtVector& bounds, double density, bool relative);
163 
165  virtual void addSandstorm(DtCloudLayerId layerId, const DtVector& position,
166  float orientation, float cornerRadius, const DtVector& bounds,
167  double density, bool infinite, bool relative, bool altitudeIsHAT);
168 
170  virtual void addBlowingDustArea(DtCloudLayerId layerId,
171  const DtVector& position, float orientation, float cornerRadius,
172  const DtVector& bounds, bool relative);
173 
175  virtual void addBlowingSandArea(DtCloudLayerId layerId,
176  const DtVector& position, float orientation, float cornerRadius,
177  const DtVector& bounds, bool relative);
178 
180  virtual void addBlowingSnowArea(DtCloudLayerId layerId,
181  const DtVector& position, float orientation, float cornerRadius,
182  const DtVector& bounds, bool relative);
183 
191  virtual DtUniqueID addRainShaft(osg::Vec3d& position, const osg::Matrixd& rotation,
192  const DtVector& bounds, const float cornerRadius, const float intensity);
193 
196  virtual void removeRainShaft(DtUniqueID uniqueId);
197 
202  virtual void setWeatherRainShaftBounds(DtUniqueID uniqueId,
203  const DtVector& bounds, const float cornerRadius);
204 
209  virtual void setWeatherRainShaftTransform(DtUniqueID uniqueId,
210  const osg::Vec3d& position, const osg::Matrixd& rotation);
211 
215  virtual void setWeatherRainShaftIntensity(DtUniqueID uniqueId,
216  const float intensity);
217 
221  virtual void setWeatherRainShaftBaseColor(DtUniqueID uniqueId,
222  const DtVector& color);
223 
228  virtual void setWeatherRainShaftWind(DtUniqueID uniqueId,
229  const float windDirectionRad, const float windSpeedMps);
230 
234  virtual void setWeatherRainShaftEnabled(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 
342  virtual void setWind(float windDirectionRad, float windSpeedMps);
343 
345  virtual void drawObjects(osg::RenderInfo& renderInfo,
346  const DtWeatherAreaDrawable& drawable);
347 
351  virtual void gatherWeatherAreas(const osg::Vec3d& position,
352  std::vector<DtWeatherArea*>& areas);
353 
359  virtual bool computeLocalPrecipitation(const DtVector& location,
360  int& precipType, float& intensity);
361 
367  virtual bool computeLocalGroundRainAccumulation(const DtVector& location,
368  float& depth, float& blend);
369 
371  virtual bool shouldActivateRaindrops() const;
372 
378  virtual bool bindFogFroxelTexture(const int unit, const unsigned int renderContextId);
379 
381  virtual float fogFroxelMaxDistance() const;
382 
383  protected:
384 
387  struct DrawItem
388  {
390  : mySortDistance(0)
391  , mySortPriority(0)
392  , myItemType(DrawItemTypeNone)
393  , myItem(0)
394  {
395  // intentional noop
396  }
397 
398  int mySortDistance; // squared distance from camera
399  int mySortPriority; // lower number draws first
401  void* myItem;
402  };
403 
406  {
407  public:
408  bool operator()(const DtWeatherAreaGroup::DrawItem& lhs,
409  const DtWeatherAreaGroup::DrawItem& rhs);
410  };
411 
414  {
416  : myUniqueId(-1)
417  , myEnabled(true)
418  , myBasisPos(0,0,0)
419  , myCameraBasisDirty(false)
420  , myPosition(0,0,0)
421  , myAltitude(0)
422  , myDensity(0.001f)
423  , myAltitudeBlend(0)
424  , myDensityBlend(0)
425  , myCornerRadius(1)
426  , myBounds(1,1,1)
427  , myBaseColor(1,1,1)
428  {
429  //intentional nop
430  }
431 
433  bool myEnabled;
434  osg::Vec3d myPosition;
435  osg::Vec3d myBasisPos;
436  osg::Matrixd myBasisRot;
437  bool myCameraBasisDirty; // true when transform was set relative to camera
438  float myAltitude;
439  float myDensity;
443  DtVector myBounds; // x = length, y = width, z = thickness
444  osg::Vec3 myBaseColor;
445  };
446 
449  {
455  };
456 
460  {
461  GroundFogPatchState() : myPatternTextureWidth(1.0f)
462  {
463  // intentional noop
464  }
465 
469  };
470 
473  {
476  };
477 
480  {
483  };
484 
487  {
489  };
490 
492  virtual void initGroundFogPatchState();
493 
495  virtual void initSandstormState();
496 
498  virtual void initGroundFogEffectState();
499 
501  virtual void initRainShaftState();
502 
504  virtual void initLightningState();
505 
507  virtual void loadShaders();
508 
510  virtual void loadGroundFogPatchShaders();
511 
513  virtual void loadSandstormShaders();
514 
516  virtual void loadGroundFogEffectShaders();
517 
519  virtual void loadRainShaftShaders();
520 
522  virtual void loadLightningShaders();
523 
525  virtual void clearDrawBins();
526 
528  void flushDrawBin(osg::RenderInfo& renderInfo,
529  const DtWeatherAreaDrawable& drawable, std::vector<DrawItem>& drawBin);
530 
532  virtual void drawGroundFogPatchArea(DtGroundFogPatchArea::DrawData& drawData,
533  DtGroundFogPatchArea* area, const bool stateDirty);
534 
536  virtual void drawGroundFogEffect(DtGroundFogEffect::DrawData& drawData,
537  DtGroundFogPatchArea* area, const bool stateDirty);
538 
540  virtual void drawRainShaft(DtWeatherRainShaft::DrawData& drawData,
541  DtWeatherRainShaft* shaft, const bool stateDirty);
542 
544  virtual void drawLightning(DtWeatherLightning::DrawData& drawData,
545  DtWeatherLightning* lightning, const bool stateDirty);
546 
550  virtual void applyState(DtGroundFogPatchArea::DrawData& drawData,
551  GroundFogPatchState& mutableState) const;
552 
554  virtual void applyState(DtGroundFogEffect::DrawData& drawData) const;
555 
557  virtual void applyState(DtWeatherRainShaft::DrawData& drawData) const;
558 
560  virtual void applyState(DtWeatherLightning::DrawData& drawData) const;
561 
563  virtual void initSoftnessUniforms(osg::StateSet& ss,
564  SoftnessUniforms& softnessUniforms);
565 
569  virtual void setupSoftness(osg::Camera* camera,
570  SoftnessUniforms& softnessUniforms) const;
571 
573  void connectSignals();
574 
576  virtual void slot_reloadShaders();
577 
579  virtual void slot_simulationUpdate();
580 
582  virtual void slot_weatherAreaObjectAdded(DtUniqueID id, DtWeatherAreaObject*);
583 
585  virtual void slot_weatherAreaObjectToBeRemoved(DtUniqueID id, DtWeatherAreaObject*);
586 
588  virtual void slot_weatherAreaObjectTransformChanged(DtUniqueID id,
589  const DtVector& position, const float orientation);
590 
592  virtual void slot_weatherAreaObjectBoundsChanged(DtUniqueID id,
593  const DtVector& bounds, const float cornerRadius);
594 
596  virtual void slot_weatherAreaObjectPrecipitationIntensityChanged(
597  DtUniqueID id, const float intensity);
598 
600  virtual void slot_weatherAreaObjectPrecipitationTypeChanged(
601  DtUniqueID id, const unsigned int type);
602 
604  virtual void slot_weatherAreaObjectGroundRainAccumulationChanged(
605  DtUniqueID id, const float depth);
606 
608  virtual void slot_weatherAreaObjectFogColorChanged(DtUniqueID id,
609  const DtVector& color);
610 
612  virtual void slot_weatherAreaObjectVisibilityDistanceChanged(
613  DtUniqueID id, const float distance);
614 
616  virtual void slot_weatherAreaObjectOvercastChanged(DtUniqueID id,
617  const float distance);
618 
620  virtual void slot_weatherAreaObjectLightningEnabledChanged(
621  DtUniqueID id, const bool enabled);
622 
624  virtual void traverse(osg::NodeVisitor& nv);
625 
627  virtual void disableHeightFog();
628 
631  virtual void cullUpdate(osg::Camera* cam);
632 
635  virtual void cullUpdateHeightFog(osg::Camera* cam);
636 
640  virtual void computeBasis(const osg::Vec3d& inGeocentricPos, osg::Matrixd& rotOut);
641 
643  virtual void releaseGroundFogPatchGLObjects(osg::State* state) const;
644 
646  virtual void releaseGroundFogEffectGLObjects(osg::State* state) const;
647 
649  virtual void releaseWeatherRainShaftGLObjects(osg::State* state) const;
650 
652  virtual void releaseWeatherLightningGLObjects(osg::State* state) const;
653 
654  protected:
655 
657 
660 
661  osg::ref_ptr<osg::Node> mySensorNodes[SensorMaterialTypeCount];
662 
666 
670 
674 
680 
681  std::vector<DrawItem> myPreSortBin;
682  std::vector<DrawItem> mySortBinPreClouds;
683  std::vector<DrawItem> mySortBinPostClouds;
684  std::vector<DrawItem> mySortBinTransparent;
685 
686  // Needs to be mutable because it's used during draw implementation.
692 
693  typedef std::map< DtUniqueID, HeightFogItem > DtHeightFogMap;
695 
696  typedef std::map< DtCloudLayerId, DtUniqueID > DtCloudLayerIdToUniqueIdMap;
698 
699  std::vector<osg::Vec4d> myCullingPlanes;
700 
701  double myLastTime;
702  float myTimeStep;
703 
705 
707 
709 
710  private:
711 
714  osg::Node* getChildNodeByName(osg::Group* parent, const char* name);
715 
717  typedef std::map< DtCloudLayerId, DtGroundFogPatchArea* > DtGroundFogPatchAreaMap;
719 
721  typedef std::map< DtCloudLayerId, DtWeatherArea* > DtWeatherAreaMap;
723 
725  typedef std::map< DtUniqueID, DtWeatherArea* > DtWeatherAreaObjectMap;
727 
729  typedef std::map< DtUniqueID, DtWeatherRainShaft* > DtWeatherRainShaftMap;
731 
733  typedef std::map< DtUniqueID, DtWeatherLightning* > DtWeatherLightningMap;
735  };
736 
737 
738 
741  {
742 
743  public:
746 
748  virtual ~DtWeatherAreaGroupCreator();
749 
752 
754  DtWeatherAreaGroupCreator &operator=(const DtWeatherAreaGroupCreator &other) = delete;
755 
757  static DtWeatherAreaGroupCreator& instance(DtDe& theIG);
758 
760  static void registerInstance(DtDe& theIG, DtWeatherAreaGroupCreator* anInstance);
761 
763  virtual DtWeatherAreaGroup* create(DtDe&);
764  };
765 }
766 
767 
osg::Vec3 myBaseColor
Definition: DtWeatherAreaGroup.h:444
std::vector< DrawItem > myPreSortBin
Definition: DtWeatherAreaGroup.h:681
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
This class simulates and renders a rain shaft area.
Definition: DtWeatherRainShaft.h:39
DtUniqueID myUniqueId
Definition: DtWeatherAreaGroup.h:432
osg::ref_ptr< makVrv::DtWeatherAreaDrawable > mySortTransparentDrawable
Definition: DtWeatherAreaGroup.h:673
osg::ref_ptr< osg::Uniform > myViewMatrixInvUniform
Definition: DtWeatherAreaGroup.h:482
DtDe & myDe
Definition: DtWeatherAreaGroup.h:656
Contains DtWeatherAreaObjectManager class.
Contains makVrv::DtWeatherLayer class.
Virtual base class.
Definition: DtVirtualBaseClass.h:19
std::map< DtCloudLayerId, DtUniqueID > DtCloudLayerIdToUniqueIdMap
Definition: DtWeatherAreaGroup.h:696
A structure used to hold data for drawing.
Definition: DtGroundFogEffect.h:41
HeightFogItem()
Definition: DtWeatherAreaGroup.h:415
The weather area object represents a set localized environmental conditions such as local rain and fo...
Definition: DtWeatherAreaObject.h:32
std::map< DtUniqueID, DtWeatherArea * > DtWeatherAreaObjectMap
This is mutable because it&#39;s used as part of the const drawImplementation.
Definition: DtWeatherAreaGroup.h:725
osg::Vec3d myPosition
Definition: DtWeatherAreaGroup.h:434
DtSignalConnectionManager myConnections
Definition: DtWeatherAreaGroup.h:706
A structure to hold draw state information for rainshaft shaders.
Definition: DtWeatherAreaGroup.h:479
DtHeightFogMap myHeightFogMap
Definition: DtWeatherAreaGroup.h:694
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
osg::ref_ptr< osg::Group > mySortPreCloudsGroupNode
Definition: DtWeatherAreaGroup.h:663
double myLastTime
Definition: DtWeatherAreaGroup.h:701
A structure to hold depth softness uniforms for shaders.
Definition: DtWeatherAreaGroup.h:448
osg::Vec3d myBasisPos
Definition: DtWeatherAreaGroup.h:435
osg::ref_ptr< osg::Uniform > myInvPersMatrixUniform
Definition: DtWeatherAreaGroup.h:450
Creator that is used to create the weather area group.
Definition: DtWeatherAreaGroup.h:740
float myAltitudeBlend
Definition: DtWeatherAreaGroup.h:440
GroundFogPatchState myMutableGroundFogPatchState
Definition: DtWeatherAreaGroup.h:687
osg::ref_ptr< osg::Group > myGroundFogPatchSensorGroup
Definition: DtWeatherAreaGroup.h:675
bool myCameraBasisDirty
Definition: DtWeatherAreaGroup.h:437
A structure to hold draw state information for ground fog effect shaders.
Definition: DtWeatherAreaGroup.h:472
Contains makVrv::DtGroundFogPatchArea class.
Definition: DtWeatherAreaGroup.h:95
DtWeatherFogFroxelGrid * myWeatherFogFroxelGrid
Definition: DtWeatherAreaGroup.h:708
bool myEnabled
Definition: DtWeatherAreaGroup.h:433
osg::ref_ptr< osg::Uniform > mySoftnessUniform
Definition: DtWeatherAreaGroup.h:454
float myWindSpeedMps
Definition: DtWeatherAreaGroup.h:658
osg::ref_ptr< osg::Group > mySortTransparentGroupNode
Definition: DtWeatherAreaGroup.h:671
A structure used to hold data for drawing.
Definition: DtWeatherLightning.h:46
DtCloudLayerIdToUniqueIdMap myCloudLayerIdToUniqueIdMap
Definition: DtWeatherAreaGroup.h:697
this class is used to split work up between threads.
Definition: DtJobSplitter.h:64
DtGroundFogPatchAreaMap myMutableGroundFogPatchAreaMap
Definition: DtWeatherAreaGroup.h:718
A structure to hold data for a height fog object.
Definition: DtWeatherAreaGroup.h:413
A drawable used for drawing items related to weather areas.
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:704
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:669
GroundFogPatchState()
Definition: DtWeatherAreaGroup.h:461
osg::ref_ptr< osg::Uniform > myViewMatrixInvUniform
Definition: DtWeatherAreaGroup.h:475
DrawItem()
Definition: DtWeatherAreaGroup.h:389
SensorMaterialType
brief Sensor material type enumerations used for sensorfx.
Definition: DtWeatherAreaGroup.h:77
std::vector< DrawItem > mySortBinTransparent
Definition: DtWeatherAreaGroup.h:684
Contains makVrv::DtWeatherRainShaft class.
This class simulates and renders a lightning area.
Definition: DtWeatherLightning.h:39
A structure to hold draw state information for lightning shaders.
Definition: DtWeatherAreaGroup.h:486
A structure used to hold data for drawing.
Definition: DtWeatherRainShaft.h:46
RainShaftState myMutableRainShaftState
Definition: DtWeatherAreaGroup.h:690
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:721
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:488
std::map< DtUniqueID, DtWeatherRainShaft * > DtWeatherRainShaftMap
This is mutable because it&#39;s used as part of the const drawImplementation.
Definition: DtWeatherAreaGroup.h:729
float myAltitude
Definition: DtWeatherAreaGroup.h:438
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
osg::ref_ptr< osg::Group > myWeatherLightningSensorGroup
Definition: DtWeatherAreaGroup.h:679
osg::ref_ptr< osg::Uniform > myPersMatrixUniform
Definition: DtWeatherAreaGroup.h:451
DrawItemType
brief Draw item type enumerations used for sorting bins.
Definition: DtWeatherAreaGroup.h:89
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:466
osg::ref_ptr< makVrv::DtWeatherAreaDrawable > mySortPreCloudsDrawable
Definition: DtWeatherAreaGroup.h:665
float myPatternTextureWidth
Definition: DtWeatherAreaGroup.h:468
float myDensity
Definition: DtWeatherAreaGroup.h:439
osg::ref_ptr< osg::Group > myGroundFogEffectSensorGroup
Definition: DtWeatherAreaGroup.h:677
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
osg::ref_ptr< osg::Group > mySortPostCloudsGroupNode
Definition: DtWeatherAreaGroup.h:667
std::vector< DrawItem > mySortBinPostClouds
Definition: DtWeatherAreaGroup.h:683
GroundFogPatchState myMutableSandstormState
Definition: DtWeatherAreaGroup.h:688
DtWeatherAreaObjectMap myMutableWeatherAreaObjectMap
Definition: DtWeatherAreaGroup.h:726
osg::ref_ptr< osg::Geode > mySortPreCloudsGeode
Definition: DtWeatherAreaGroup.h:664
int mySortDistance
Definition: DtWeatherAreaGroup.h:398
Contains vrvCore::DtCloudLayerRecord declaration.
osg::ref_ptr< osg::Uniform > myViewportUniform
Definition: DtWeatherAreaGroup.h:452
float myTimeStep
Definition: DtWeatherAreaGroup.h:702
DtWeatherFogFroxelGrid uses a frustum voxel grid to compute density/translucency at voxel locations b...
Definition: DtWeatherFogFroxelGrid.h:46
LightningState myMutableLightningState
Definition: DtWeatherAreaGroup.h:691
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtWeatherLightningMap myMutableWeatherLightningMap
Definition: DtWeatherAreaGroup.h:734
std::map< DtUniqueID, DtWeatherLightning * > DtWeatherLightningMap
This is mutable because it&#39;s used as part of the const drawImplementation.
Definition: DtWeatherAreaGroup.h:733
An area of ground fog patch items and effects.
Definition: DtGroundFogPatchArea.h:56
Functor for comparing draw items by sorting distance.
Definition: DtWeatherAreaGroup.h:405
std::map< DtUniqueID, HeightFogItem > DtHeightFogMap
Definition: DtWeatherAreaGroup.h:693
DtWeatherRainShaftMap myMutableWeatherRainShaftMap
Definition: DtWeatherAreaGroup.h:730
float myDensityBlend
Definition: DtWeatherAreaGroup.h:441
Base class to provide boost signal/slot management.
void * myItem
Definition: DtWeatherAreaGroup.h:401
float myCornerRadius
Definition: DtWeatherAreaGroup.h:442
osg::Matrixd myBasisRot
Definition: DtWeatherAreaGroup.h:436
Contains makVrv::DtWeatherAreaDrawable class.
osg::ref_ptr< osg::Group > mySandstormSensorGroup
Definition: DtWeatherAreaGroup.h:676
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:481
osg::ref_ptr< osg::Uniform > myIsReflectionUniform
Definition: DtWeatherAreaGroup.h:453
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:717
Definition: DtWeatherAreaGroup.h:94
std::vector< osg::Vec4d > myCullingPlanes
Definition: DtWeatherAreaGroup.h:699
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Contains the makVrv::DtOsgCullVisitorParameters class.
std::vector< DrawItem > mySortBinPreClouds
Definition: DtWeatherAreaGroup.h:682
GroundFogEffectState myMutableGroundFogEffectState
Definition: DtWeatherAreaGroup.h:689
osg::ref_ptr< osg::Uniform > myViewMatrixInvUniform
Definition: DtWeatherAreaGroup.h:467
A structure to hold data for a draw item.
Definition: DtWeatherAreaGroup.h:387
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:459
DrawItemType myItemType
Definition: DtWeatherAreaGroup.h:400
osg::ref_ptr< osg::Geode > mySortPostCloudsGeode
Definition: DtWeatherAreaGroup.h:668
Contains makVrv::DtWeatherLightning class.
int mySortPriority
Definition: DtWeatherAreaGroup.h:399
LayerType
brief Layer type enumerations.
Definition: DtWeatherLayer.h:49
osg::ref_ptr< osg::Geode > mySortTransparentGeode
Definition: DtWeatherAreaGroup.h:672
DtWeatherAreaMap myMutableWeatherAreaMap
Definition: DtWeatherAreaGroup.h:722
SoftnessUniforms mySoftnessUniforms
Definition: DtWeatherAreaGroup.h:474
float myWindDirectionRad
Definition: DtWeatherAreaGroup.h:659
virtual osg::Object * cloneType() const
Definition: DtWeatherAreaGroup.h:126
DtVector myBounds
Definition: DtWeatherAreaGroup.h:443
osg::ref_ptr< osg::Group > myWeatherRainShaftSensorGroup
Definition: DtWeatherAreaGroup.h:678

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)