//
// 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
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// $Id$
# include <windows.h>
#endif
-#include <GL/gl.h>
+#include <simgear/compiler.h>
+
+#include SG_GL_H
#include <plib/sg.h> // plib include
+#include <simgear/structure/subsystem_mgr.hxx>
#include <simgear/math/interpolater.hxx>
#include <simgear/math/point3d.hxx>
// Define a structure containing the global lighting parameters
-class FGLight : public FGSubsystem
+class FGLight : public SGSubsystem
{
private:
double _moon_lon, _moon_gc_lat;
// in cartesian coordiantes
- Point3D _sunpos, _moonpos;
+ SGVec3d _sunpos, _moonpos;
// (in view coordinates)
sgVec4 _sun_vec, _moon_vec;
inline double get_sun_gc_lat () const { return _sun_gc_lat; }
inline void set_sun_gc_lat (double l) { _sun_gc_lat = l; }
- inline Point3D get_sunpos () const { return _sunpos; }
- inline void set_sunpos (Point3D p) { _sunpos = p; }
+ inline const SGVec3d& get_sunpos () const { return _sunpos; }
+ inline void set_sunpos (const SGVec3d& p) { _sunpos = p; }
inline float *sun_vec () const { return (float *)_sun_vec; }
inline float *sun_vec_inv () const { return (float *)_sun_vec_inv; }
inline double get_moon_gc_lat () const { return _moon_gc_lat; }
inline void set_moon_gc_lat (double l) { _moon_gc_lat = l; }
- inline Point3D get_moonpos () const { return _moonpos; }
- inline void set_moonpos (Point3D p) { _moonpos = p; }
+ inline const SGVec3d& get_moonpos () const { return _moonpos; }
+ inline void set_moonpos (const SGVec3d& p) { _moonpos = p; }
inline float *moon_vec () const { return (float *)_moon_vec; }
inline float *moon_vec_inv () const { return (float *)_moon_vec_inv; }