]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/sky/sky.hxx
Work around apparent OSG 3.2.0 normal binding bug.
[simgear.git] / simgear / scene / sky / sky.hxx
index 08fddd6fe0f346d2caea48993f0dc293819c2e43..df325884f7dd003cfbebfd6bdb7f682ce4658ec9 100644 (file)
@@ -34,6 +34,7 @@
 #endif
 
 #include <simgear/compiler.h>
+#include <simgear/math/sg_random.h>
 #include <simgear/misc/sg_path.hxx>
 #include <simgear/props/props.hxx>
 
 #include <simgear/scene/sky/oursun.hxx>
 #include <simgear/scene/sky/stars.hxx>
 
+namespace simgear {
+class SGReaderWriterOptions;
+}
+
 typedef struct {
     SGVec3d pos;
     SGGeod pos_geod;
@@ -232,7 +237,6 @@ private:
     float minimum_sky_visibility;
 
     int in_cloud;
-    int cur_layer_pos;
 
     // near cloud visibility state variables
     bool in_puff;
@@ -246,6 +250,9 @@ private:
 
     // 3D cloud density
     double clouds_3d_density;
+    
+    // RNG seed
+    mt seed;
 
 public:
 
@@ -272,7 +279,8 @@ public:
      */
     void build( double h_radius_m, double v_radius_m,
                 double sun_size, double moon_size,
-                const SGEphemeris& eph, SGPropertyNode *property_tree_node );
+                const SGEphemeris& eph, SGPropertyNode *property_tree_node,
+                simgear::SGReaderWriterOptions* options);
 
     /**
      * Repaint the sky components based on current value of sun_angle,
@@ -423,66 +431,66 @@ public:
     }
 
     /** Get 3D cloud density */
-    virtual double get_3dCloudDensity() const;
+    double get_3dCloudDensity() const;
 
     /** Set 3D cloud density 
      * @param density 3D cloud density
      */
-    virtual void set_3dCloudDensity(double density);
+    void set_3dCloudDensity(double density);
 
     /** Get 3D cloud visibility range*/
-    virtual float get_3dCloudVisRange() const;
+    float get_3dCloudVisRange() const;
 
     /** Set 3D cloud visibility range
      * @param density 3D cloud visibility range
      */
-    virtual void set_3dCloudVisRange(float vis);
+    void set_3dCloudVisRange(float vis);
 
     /** Get 3D cloud impostor distance*/
-    virtual float get_3dCloudImpostorDistance() const;
+    float get_3dCloudImpostorDistance() const;
 
     /** Set 3D cloud impostor distance
      * @param density 3D cloud impostor distance
      */
-    virtual void set_3dCloudImpostorDistance(float vis);
+    void set_3dCloudImpostorDistance(float vis);
 
     /** Get 3D cloud LoD1 Range*/
-    virtual float get_3dCloudLoD1Range() const;
+    float get_3dCloudLoD1Range() const;
 
     /** Set 3D cloud LoD1 Range
      * @param vis LoD1 Range
      */
-    virtual void set_3dCloudLoD1Range(float vis);
+    void set_3dCloudLoD1Range(float vis);
 
     /** Get 3D cloud LoD2 Range*/
-    virtual float get_3dCloudLoD2Range() const;
+    float get_3dCloudLoD2Range() const;
 
     /** Set 3D cloud LoD2 Range
      * @param vis LoD2 Range
      */
-    virtual void set_3dCloudLoD2Range(float vis);
+    void set_3dCloudLoD2Range(float vis);
 
     /** Get 3D cloud impostor usage */
-    virtual bool get_3dCloudUseImpostors() const;
+    bool get_3dCloudUseImpostors() const;
 
     /** Set 3D cloud impostor usage
      * @param wrap whether use impostors for 3D clouds
      */
-    virtual void set_3dCloudUseImpostors(bool imp);
+    void set_3dCloudUseImpostors(bool imp);
 
     /** Get 3D cloud wrapping */
-    virtual bool get_3dCloudWrap() const;
+    bool get_3dCloudWrap() const;
 
     /** Set 3D cloud wrapping
      * @param wrap whether to wrap 3D clouds
      */
-    virtual void set_3dCloudWrap(bool wrap);
+    void set_3dCloudWrap(bool wrap);
 
 
     /** Get minimum sky visibility */
-    virtual float get_minimum_sky_visibility() const;
+    float get_minimum_sky_visibility() const;
 
     /** Set minimum sky visibility */
-    virtual void set_minimum_sky_visibility( float value );
+    void set_minimum_sky_visibility( float value );
 };
 #endif // _SG_SKY_HXX