#include <GL/glut.h>
#include <XGL/xgl.h>
-#include <string.h>
+#include "Include/compiler.h"
+
+#ifdef FG_MATH_EXCEPTION_CLASH
+# define exception c_exception
+#endif
+
+#ifdef FG_HAVE_STD_INCLUDES
+# include <cmath>
+#else
+# include <math.h>
+#endif
+
+#include <string>
+FG_USING_STD(string);
#include <Aircraft/aircraft.hxx>
#include <Debug/logstream.hxx>
// initialize lighting tables
void fgLIGHT::Init( void ) {
- string path, ambient, diffuse, sky;
-
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();
- ambient = path + "/Lighting/ambient";
- diffuse = path + "/Lighting/diffuse";
- sky = path + "/Lighting/sky";
+ string path = current_options.get_fg_root();
+ string ambient = path + "/Lighting/ambient";
+ string diffuse = path + "/Lighting/diffuse";
+ string sky = path + "/Lighting/sky";
// initialize ambient table
- ambient_tbl = new fgINTERPTABLE((char *)ambient.c_str());
+ ambient_tbl = new fgINTERPTABLE( ambient );
// initialize diffuse table
- diffuse_tbl = new fgINTERPTABLE((char *)diffuse.c_str());
+ diffuse_tbl = new fgINTERPTABLE( diffuse );
// initialize sky table
- sky_tbl = new fgINTERPTABLE((char *)sky.c_str());
+ sky_tbl = new fgINTERPTABLE( sky );
}
// update lighting parameters based on current sun position
void fgLIGHT::Update( void ) {
- fgFLIGHT *f;
+ FGInterface *f;
fgTIME *t;
- fgVIEW *v;
// if the 4th field is 0.0, this specifies a direction ...
GLfloat white[4] = { 1.0, 1.0, 1.0, 1.0 };
// base sky color
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;
FG_LOG( FG_EVENT, FG_INFO, "Updating light parameters." );
// calculate fog color adjusted for sunrise/sunset effects
void fgLIGHT::UpdateAdjFog( void ) {
- fgFLIGHT *f;
- fgVIEW *v;
+ FGInterface *f;
double sun_angle_deg, rotation, param1[3], param2[3];
- f = current_aircraft.flight;
- v = ¤t_view;
+ f = current_aircraft.fdm_state;
FG_LOG( FG_EVENT, FG_DEBUG, "Updating adjusted fog parameters." );
// 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() - current_view.get_view_offset());
while ( rotation < 0 ) {
rotation += FG_2PI;
}
// $Log$
+// Revision 1.26 1999/02/05 21:29:20 curt
+// Modifications to incorporate Jon S. Berndts flight model code.
+//
+// Revision 1.25 1999/01/07 20:25:36 curt
+// Portability changes and updates from Bernie Bright.
+//
+// Revision 1.24 1998/12/09 18:50:35 curt
+// Converted "class fgVIEW" to "class FGView" and updated to make data
+// members private and make required accessor functions.
+//
+// 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