]> git.mxchange.org Git - simgear.git/blobdiff - simgear/environment/visual_enviro.hxx
Random object support from Stuart Buchanan
[simgear.git] / simgear / environment / visual_enviro.hxx
index cdb4655a81131e442830d6038b32903b717c1e8f..4ee2d7f39ec6f6fb65ad0094512670f0ab9bfb47 100644 (file)
@@ -22,6 +22,8 @@
 #ifndef _VISUAL_ENVIRO_HXX
 #define _VISUAL_ENVIRO_HXX
 
+#include <plib/sg.h>
+
 #include <simgear/compiler.h>
 #include STL_STRING
 #include <vector>
@@ -38,7 +40,8 @@ class SGSoundMgr;
  */
 class SGWxRadarEcho {
 public:
-       SGWxRadarEcho(float _heading, float _alt, float _radius, float _dist, double _LWC, bool _lightning, int _cloudId) :
+       SGWxRadarEcho(float _heading, float _alt, float _radius, float _dist,
+                       double _LWC, bool _lightning, int _cloudId ) :
          heading( _heading ),
          alt ( _alt ),
          radius ( _radius ),
@@ -54,7 +57,7 @@ public:
        /** reflectivity converted to liquid water content. */
        double LWC;
        /** if true then this data is for a lightning else it is for water echo. */
-       bool   lightning;
+       bool lightning;
        /** Unique identifier of cloud */
        int cloudId;
 };
@@ -90,11 +93,31 @@ private:
 
        /** a list of all the radar echo. */
        list_of_SGWxRadarEcho radarEcho;
+       static sgVec3 min_light;
+       static SGfloat streak_bright_nearmost_layer,
+                                  streak_bright_farmost_layer,
+                                  streak_period_max,
+                                  streak_period_change_per_kt,
+                                  streak_period_min,
+                                  streak_length_min,
+                                  streak_length_change_per_kt,
+                                  streak_length_max;
+       static int streak_count_min, streak_count_max;
+       static SGfloat cone_base_radius,
+                                  cone_height;
 
 public:
        SGEnviro();
        ~SGEnviro();
 
+       /** 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.
      */