21 #include <matrix/vlVector.h>
23 #include <osg/Matrixd>
27 #include <boost/unordered_map.hpp>
35 class DtWeatherAreaCreator;
79 virtual void setEnabled(
bool enabled);
82 virtual bool enabled()
const;
87 virtual bool culled()
const;
92 virtual void setBounds(
const DtVector& bounds,
float cornerRadius);
98 virtual void setTransform(
const DtVector& position,
float orientation,
bool relativeToCamera =
false);
101 virtual const osg::Vec3d& position()
const;
104 virtual const osg::Matrixd& rotation()
const;
107 virtual float boundsX()
const;
110 virtual float boundsY()
const;
113 virtual float boundsZ()
const;
116 virtual float boundsCornerRadius()
const;
121 virtual const unsigned int* packedData(
int& sizeX,
int& sizeY)
const;
126 virtual void cullUpdate(
const osg::Vec3d& camPos,
const osg::Matrixd& viewMatrixI,
127 const std::vector<osg::Vec4d>& cullingPlanes,
DtJobSplitter* jobSplitter) {}
135 static float computeBoundsDistance2D(
const osg::Vec3d& position,
136 const osg::Vec4d& bounds,
const osg::Vec3d& boundsPosition,
const osg::Matrixd& boundsRotation);
144 static float computeBoundsDistance3D(
const osg::Vec3d& position,
145 const osg::Vec4d& bounds,
const osg::Vec3d& boundsPosition,
const osg::Matrixd& boundsRotation);
150 virtual float computeBoundsDistance2D(
const osg::Vec3d& position);
155 virtual float computeBoundsDistance3D(
const osg::Vec3d& position);
163 virtual void setPrecipitationIntensity(
const float intensity);
166 virtual const float precipitationIntensity()
const;
177 virtual void setGroundRainAccumulation(
const float depth);
180 virtual const float groundRainAccumulation()
const;
184 virtual void setFogColor(
const DtVector& color);
187 virtual const DtVector& fogColor()
const;
191 virtual void setVisibilityDistance(
const float distance);
194 virtual const float visibilityDistance()
const;
198 virtual void setOvercast(
const float overcast);
201 virtual const float overcast()
const;
206 virtual void setWind(
const float windDirectionRad,
const float windSpeedMps);
210 virtual void setLightningEnabled(
const bool enabled);
213 virtual const bool lightningEnabled()
const;
220 virtual bool computeLocalPrecipitation(
const osg::Vec3d& location,
221 int& type,
float& intensity);
228 virtual bool computeLocalGroundRainAccumulation(
const osg::Vec3d& location,
229 float& depth,
float& blend);
234 virtual void updateTransform();
239 virtual void computeBasis(
const osg::Vec3d& inGeocentricPos, osg::Matrixd& rotOut)
const;
245 virtual bool clampPositionToTerrain(osg::Vec3d& position,
float clampDistance)
const;
251 virtual bool isSphereVisible(
const std::vector<osg::Vec4d>& planes,
const osg::Vec3d& center,
double radius)
const;
304 AreaTypeEnvironmental
327 static const std::string& theClassName();
DtSkyObject::PrecipitationType myPrecipitationType
Definition: DtWeatherArea.h:274
AreaType
brief Weather area type enumerations.
Definition: DtWeatherArea.h:298
Contains makVrv::DtWeatherLayer class.
Virtual base class.
Definition: DtVirtualBaseClass.h:19
osg::Vec3d myPosition
Definition: DtWeatherArea.h:264
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
float myWindSpeedMps
Definition: DtWeatherArea.h:285
DtDe & myDe
Definition: DtWeatherArea.h:334
float myBoundsZ
Definition: DtWeatherArea.h:269
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
float myGroundRainAccumulation
Definition: DtWeatherArea.h:276
Definition: DtWeatherArea.h:303
Definition: DtWeatherArea.h:302
Definition: DtWeatherArea.h:300
virtual void cullUpdate(const osg::Vec3d &camPos, const osg::Matrixd &viewMatrixI, const std::vector< osg::Vec4d > &cullingPlanes, DtJobSplitter *jobSplitter)
Culls the area based on the current camera.
Definition: DtWeatherArea.h:126
float myBoundsCornerRadius
Definition: DtWeatherArea.h:270
bool myLightningEnabled
Definition: DtWeatherArea.h:278
Contains makVrv::DtSkyObject class.
bool myEnabled
Definition: DtWeatherArea.h:257
float myOvercast
Definition: DtWeatherArea.h:282
Contains makVrv::DtVirtualBaseClass class.
osg::Matrixd myRotation
Definition: DtWeatherArea.h:265
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
DtVector myFogColor
Definition: DtWeatherArea.h:280
DtVector mySetPosition
Definition: DtWeatherArea.h:260
float myPrecipitationIntensity
Definition: DtWeatherArea.h:273
bool myCulled
Definition: DtWeatherArea.h:258
float myWindDirectionRad
Definition: DtWeatherArea.h:284
float myVisibilityDistance
Definition: DtWeatherArea.h:281
bool mySetRelativeToCamera
Definition: DtWeatherArea.h:262
Definition: DtWeatherArea.h:301
Contains makVrv::DtUniqueID type.
Contains DLL export macros.
PrecipitationType
Precipitation types.
Definition: DtSkyObject.h:74
DtDe & myDe
Definition: DtWeatherArea.h:255
float mySetOrientation
Definition: DtWeatherArea.h:261
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
float myBoundsX
Definition: DtWeatherArea.h:267
float myBoundsY
Definition: DtWeatherArea.h:268
float myPrecipitationBoundsScale
Definition: DtWeatherArea.h:272
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