00001 00027 #ifndef _PRECIPITATION_HXX 00028 #define _PRECIPITATION_HXX 00029 00030 #include <osg/Group> 00031 #include <osg/Referenced> 00032 #include <osgParticle/PrecipitationEffect> 00033 00034 00035 class SGPrecipitation : public osg::Referenced 00036 { 00037 private: 00038 bool _freeze; 00039 00040 float _snow_intensity; 00041 float _rain_intensity; 00042 00043 int _wind_dir; 00044 osg::Vec3 _wind_vec; 00045 00046 osg::ref_ptr<osgParticle::PrecipitationEffect> _precipitationEffect; 00047 00048 public: 00049 SGPrecipitation(); 00050 virtual ~SGPrecipitation() {} 00051 osg::Group* build(void); 00052 bool update(void); 00053 00054 void setWindProperty(double, double); 00055 void setFreezing(bool); 00056 void setRainIntensity(float); 00057 void setSnowIntensity(float); 00058 }; 00059 00060 #endif