+ /** Read the config from the precipitation rendering config properties.
+ * @param precip_rendering_cfgNode "/sim/rendering/precipitation" in fg
+ * Set from whatever info present in the
+ * subnodes passed, substituting hardwired defaults for missing fields.
+ * If NULL is given, do nothing.
+ */
+ void config(const class SGPropertyNode* precip_rendering_cfgNode);
+
+ /**
+ * Forward a few states used for renderings.
+ */
+ void startOfFrame( sgVec3 p, sgVec3 up, double lon, double lat, double alt, double delta_time);
+
+ void endOfFrame(void);
+
+#if 0
+ /**
+ * Whenever a cloud is drawn we check his 'impact' on the environment.
+ * @param heading direction of cloud in radians
+ * @param alt asl of cloud in meters
+ * @param radius radius of cloud in meters
+ * @param family cloud family
+ * @param dist squared dist to cloud in meters
+ */
+ void callback_cloud(float heading, float alt, float radius, int family, float dist, int cloudId);
+#endif
+ void drawRain(double pitch, double roll, double heading, double hspeed, double rain_norm);
+ /**
+ * Draw rain or snow precipitation around the viewer.
+ * @param rain_norm rain normalized intensity given by metar class
+ * @param snow_norm snow normalized intensity given by metar class
+ * @param hail_norm hail normalized intensity given by metar class
+ * @param pitch pitch rotation of viewer
+ * @param roll roll rotation of viewer
+ * @param hspeed moving horizontal speed of viewer in kt
+ */
+ void drawPrecipitation(double rain_norm, double snow_norm, double hail_norm,
+ double pitch, double roll, double heading, double hspeed);
+
+ /**
+ * Draw the lightnings spawned by cumulo nimbus.
+ */
+ void drawLightning(void);
+
+ /**
+ * Forward the fog color used by the rain rendering.
+ * @param adj_fog_color color of the fog
+ */
+ void setLight(sgVec4 adj_fog_color);
+
+ // this can be queried to add some turbulence for example
+ bool is_view_in_cloud(void) const;
+ void set_view_in_cloud(bool incloud);
+ double get_cloud_turbulence(void) const;
+