#include <GL/glut.h>
#include <XGL/xgl.h>
+#ifdef __BORLANDC__
+# define exception c_exception
+#endif
+#include <math.h>
+
#include <string.h>
#include <Aircraft/aircraft.hxx>
-#include <Debug/fg_debug.h>
+#include <Debug/logstream.hxx>
#include <Include/fg_constants.h>
#include <Main/options.hxx>
#include <Main/views.hxx>
void fgLIGHT::Init( void ) {
string path, ambient, diffuse, sky;
- fgPrintf( FG_EVENT, FG_INFO,
- "Initializing Lighting interpolation tables.\n" );
+ FG_LOG( FG_EVENT, FG_INFO,
+ "Initializing Lighting interpolation tables." );
// build the path name to the ambient lookup table
path = current_options.get_fg_root();
// update lighting parameters based on current sun position
void fgLIGHT::Update( void ) {
- fgFLIGHT *f;
+ FGState *f;
fgTIME *t;
fgVIEW *v;
// if the 4th field is 0.0, this specifies a direction ...
GLfloat base_fog_color[4] = {0.90, 0.90, 1.00, 1.0};
double deg, ambient, diffuse, sky_brightness;
- f = current_aircraft.flight;
+ f = current_aircraft.fdm_state;
t = &cur_time_params;
v = ¤t_view;
- fgPrintf( FG_EVENT, FG_INFO, "Updating light parameters.\n" );
+ FG_LOG( FG_EVENT, FG_INFO, "Updating light parameters." );
// calculate lighting parameters based on sun's relative angle to
// local up
deg = sun_angle * 180.0 / FG_PI;
- fgPrintf( FG_EVENT, FG_INFO, " Sun angle = %.2f.\n", deg );
+ FG_LOG( FG_EVENT, FG_INFO, " Sun angle = " << deg );
ambient = ambient_tbl->interpolate( deg );
diffuse = diffuse_tbl->interpolate( deg );
sky_brightness = sky_tbl->interpolate( deg );
- fgPrintf( FG_EVENT, FG_INFO,
- " ambient = %.2f diffuse = %.2f sky = %.2f\n",
- ambient, diffuse, sky_brightness );
+ FG_LOG( FG_EVENT, FG_INFO,
+ " ambient = " << ambient << " diffuse = " << diffuse
+ << " sky = " << sky_brightness );
// sky_brightness = 0.15; // used to force a dark sky (when testing)
// calculate fog color adjusted for sunrise/sunset effects
void fgLIGHT::UpdateAdjFog( void ) {
- fgFLIGHT *f;
+ FGState *f;
fgVIEW *v;
double sun_angle_deg, rotation, param1[3], param2[3];
- f = current_aircraft.flight;
+ f = current_aircraft.fdm_state;
v = ¤t_view;
- fgPrintf( FG_EVENT, FG_DEBUG, "Updating adjusted fog parameters.\n" );
+ FG_LOG( FG_EVENT, FG_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) - (FG_Psi - v->view_offset) ;
+ rotation = -(sun_rotation + FG_PI) - (f->get_Psi() - v->view_offset) ;
while ( rotation < 0 ) {
rotation += FG_2PI;
}
sun_angle_deg = sun_angle * RAD_TO_DEG;
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)) / 10.0;
- param1[1] = (10.0 - fabs(90.0 - sun_angle_deg)) / 50.0;
- param1[2] = 0.0;
+ param1[0] = (10.0 - fabs(90.0 - sun_angle_deg)) / 20.0;
+ param1[1] = (10.0 - fabs(90.0 - sun_angle_deg)) / 40.0;
+ param2[2] = -(10.0 - fabs(90.0 - sun_angle)) / 30.0;
} else {
param1[0] = param1[1] = param1[2] = 0.0;
}
// $Log$
+// Revision 1.23 1998/12/05 15:54:30 curt
+// Renamed class fgFLIGHT to class FGState as per request by JSB.
+//
+// Revision 1.22 1998/12/03 01:18:42 curt
+// Converted fgFLIGHT to a class.
+//
+// Revision 1.21 1998/11/23 21:49:09 curt
+// Borland portability tweaks.
+//
+// Revision 1.20 1998/11/06 21:18:27 curt
+// Converted to new logstream debugging facility. This allows release
+// builds with no messages at all (and no performance impact) by using
+// the -DFG_NDEBUG flag.
+//
+// Revision 1.19 1998/10/20 18:41:53 curt
+// Tweaked sunrise/sunset colors.
+//
// Revision 1.18 1998/10/17 01:34:30 curt
// C++ ifying ...
//