15 #include <osgParticle/PrecipitationEffect>
20 class DtWaterOnScreen;
33 virtual const char*
className()
const {
return "DtPrecipitationEffect"; }
36 virtual void traverse(osg::NodeVisitor& nv);
54 virtual void setLocation(
const DtVector& location);
58 virtual const DtVector& location()
const;
68 virtual void addCloudLayer(
int deckType,
const DtVector& location,
69 const DtVector& bounds,
double density,
bool infinite,
bool relative);
81 virtual bool cloudLayer(
int index,
int& deckType,
DtVector& location,
82 DtVector& bounds,
double& density,
bool& infinite,
bool& relative)
const;
85 virtual int cloudLayerCount()
const;
88 virtual void removeCloudLayer(
int index);
91 virtual void removeCloudLayers();
95 virtual void sendCloudLayers();
98 virtual void setCloudLayerEnabled(
int index,
bool enabled);
102 virtual float getSunAlpha()
const;
106 virtual void setAirTurbidity(
float turbidity);
107 virtual float airTurbidity()
const;
112 virtual void setAmbientAirTemperature(
float temperature);
113 virtual float ambientAirTemperature()
const;
118 virtual void setVisibleDistance(
float distance);
119 virtual float visibleDistance()
const;
124 virtual void setFogHeight(
float meters);
125 virtual float fogHeight()
const;
133 virtual void setFogColor(
const DtVector& color);
134 virtual const osg::Vec4& fogColor()
const;
142 virtual void setFogThresholdDistance(
float distance);
143 virtual float fogThresholdDistance()
const;
148 virtual void setPrecipitationEnabled(
bool enabled);
149 virtual bool precipitationEnabled()
const;
154 virtual void setPrecipitationVisibilityEffectsEnabled(
bool enabled);
155 virtual bool precipitationVisibilityEffectsEnabled()
const;
161 virtual void setPrecipitationType(
int type);
162 virtual int precipitationType()
const;
167 virtual void setPrecipitationIntensity(
float intensity);
168 virtual float precipitationIntensity()
const;
172 virtual void setCloudLayerPosition(
173 int index,
double xCoord,
double yCoord);
177 virtual void setWindSpeed(
float metersPerSecond);
178 virtual float windSpeed()
const;
183 virtual void setWindDirection(
float radians);
184 virtual float windDirection()
const;
189 virtual void setMinimumWindAltitude(
float alt);
190 virtual float minimumWindAltitude()
const;
195 virtual void setMaximumWindAltitude(
float alt);
196 virtual float maximumWindAltitude()
const;
201 virtual void setLensFlare(
bool enabled);
202 virtual bool lensFlare()
const;
207 virtual void setCrepuscularRays(
bool enabled);
208 virtual bool crepuscularRays()
const;
213 virtual void setRainSplashEffect();
217 void setGenerateCubeMaps(
bool enabled);
221 GLuint getCubeMap(
const osg::ref_ptr<osg::Camera> camera)
const;
225 GLuint getPrimaryCubeMap()
const;
228 void setFogOverride(osg::ref_ptr<osg::Camera> camera,
const osg::Vec4f& fogColor,
float fogDensity);
231 void clearFogOverride(osg::ref_ptr<osg::Camera> camera);
233 void clearFogOverrideForAllCameras(
void);
236 void setHorizonColor(
const osg::Vec4f& horizonColor);
239 void clearHorizonColor();
242 void updatePrecipitation();
247 void enableLighting(osg::ref_ptr<osg::Camera> camera,
bool enable);
251 bool shouldActivateRaindrops()
const;
255 void updatePrecipitationOSG();
256 void updatePrecipitationSilverLining();
258 void on_coordinateSystemChanged(
const std::string& type);
260 void applyCurrentSettings();
269 bool infinite=
false,
bool relative=
false)
271 , myLocation(location)
274 , myInfinite(infinite)
275 , myRelative(relative)