]> git.mxchange.org Git - simgear.git/commitdiff
Make the max. opacity of a 2d cloud settable
authorTorsten Dreyer <Torsten@t3r.de>
Thu, 9 Dec 2010 08:06:40 +0000 (09:06 +0100)
committerTorsten Dreyer <Torsten@t3r.de>
Thu, 9 Dec 2010 08:06:40 +0000 (09:06 +0100)
simgear/scene/sky/cloud.cxx
simgear/scene/sky/cloud.hxx

index aa5e44c0ac8abd6304dc1a03dee16c4873211e88..5c62bd05c06d3653ed41c2a253e66970a3598eb6 100644 (file)
@@ -18,7 +18,6 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 //
-// $Id$
 
 #ifdef HAVE_CONFIG_H
 #  include <simgear_config.h>
@@ -152,7 +151,9 @@ SGCloudLayer::SGCloudLayer( const string &tex_path ) :
     layer_coverage(SG_CLOUD_CLEAR),
     scale(4000.0),
     speed(0.0),
-    direction(0.0)
+    direction(0.0),
+    last_course(0.0),
+    max_alpha(1.0)
 {
     // XXX
     // Render bottoms before the rest of transparent objects (rendered
index 75356450efdc39fb14063396ab278284f8c2017f..fa65a6adedcc05cbfef8d3bde5c8b1afe8f20a02 100644 (file)
@@ -184,10 +184,20 @@ public:
      */
     inline void setAlpha( float alpha ) {
         if ( alpha < 0.0 ) { alpha = 0.0; }
-        if ( alpha > 1.0 ) { alpha = 1.0; }
+        if ( alpha > max_alpha ) { alpha = max_alpha; }
         cloud_alpha = alpha;
     }
 
+    inline void setMaxAlpha( float alpha ) {
+        if ( alpha < 0.0 ) { alpha = 0.0; }
+        if ( alpha > 1.0 ) { alpha = 1.0; }
+        max_alpha = alpha;
+    }
+
+    inline float getMaxAlpha() const {
+        return max_alpha;
+    }
+
     /** build the cloud object */
     void rebuild();
 
@@ -257,6 +267,7 @@ private:
     // double xoff, yoff;
     SGGeod last_pos;
     double last_course;
+    double max_alpha;
 
     osg::Vec2 base;