VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtWeatherAreaEnvironmental.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 
13 #include <vrvCore/DtDe.h>
14 
15 #include <vrvOsg/vrvOsg.h>
16 #include <vrvOsg/DtWeatherArea.h>
17 
18 #include <matrix/vlVector.h>
19 
20 #include <osg/Matrixd>
21 #include <osg/Vec3d>
22 #include <osg/Vec4d>
23 
24 
25 namespace makVrv
26 {
27 
36  {
37  friend class DtWeatherAreaFactory;
38 
39  public:
40 
42  virtual ~DtWeatherAreaEnvironmental();
43 
45  DtWeatherAreaEnvironmental() = delete;
46 
49 
51  DtWeatherAreaEnvironmental &operator=(const DtWeatherAreaEnvironmental &other) = delete;
52 
53  protected:
54 
57 
58  public:
59 
62  virtual void setEnabled(bool enabled);
63 
67  virtual void setBounds(const DtVector& bounds, float cornerRadius);
68 
73  virtual void setTransform(const DtVector& position, float orientation, bool relativeToCamera = false);
74 
78  virtual void cullUpdate(const osg::Vec3d& camPos, const osg::Matrixd& viewMatrixI,
79  const std::vector<osg::Vec4d>& cullingPlanes, DtJobSplitter* jobSplitter);
80 
83  bool usesWeatherLayerType(DtWeatherLayer::LayerType layerType) const;
84 
87  virtual void setPrecipitationIntensity(const float intensity);
88 
91  virtual void setPrecipitationType(const DtSkyObject::PrecipitationType type);
92 
95  virtual void setFogColor(const DtVector& color);
96 
99  virtual void setVisibilityDistance(const float distance);
100 
103  virtual void setOvercast(const float overcast);
104 
108  virtual void setWind(const float windDirectionRad, const float windSpeedMps);
109 
112  virtual void setLightningEnabled(const bool enabled);
113 
114  protected:
115 
120  virtual void computeRainShaftBounds(osg::Vec3d& position, DtVector& bounds, float& cornerRadius);
121 
123  virtual void onAreaChanged();
124 
128  virtual float computeFogDensity(const float precipitaionIintensity, const float distance) const;
129 
132  virtual void computeRainShaftBaseColor(DtVector& color);
133 
134  protected:
135 
137 
141 
143  };
144 
145 }
146 
147 
148 
Used by the weather system to define an environmental area.
Definition: DtWeatherAreaEnvironmental.h:35
Contains makVrv::DtWeatherArea class.
DtUniqueID myRainShaftId
Definition: DtWeatherAreaEnvironmental.h:138
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DtUniqueID myHeightFogId
Definition: DtWeatherAreaEnvironmental.h:139
Factory that is used to create weather areas.
Definition: DtWeatherArea.h:292
Contains makVrv::DtDe class.
this class is used to split work up between threads.
Definition: DtJobSplitter.h:64
DtUniqueID myLightningId
Definition: DtWeatherAreaEnvironmental.h:140
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtDe & myDe
Definition: DtWeatherAreaEnvironmental.h:136
Contains DLL export macros.
PrecipitationType
Precipitation types.
Definition: DtSkyObject.h:74
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtVector myHeightFogColor
Definition: DtWeatherAreaEnvironmental.h:142
A weather area represents localized environmental conditions such as blowing dust, blowing sand, or blowing snow.
Definition: DtWeatherArea.h:53
LayerType
brief Layer type enumerations.
Definition: DtWeatherLayer.h:49

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)