]> git.mxchange.org Git - simgear.git/commitdiff
Remove an extern SGSky *thesky reference that isn't used in the code anyway.
authorcurt <curt>
Tue, 31 Jul 2007 01:21:21 +0000 (01:21 +0000)
committercurt <curt>
Tue, 31 Jul 2007 01:21:21 +0000 (01:21 +0000)
The original code forced a dependency in SimGear back to something that is
defined globaly in FlightGear, not a great strategy for a library with some
"general purpose" intentions.

simgear/scene/sky/cloudfield.cxx
simgear/scene/sky/cloudfield.hxx

index 8a67926f1fd28a117dc3ea2e0812886d78053a59..8d83037d918d1d9a7b5565e408bb6b7aacca1cbb 100644 (file)
@@ -58,8 +58,6 @@ SG_USING_STD(vector);
 #include <ieeefp.h>
 #endif
 
-extern SGSky *thesky;
-
 static list_of_culledCloud inViewClouds;
 
 // visibility distance for clouds in meters
@@ -396,7 +394,13 @@ void SGCloudField::cullClouds(sgVec3 eyePos, sgMat4 mat) {
 // because no field can have an infinite size (and we don't want to reach his border)
 // we draw this field and adjacent fields.
 // adjacent fields are not real, its the same field displaced by some offset
-void SGCloudField::Render(void) {
+void SGCloudField::Render(float *sun_color) {
+    // sun_color used to depend on an extern SGSky *thesky definition
+    // above.  However, this is bad form for a library and it's much
+    // more clean to just pass in the needed value.  For reference, here is
+    // the old way that sun_color was fetched ...
+    // float *sun_color = thesky->get_sun_color();
+
 #if 0
     sgVec3 eyePos;
        double relx, rely;
@@ -437,7 +441,6 @@ void SGCloudField::Render(void) {
        sgScaleVec3 ( SGNewCloud::ambLight, ambient , 1.1f);
        // trying something else : clouds are more yellow/red at dawn/dusk
        // and added a bit of blue ambient
-    float *sun_color = thesky->get_sun_color();
        sgScaleVec3 ( SGNewCloud::sunlight, sun_color , 0.4f);
        SGNewCloud::ambLight[2] += 0.1f;
 
index 08d6c4138677b5b9cd86023a0808ea51dc4276c5..5016c6329f3bba01622d770249757aa84cae695b 100644 (file)
@@ -94,7 +94,7 @@ public:
        void buildTestLayer(void);
 
        // Render a cloud field
-       void Render(void);
+       void Render( float *sun_color );
 
        // reposition the cloud layer at the specified origin and orientation
        void reposition( sgVec3 p, sgVec3 up, double lon, double lat, double alt, double dt, float direction, float speed);