15 #include <osgParticle/PrecipitationEffect>
16 #include <osg/TextureCubeMap>
21 class DtWaterOnScreen;
34 virtual const char*
className()
const {
return "DtPrecipitationEffect"; }
37 virtual void traverse(osg::NodeVisitor& nv);
55 virtual void setLocation(
const DtVector& location);
59 virtual const DtVector& location()
const;
69 virtual void addCloudLayer(
int deckType,
const DtVector& location,
70 const DtVector& bounds,
double density,
bool infinite,
bool relative);
82 virtual bool cloudLayer(
int index,
int& deckType,
DtVector& location,
83 DtVector& bounds,
double& density,
bool& infinite,
bool& relative)
const;
86 virtual int cloudLayerCount()
const;
89 virtual void removeCloudLayer(
int index);
92 virtual void removeCloudLayers();
96 virtual void sendCloudLayers();
99 virtual void setCloudLayerEnabled(
int index,
bool enabled);
103 virtual float getSunAlpha()
const;
106 virtual void setDrawSunAndMoonIntoEnvMap(
bool draw);
110 virtual void setAirTurbidity(
float turbidity);
111 virtual float airTurbidity()
const;
116 virtual void setAmbientAirTemperature(
float temperature);
117 virtual float ambientAirTemperature()
const;
122 virtual void setVisibleDistance(
float distance);
123 virtual float visibleDistance()
const;
128 virtual void setFogHeight(
float meters);
129 virtual float fogHeight()
const;
137 virtual void setFogColor(
const DtVector& color);
138 virtual const osg::Vec4& fogColor()
const;
146 virtual void setFogThresholdDistance(
float distance);
147 virtual float fogThresholdDistance()
const;
152 virtual void setPrecipitationEnabled(
bool enabled);
153 virtual bool precipitationEnabled()
const;
158 virtual void setPrecipitationVisibilityEffectsEnabled(
bool enabled);
159 virtual bool precipitationVisibilityEffectsEnabled()
const;
165 virtual void setPrecipitationType(
int type);
166 virtual int precipitationType()
const;
171 virtual void setPrecipitationIntensity(
float intensity);
172 virtual float precipitationIntensity()
const;
176 virtual void setCloudLayerPosition(
177 int index,
double xCoord,
double yCoord);
181 virtual void setWindSpeed(
float metersPerSecond);
182 virtual float windSpeed()
const;
187 virtual void setWindDirection(
float radians);
189 virtual float windDirection()
const;
192 virtual float windDirectionInDegrees()
const;
197 virtual void setMinimumWindAltitude(
float alt);
198 virtual float minimumWindAltitude()
const;
203 virtual void setMaximumWindAltitude(
float alt);
204 virtual float maximumWindAltitude()
const;
209 virtual void setLensFlare(
bool enabled);
210 virtual bool lensFlare()
const;
215 virtual void setCrepuscularRays(
bool enabled);
216 virtual bool crepuscularRays()
const;
221 virtual void setRainSplashEffect();
225 void setGenerateCubeMaps(
bool enabled);
229 GLuint getCubeMap(
const osg::ref_ptr<osg::Camera> camera,
const osg::State &state)
const;
233 GLuint getPrimaryCubeMap()
const;
236 void setFogOverride(osg::ref_ptr<osg::Camera> camera,
const osg::Vec4f& fogColor,
float fogDensity);
239 void clearFogOverride(osg::ref_ptr<osg::Camera> camera);
241 void clearFogOverrideForAllCameras(
void);
244 void setHorizonColor(
const osg::Vec4f& horizonColor);
247 void clearHorizonColor();
250 void updatePrecipitation();
255 void enableLighting(osg::ref_ptr<osg::Camera> camera,
bool enable);
259 bool shouldActivateRaindrops()
const;
263 void updatePrecipitationOSG();
264 void updatePrecipitationSilverLining();
266 void on_coordinateSystemChanged(
const std::string& type);
268 void applyCurrentSettings();
277 bool infinite=
false,
bool relative=
false)
279 , myLocation(location)
282 , myInfinite(infinite)
283 , myRelative(relative)