21 #include <matrix/vlVector.h>
23 #include <osg/Matrixd>
27 #include <boost/unordered_map.hpp>
35 class DtWeatherAreaCreator;
80 virtual void setEnabled(
bool enabled);
83 virtual bool enabled()
const;
88 virtual bool culled()
const;
93 virtual void setBounds(
const DtVector& bounds,
float cornerRadius);
99 virtual void setTransform(
const DtVector& position,
float orientation,
bool relativeToCamera =
false);
102 virtual const osg::Vec3d& position()
const;
105 virtual const osg::Matrixd& rotation()
const;
108 virtual float boundsX()
const;
111 virtual float boundsY()
const;
114 virtual float boundsZ()
const;
117 virtual float boundsCornerRadius()
const;
122 virtual const unsigned int* packedData(
int& sizeX,
int& sizeY)
const;
130 virtual void cullUpdate(
const osg::Vec3d& camPos,
131 const std::vector<osg::Vec4d>& cullingPlanes,
DtJobSplitter* jobSplitter,
132 const osg::Camera* camera);
144 static float computeBoundsDistance2d(
const osg::Vec3d& position,
145 const osg::Vec4d& bounds,
const osg::Vec3d& boundsPosition,
146 const osg::Matrixd& boundsRotation);
154 static float computeBoundsDistance3d(
const osg::Vec3d& position,
155 const osg::Vec4d& bounds,
const osg::Vec3d& boundsPosition,
156 const osg::Matrixd& boundsRotation);
165 static float computeBoundsDistance2dAndTop(
const osg::Vec3d& position,
166 const osg::Vec4d& bounds,
const osg::Vec3d& boundsPosition,
167 const osg::Matrixd& boundsRotation);
172 virtual float computeBoundsDistance2d(
const osg::Vec3d& position);
177 virtual float computeBoundsDistance3d(
const osg::Vec3d& position);
183 virtual float computeBoundsDistance2dAndTop(
const osg::Vec3d& position);
187 virtual void setPrecipitationIntensity(
const float intensity);
190 virtual const float precipitationIntensity()
const;
201 virtual void setGroundRainAccumulation(
const float depth);
204 virtual const float groundRainAccumulation()
const;
208 virtual void setFogColor(
const DtVector& color);
211 virtual const DtVector& fogColor()
const;
215 virtual void setVisibilityDistance(
const float distance);
218 virtual const float visibilityDistance()
const;
222 virtual void setOvercast(
const float overcast);
225 virtual const float overcast()
const;
230 virtual void setGlobalWind(
const float windDirectionRad,
231 const float windSpeedMps);
236 virtual void setWind(
const float windDirectionRad,
237 const float windSpeedMps);
241 virtual void setLightningEnabled(
const bool enabled);
244 virtual const bool lightningEnabled()
const;
249 virtual void cloudLayerAdded(
DtCloudLayerId layerId,
int cloudType);
260 virtual bool computeLocalPrecipitation(
const osg::Vec3d& location,
261 int& type,
float& intensity);
268 virtual bool computeLocalGroundRainAccumulation(
const osg::Vec3d& location,
269 float& depth,
float& blend);
284 virtual void updateTransform();
289 virtual void computeBasis(
const osg::Vec3d& inGeocentricPos, osg::Matrixd& rotOut)
const;
295 virtual bool clampPositionToTerrain(osg::Vec3d& position,
float clampDistance)
const;
301 virtual bool isSphereVisible(
const std::vector<osg::Vec4d>& planes,
const osg::Vec3d& center,
double radius)
const;
305 virtual bool isPositionBelowSealevel(
const DtVector& position)
const;
362 AreaTypeEnvironmental
385 static const std::string& theClassName();
DtSkyObject::PrecipitationType myPrecipitationType
Definition: DtWeatherArea.h:328
AreaType
brief Weather area type enumerations. Used for identifying specific areas.
Definition: DtWeatherArea.h:356
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:318
#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:339
DtDe & myDe
Definition: DtWeatherArea.h:392
float myBoundsZ
Definition: DtWeatherArea.h:323
Factory that is used to create weather areas.
Definition: DtWeatherArea.h:350
Contains makVrv::DtDe class.
this class is used to split work up between threads.
Definition: DtJobSplitter.h:64
float myGroundRainAccumulation
Definition: DtWeatherArea.h:330
Definition: DtWeatherArea.h:361
Definition: DtWeatherArea.h:360
Definition: DtWeatherArea.h:358
float myBoundsCornerRadius
Definition: DtWeatherArea.h:324
bool myLightningEnabled
Definition: DtWeatherArea.h:332
Contains makVrv::DtSkyObject class.
A structure used to hold data for drawing.
Definition: DtWeatherEffect.h:48
bool myEnabled
Definition: DtWeatherArea.h:311
float myOvercast
Definition: DtWeatherArea.h:336
Contains makVrv::DtVirtualBaseClass class.
osg::Matrixd myRotation
Definition: DtWeatherArea.h:319
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:334
DtVector mySetPosition
Definition: DtWeatherArea.h:314
float myPrecipitationIntensity
Definition: DtWeatherArea.h:327
bool myCulled
Definition: DtWeatherArea.h:312
float myWindDirectionRad
Definition: DtWeatherArea.h:338
float myVisibilityDistance
Definition: DtWeatherArea.h:335
std::vector< DtWeatherLayer * > myWeatherLayers
Definition: DtWeatherArea.h:341
bool mySetRelativeToCamera
Definition: DtWeatherArea.h:316
Definition: DtWeatherArea.h:359
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:309
float mySetOrientation
Definition: DtWeatherArea.h:315
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
float myBoundsX
Definition: DtWeatherArea.h:321
float myBoundsY
Definition: DtWeatherArea.h:322
float myPrecipitationBoundsScale
Definition: DtWeatherArea.h:326
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:54
LayerType
brief Layer type enumerations. Layer types help with descibing the layer for tying layer to areas...
Definition: DtWeatherLayer.h:53