#endif
#include <GL/glut.h>
-#include <simgear/xgl/xgl.h>
+#include <GL/gl.h>
#include <simgear/compiler.h>
-#ifdef FG_MATH_EXCEPTION_CLASH
+#ifdef SG_MATH_EXCEPTION_CLASH
# define exception c_exception
#endif
-#ifdef FG_HAVE_STD_INCLUDES
+#ifdef SG_HAVE_STD_INCLUDES
# include <cmath>
#else
# include <math.h>
#endif
#include <string>
-FG_USING_STD(string);
+SG_USING_STD(string);
#include <simgear/constants.h>
#include <simgear/debug/logstream.hxx>
#include <simgear/math/interpolater.hxx>
#include <simgear/math/polar3d.hxx>
-#include <simgear/misc/fgpath.hxx>
+#include <simgear/misc/sg_path.hxx>
#include <Aircraft/aircraft.hxx>
-#include <Main/options.hxx>
-#include <Main/views.hxx>
+#include <Main/globals.hxx>
#include "light.hxx"
#include "sunpos.hxx"
// initialize lighting tables
void fgLIGHT::Init( void ) {
- FG_LOG( FG_EVENT, FG_INFO,
+ SG_LOG( SG_EVENT, SG_INFO,
"Initializing Lighting interpolation tables." );
// build the path name to the ambient lookup table
- FGPath path( current_options.get_fg_root() );
- FGPath ambient = path;
+ SGPath path( globals->get_fg_root() );
+ SGPath ambient = path;
ambient.append( "Lighting/ambient" );
- FGPath diffuse = path;
+ SGPath diffuse = path;
diffuse.append( "Lighting/diffuse" );
- FGPath sky = path;
+ SGPath sky = path;
sky.append( "Lighting/sky" );
// initialize ambient table
- ambient_tbl = new fgINTERPTABLE( ambient.str() );
+ ambient_tbl = new SGInterpTable( ambient.str() );
// initialize diffuse table
- diffuse_tbl = new fgINTERPTABLE( diffuse.str() );
+ diffuse_tbl = new SGInterpTable( diffuse.str() );
// initialize sky table
- sky_tbl = new fgINTERPTABLE( sky.str() );
+ sky_tbl = new SGInterpTable( sky.str() );
}
f = current_aircraft.fdm_state;
- FG_LOG( FG_EVENT, FG_INFO, "Updating light parameters." );
+ SG_LOG( SG_EVENT, SG_INFO, "Updating light parameters." );
// calculate lighting parameters based on sun's relative angle to
// local up
- deg = sun_angle * RAD_TO_DEG;
- FG_LOG( FG_EVENT, FG_INFO, " Sun angle = " << deg );
+ deg = sun_angle * SGD_RADIANS_TO_DEGREES;
+ SG_LOG( SG_EVENT, SG_INFO, " Sun angle = " << deg );
ambient = ambient_tbl->interpolate( deg );
diffuse = diffuse_tbl->interpolate( deg );
sky_brightness = sky_tbl->interpolate( deg );
- FG_LOG( FG_EVENT, FG_INFO,
+ SG_LOG( SG_EVENT, SG_INFO,
" ambient = " << ambient << " diffuse = " << diffuse
<< " sky = " << sky_brightness );
f = current_aircraft.fdm_state;
- FG_LOG( FG_EVENT, FG_DEBUG, "Updating adjusted fog parameters." );
+ SG_LOG( SG_EVENT, SG_DEBUG, "Updating adjusted fog parameters." );
// set fog color (we'll try to match the sunset color in the
// direction we are looking
// first determine the difference between our view angle and local
// direction to the sun
- rotation = -(sun_rotation + FG_PI)
- - (f->get_Psi() - current_view.get_view_offset());
+ rotation = -(sun_rotation + SGD_PI)
+ - (f->get_Psi() - globals->get_current_view()->get_view_offset());
+ if ( globals->get_current_view()->get_reverse_view_offset() ) {
+ rotation += SGD_PI;
+ }
while ( rotation < 0 ) {
- rotation += FG_2PI;
+ rotation += SGD_2PI;
}
- while ( rotation > FG_2PI ) {
- rotation -= FG_2PI;
+ while ( rotation > SGD_2PI ) {
+ rotation -= SGD_2PI;
}
- rotation *= RAD_TO_DEG;
- // fgPrintf( FG_EVENT, FG_INFO,
+ rotation *= SGD_RADIANS_TO_DEGREES;
+ // fgPrintf( SG_EVENT, SG_INFO,
// " View to sun difference in degrees = %.2f\n", rotation);
// next check if we are in a sunset/sunrise situation
- sun_angle_deg = sun_angle * RAD_TO_DEG;
+ sun_angle_deg = sun_angle * SGD_RADIANS_TO_DEGREES;
if ( (sun_angle_deg > 80.0) && (sun_angle_deg < 100.0) ) {
/* 0.0 - 0.6 */
param1[0] = (10.0 - fabs(90.0 - sun_angle_deg)) / 20.0;