]> git.mxchange.org Git - flightgear.git/blobdiff - src/Time/light.cxx
Fix line endings
[flightgear.git] / src / Time / light.cxx
index 045e214b7b5bbfccd01082b061b11cb7c805c3dd..e47bc37769fc6b53314a130556b1b18f2d2b9d43 100644 (file)
@@ -3,7 +3,7 @@
 //
 // Written by Curtis Olson, started April 1998.
 //
-// Copyright (C) 1998  Curtis L. Olson  - curt@me.umn.edu
+// Copyright (C) 1998  Curtis L. Olson  - http://www.flightgear.org/~curt
 //
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License as
 #  include <windows.h>
 #endif
 
-#include <GL/gl.h>
-
 #include <simgear/compiler.h>
 
+#include SG_GL_H
+
 #ifdef SG_MATH_EXCEPTION_CLASH
 #  define exception c_exception
 #endif
@@ -44,9 +44,6 @@
 #  include <math.h>
 #endif
 
-#include <string>
-SG_USING_STD(string);
-
 #include <simgear/constants.h>
 #include <simgear/debug/logstream.hxx>
 #include <simgear/math/interpolater.hxx>
@@ -58,10 +55,11 @@ SG_USING_STD(string);
 #include <Main/main.hxx>
 #include <Main/globals.hxx>
 #include <Main/fg_props.hxx>
+#include <Main/renderer.hxx>
 #include <Main/viewer.hxx>
 
 #include "light.hxx"
-#include "sunpos.hxx"
+#include "tmp.hxx"
 
 
 // Constructor
@@ -70,8 +68,8 @@ FGLight::FGLight ()
       _diffuse_tbl( NULL ),
       _specular_tbl( NULL ),
       _sky_tbl( NULL ),
-      _sun_rotation( 0.0 ),
       _prev_sun_angle(-9999.0),
+      _sun_rotation( 0.0 ),
       _dt_total( 0.0 )
 {
 }
@@ -126,7 +124,6 @@ void FGLight::reinit () {
     init();
 
     fgUpdateSunPos();
-    fgUpdateMoonPos();
 
     update_sky_color();
     update_adj_fog_color();
@@ -135,11 +132,29 @@ void FGLight::reinit () {
 void FGLight::bind () {
     SGPropertyNode *prop = globals->get_props();
     prop->tie("/sim/time/sun-angle-rad",SGRawValuePointer<double>(&_sun_angle));
+    prop->tie("/rendering/scene/ambient/red",SGRawValuePointer<float>(&_scene_ambient[0]));
+    prop->tie("/rendering/scene/ambient/green",SGRawValuePointer<float>(&_scene_ambient[1]));
+    prop->tie("/rendering/scene/ambient/blue",SGRawValuePointer<float>(&_scene_ambient[2]));
+    prop->tie("/rendering/scene/diffuse/red",SGRawValuePointer<float>(&_scene_diffuse[0]));
+    prop->tie("/rendering/scene/diffuse/green",SGRawValuePointer<float>(&_scene_diffuse[1]));
+    prop->tie("/rendering/scene/diffuse/blue",SGRawValuePointer<float>(&_scene_diffuse[2]));
+    prop->tie("/rendering/scene/specular/red",SGRawValuePointer<float>(&_scene_specular[0]));
+    prop->tie("/rendering/scene/specular/green",SGRawValuePointer<float>(&_scene_specular[1]));
+    prop->tie("/rendering/scene/specular/blue",SGRawValuePointer<float>(&_scene_specular[2]));
 }
 
 void FGLight::unbind () {
     SGPropertyNode *prop = globals->get_props();
     prop->untie("/sim/time/sun-angle-rad");
+    prop->untie("/rendering/scene/ambient/red");
+    prop->untie("/rendering/scene/ambient/green");
+    prop->untie("/rendering/scene/ambient/blue");
+    prop->untie("/rendering/scene/diffuse/red");
+    prop->untie("/rendering/scene/diffuse/green");
+    prop->untie("/rendering/scene/diffuse/blue");
+    prop->untie("/rendering/scene/specular/red");
+    prop->untie("/rendering/scene/specular/green");
+    prop->untie("/rendering/scene/specular/blue");
 }
 
 
@@ -150,7 +165,6 @@ void FGLight::update( double dt ) {
     if (_dt_total >= 0.5) {
         _dt_total -= 0.5;
         fgUpdateSunPos();
-        fgUpdateMoonPos();
     }
 
     update_adj_fog_color();
@@ -163,24 +177,24 @@ void FGLight::update( double dt ) {
 
 void FGLight::update_sky_color () {
     // if the 4th field is 0.0, this specifies a direction ...
-    const GLfloat white[4]          = { 1.0,  1.0,  1.0,  1.0 };
+    // const GLfloat white[4]          = { 1.0,  1.0,  1.0,  1.0 };
     const GLfloat base_sky_color[4] = { 0.31, 0.43, 0.69, 1.0 };
     const GLfloat base_fog_color[4] = { 0.84, 0.87, 1.0,  1.0 };
 
-    SG_LOG( SG_EVENT, SG_INFO, "Updating light parameters." );
+    SG_LOG( SG_EVENT, SG_DEBUG, "Updating light parameters." );
 
     // calculate lighting parameters based on sun's relative angle to
     // local up
 
     float deg = _sun_angle * SGD_RADIANS_TO_DEGREES;
-    SG_LOG( SG_EVENT, SG_INFO, "  Sun angle = " << deg );
+    SG_LOG( SG_EVENT, SG_DEBUG, "  Sun angle = " << deg );
 
     float ambient = _ambient_tbl->interpolate( deg );
     float diffuse = _diffuse_tbl->interpolate( deg );
     float specular = _specular_tbl->interpolate( deg );
     float sky_brightness = _sky_tbl->interpolate( deg );
 
-    SG_LOG( SG_EVENT, SG_INFO, 
+    SG_LOG( SG_EVENT, SG_DEBUG,
            "  ambient = " << ambient << "  diffuse = " << diffuse 
            << "  specular = " << specular << "  sky = " << sky_brightness );