17 #include <osgParticle/PrecipitationEffect>
18 #include <osg/TextureCubeMap>
20 #include <boost/unordered_map.hpp>
25 class DtWaterOnScreen;
38 virtual const char*
className()
const {
return "DtPrecipitationEffect"; }
41 virtual void traverse(osg::NodeVisitor& nv);
59 virtual void setLocation(
const DtVector& location);
63 virtual const DtVector& location()
const;
77 virtual void setCloudLayerDeckType(
DtCloudLayerId layerId,
int deckType);
78 virtual void setCloudLayerCornerRadius(
DtCloudLayerId layerId,
float corner);
80 virtual void setCloudLayerDensity(
DtCloudLayerId layerId,
double density);
81 virtual void setCloudLayerInfiniteFlag(
DtCloudLayerId layerId,
bool infinite);
82 virtual void setCloudLayerRelativeFlag(
DtCloudLayerId layerId,
bool relative);
83 virtual void setCloudLayerFadeAtAltitudeFlag(
DtCloudLayerId layerId,
bool fadeAtAltitude);
84 virtual void setCloudLayerAltitudeIsHATFlag(
DtCloudLayerId layerId,
bool altitudeIsHAT);
106 virtual void removeCloudLayers();
110 virtual void sendCloudLayers();
116 virtual void setCloudLayerEnabled(
DtCloudLayerId layerId,
bool enabled);
120 virtual float getSunAlpha()
const;
123 virtual void setDrawSunAndMoonIntoEnvMap(
bool draw);
127 virtual void setAirTurbidity(
float turbidity);
128 virtual float airTurbidity()
const;
133 virtual void setAmbientAirTemperature(
float temperature);
134 virtual float ambientAirTemperature()
const;
139 virtual void setVisibleDistance(
float distance);
140 virtual float visibleDistance()
const;
145 virtual void setFogHeight(
float meters);
146 virtual float fogHeight()
const;
154 virtual void setFogColor(
const DtVector& color);
155 virtual const osg::Vec4& fogColor()
const;
163 virtual void setFogThresholdDistance(
float distance);
164 virtual float fogThresholdDistance()
const;
169 virtual void setPrecipitationEnabled(
bool enabled);
170 virtual bool precipitationEnabled()
const;
175 virtual void setPrecipitationVisibilityEffectsEnabled(
bool enabled);
176 virtual bool precipitationVisibilityEffectsEnabled()
const;
182 virtual void setPrecipitationType(
int type);
183 virtual int precipitationType()
const;
188 virtual void setPrecipitationIntensity(
float intensity);
189 virtual float precipitationIntensity()
const;
193 virtual void setCloudLayerPositionAndOrientation(
DtCloudLayerId layerId,
const DtVector& position,
float orientation);
197 virtual void setWindSpeed(
float metersPerSecond);
198 virtual float windSpeed()
const;
203 virtual void setWindDirection(
float radians);
205 virtual float windDirection()
const;
208 virtual float windDirectionInDegrees()
const;
213 virtual void setMinimumWindAltitude(
float alt);
214 virtual float minimumWindAltitude()
const;
219 virtual void setMaximumWindAltitude(
float alt);
220 virtual float maximumWindAltitude()
const;
225 virtual void setLensFlare(
bool enabled);
226 virtual bool lensFlare()
const;
231 virtual void setCrepuscularRays(
bool enabled);
232 virtual bool crepuscularRays()
const;
237 virtual void setRainSplashEffect();
241 void setGenerateCubeMaps(
bool enabled);
249 GLuint getPrimaryCubeMap()
const;
257 void clearFogOverrideForAllCameras(
void);
260 void setHorizonColor(
const osg::Vec4f& horizonColor);
263 void clearHorizonColor();
266 void updatePrecipitation();
281 bool shouldActivateRaindrops()
const;
289 void updatePrecipitationOSG();
290 void updatePrecipitationSilverLining();
292 void on_coordinateSystemChanged(
const std::string& type);
294 void applyCurrentSettings();
298 virtual void sendCloudLayer(
const CloudLayer& layer);
osg::ref_ptr< DtGroundFogGroup > myGroundFogGroup
Definition: DtOsgSkyObject.h:307
float myWindDirection
Definition: DtOsgSkyObject.h:323
float mySavedVisibility
Definition: DtOsgSkyObject.h:329
bool myPrecipitationEnabled
Definition: DtOsgSkyObject.h:313
Contains makVrv::DtGroundFogGroup class.
float myAirTemperature
Definition: DtOsgSkyObject.h:317
osg::ref_ptr< osg::TextureCubeMap > myDefaultCubeMap
Definition: DtOsgSkyObject.h:334
bool aboveWater()
Definition: DtOsgSkyObject.h:285
osg::ref_ptr< osgParticle::PrecipitationEffect > myPrecipitationEffect
Definition: DtOsgSkyObject.h:312
int myPrecipitationEffectType
Definition: DtOsgSkyObject.h:314
Precipitation effect that only displays in 3d modes (to avoid strange effects in 2d mode) ...
Definition: DtOsgSkyObject.h:30
float myAirTurbidity
Definition: DtOsgSkyObject.h:316
A group node which serves as a root for weather layers.
Definition: DtWeatherLayerGroup.h:47
The base sky object.
Definition: DtSkyObject.h:29
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Definition: featureContext.h:37
osg::ref_ptr< DtWeatherLayerGroup > myWeatherLayerGroup
Definition: DtOsgSkyObject.h:308
unsigned int GLuint
Definition: DtGlTextureBufferObject.h:17
An OSG implementation of the sky.
Definition: DtOsgSkyObject.h:46
DtVector myLocation
Definition: DtOsgSkyObject.h:310
A group node which adds a silver-lining sky and will light all Children with the proper lighting para...
Definition: DtSilverliningGroup.h:63
Definition: DtSkyObject.h:36
Contains makVrv::DtSkyObject class.
float myVisibleDistance
Definition: DtOsgSkyObject.h:318
float myWindAltMinimum
Definition: DtOsgSkyObject.h:324
boost::unordered_map< DtCloudLayerId, CloudLayer > CloudLayerMap
Definition: DtOsgSkyObject.h:302
bool myLensFlareEnabled
Definition: DtOsgSkyObject.h:326
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
float myFogHeight
Definition: DtOsgSkyObject.h:319
float myWindSpeed
Definition: DtOsgSkyObject.h:322
virtual const char * libraryName() const
Definition: DtOsgSkyObject.h:37
A group node which serves as a root for patchy ground fog areas, and effects in addition to infinite ...
Definition: DtGroundFogGroup.h:47
Contains makVrv::DtWeatherLayerGroup class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
bool myCrepuscularRaysEnabled
Definition: DtOsgSkyObject.h:327
bool myPrecipitationVisibilityEffects
Definition: DtOsgSkyObject.h:331
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
bool myVisibilitySaved
Definition: DtOsgSkyObject.h:328
virtual bool isSameKindAs(const osg::Object *obj) const
Definition: DtOsgSkyObject.h:39
float myFogThreshold
Definition: DtOsgSkyObject.h:321
osg::ref_ptr< DtSilverliningGroup > mySilverliningGroup
Definition: DtOsgSkyObject.h:306
Base class to provide boost signal/slot management.
virtual const char * className() const
Definition: DtOsgSkyObject.h:38
bool myAboveWater
Definition: DtOsgSkyObject.h:330
DtUniqueID myHailLayerId
Definition: DtOsgSkyObject.h:309
long long DtCloudLayerId
Definition: DtCloudLayer.h:26
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
void setAboveWater(bool value)
needed for god ray generation
Definition: DtOsgSkyObject.h:284
float myWindAltMaximum
Definition: DtOsgSkyObject.h:325
DtSignalConnectionManager mySignals
Definition: DtOsgSkyObject.h:305
DtDe & myDe
Definition: DtOsgSkyObject.h:304
float myPrecipitationIntensity
Definition: DtOsgSkyObject.h:315
Contains makVrv::DtSilverliningGroup class.
CloudLayerMap myCloudLayerMap
Definition: DtOsgSkyObject.h:311
osg::Vec4f myFogColor
Definition: DtOsgSkyObject.h:320
Definition: vrfObjectManipulationHandlerBaseClass.h:67