23 #include <matrix/vlVector.h>
25 #include <osg/Matrixd>
29 #include <boost/unordered_map.hpp>
37 class DtWeatherAreaCreator;
82 virtual void setEnabled(
bool enabled);
85 virtual bool enabled()
const;
90 virtual bool culled()
const;
95 virtual void setBounds(
const DtVector& bounds,
float cornerRadius);
101 virtual void setTransform(
const DtVector& position,
float orientation,
bool relativeToCamera =
false);
104 virtual const osg::Vec3d& position()
const;
107 virtual const osg::Matrixd& rotation()
const;
110 virtual float boundsX()
const;
113 virtual float boundsY()
const;
116 virtual float boundsZ()
const;
119 virtual float boundsCornerRadius()
const;
124 virtual const unsigned int* packedData(
int& sizeX,
int& sizeY)
const;
132 virtual void cullUpdate(
const osg::Vec3d& camPos,
134 const osg::Camera* camera);
146 static float computeBoundsDistance2d(
const osg::Vec3d& position,
147 const osg::Vec4d& bounds,
const osg::Vec3d& boundsPosition,
148 const osg::Matrixd& boundsRotation);
156 static float computeBoundsDistance3d(
const osg::Vec3d& position,
157 const osg::Vec4d& bounds,
const osg::Vec3d& boundsPosition,
158 const osg::Matrixd& boundsRotation);
167 static float computeBoundsDistance2dAndTop(
const osg::Vec3d& position,
168 const osg::Vec4d& bounds,
const osg::Vec3d& boundsPosition,
169 const osg::Matrixd& boundsRotation);
174 virtual float computeBoundsDistance2d(
const osg::Vec3d& position);
179 virtual float computeBoundsDistance3d(
const osg::Vec3d& position);
185 virtual float computeBoundsDistance2dAndTop(
const osg::Vec3d& position);
189 virtual void setPrecipitationIntensity(
const float intensity);
192 virtual const float precipitationIntensity()
const;
203 virtual void setGroundRainAccumulation(
const float depth);
206 virtual const float groundRainAccumulation()
const;
210 virtual void setFogColor(
const DtVector& color);
213 virtual const DtVector& fogColor()
const;
217 virtual void setVisibilityDistance(
const float distance);
220 virtual const float visibilityDistance()
const;
224 virtual void setOvercast(
const float overcast);
227 virtual const float overcast()
const;
232 virtual void setGlobalWind(
const float windDirectionRad,
233 const float windSpeedMps);
238 virtual void setWind(
const float windDirectionRad,
239 const float windSpeedMps);
243 virtual void setLightningEnabled(
const bool enabled);
246 virtual const bool lightningEnabled()
const;
251 virtual void cloudLayerAdded(
DtCloudLayerId layerId,
int cloudType);
262 virtual bool computeLocalPrecipitation(
const osg::Vec3d& location,
263 int& type,
float& intensity);
270 virtual bool computeLocalGroundRainAccumulation(
const osg::Vec3d& location,
271 float& depth,
float& blend);
286 virtual void updateTransform();
291 virtual void computeBasis(
const osg::Vec3d& inGeocentricPos, osg::Matrixd& rotOut)
const;
297 virtual bool clampPositionToTerrain(osg::Vec3d& position,
float clampDistance)
const;
301 virtual bool isPositionBelowSealevel(
const DtVector& position)
const;
358 AreaTypeEnvironmental
381 static const std::string& theClassName();
DtSkyObject::PrecipitationType myPrecipitationType
Definition: DtWeatherArea.h:324
AreaType
brief Weather area type enumerations. Used for identifying specific areas.
Definition: DtWeatherArea.h:352
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
osg::Vec3d myPosition
Definition: DtWeatherArea.h:314
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DtIntersector is an abstract class that provides the interface for requesting intersections with the ...
Definition: DtIntersector.h:25
float myWindSpeedMps
Definition: DtWeatherArea.h:335
DtDe & myDe
Definition: DtWeatherArea.h:388
float myBoundsZ
Definition: DtWeatherArea.h:319
Factory that is used to create weather areas.
Definition: DtWeatherArea.h:346
Contains makVrv::DtDe class.
this class is used to split work up between threads.
Definition: DtJobSplitter.h:64
float myGroundRainAccumulation
Definition: DtWeatherArea.h:326
Definition: DtWeatherArea.h:357
Definition: DtWeatherArea.h:356
Definition: DtWeatherArea.h:354
float myBoundsCornerRadius
Definition: DtWeatherArea.h:320
bool myLightningEnabled
Definition: DtWeatherArea.h:328
Camera forward declarations.
Contains makVrv::DtSkyObject class.
A structure used to hold data for drawing.
Definition: DtWeatherEffect.h:72
bool myEnabled
Definition: DtWeatherArea.h:307
float myOvercast
Definition: DtWeatherArea.h:332
Contains makVrv::DtVirtualBaseClass class.
osg::Matrixd myRotation
Definition: DtWeatherArea.h:315
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...
DtVector myFogColor
Definition: DtWeatherArea.h:330
DtVector mySetPosition
Definition: DtWeatherArea.h:310
float myPrecipitationIntensity
Definition: DtWeatherArea.h:323
bool myCulled
Definition: DtWeatherArea.h:308
float myWindDirectionRad
Definition: DtWeatherArea.h:334
float myVisibilityDistance
Definition: DtWeatherArea.h:331
std::vector< DtWeatherLayer * > myWeatherLayers
Definition: DtWeatherArea.h:337
bool mySetRelativeToCamera
Definition: DtWeatherArea.h:312
Definition: DtWeatherArea.h:355
long long DtCloudLayerId
Definition: DtCloudLayer.h:26
Contains makVrv::DtUniqueID type.
Contains DLL export macros.
PrecipitationType
Precipitation types.
Definition: DtSkyObject.h:74
DtDe & myDe
Definition: DtWeatherArea.h:305
float mySetOrientation
Definition: DtWeatherArea.h:311
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
float myBoundsX
Definition: DtWeatherArea.h:317
float myBoundsY
Definition: DtWeatherArea.h:318
float myPrecipitationBoundsScale
Definition: DtWeatherArea.h:322
A weather area represents localized environmental conditions such as blowing dust, blowing sand, or blowing snow. The default (base class) weather area is mainly used as a bounds for localized environmental information such as precipitation intensity. AreaTypeBlowingDust, AreaTypeBlowingSand, AreaTypeBlowingSnow are specialized weather areas that represent 1 specific environmental condition.
Definition: DtWeatherArea.h:56
LayerType
brief Layer type enumerations. Layer types help with descibing the layer for tying layer to areas...
Definition: DtWeatherLayer.h:53