]> git.mxchange.org Git - flightgear.git/commitdiff
Updates to use new SGMagVar class from simgear.
authorcurt <curt>
Tue, 8 Aug 2000 00:39:52 +0000 (00:39 +0000)
committercurt <curt>
Tue, 8 Aug 2000 00:39:52 +0000 (00:39 +0000)
src/Main/bfi.cxx
src/Main/globals.hxx
src/Main/main.cxx
src/Time/tmp.cxx
src/Time/tmp.hxx

index 73ad21679bb6197e4c6f63266fc7c87362182fca..1b085438f1cfb183cf5f2ec9de7355ed427462db 100644 (file)
@@ -1457,7 +1457,7 @@ FGBFI::setCloudsASL (double cloudsASL)
 double
 FGBFI::getMagVar ()
 {
-  return cur_magvar.get_magvar() * RAD_TO_DEG;
+  return globals->get_mag()->get_magvar() * RAD_TO_DEG;
 }
 
 
@@ -1467,7 +1467,7 @@ FGBFI::getMagVar ()
 double
 FGBFI::getMagDip ()
 {
-  return cur_magvar.get_magdip() * RAD_TO_DEG;
+  return globals->get_mag()->get_magdip() * RAD_TO_DEG;
 }
 
 
index 9c2f59902bd8935de4a8aeaf8053b29c7926206b..ebe8a8262bab841edee1c01f680ae96075e2a917 100644 (file)
@@ -26,6 +26,7 @@
 
 
 #include <simgear/ephemeris/ephemeris.hxx>
+#include <simgear/magvar/magvar.hxx>
 #include <simgear/timing/sg_time.hxx>
 
 
@@ -50,6 +51,9 @@ private:
     // Sky structures
     SGEphemeris *ephem;
 
+    // Magnetic Variation
+    SGMagVar *mag;
+
 public:
 
     FGGlobals();
@@ -71,6 +75,9 @@ public:
 
     inline SGEphemeris *get_ephem() const { return ephem; }
     inline void set_ephem( SGEphemeris *e ) { ephem = e; }
+
+    inline SGMagVar *get_mag() const { return mag; }
+    inline void set_mag( SGMagVar *m ) { mag = m; }
 };
 
 
index ce4189d4ec4852febf1853899c557ca1b87e485c..57b2056eb5c0e2b2dbd39db356c5f01c7083d0a9 100644 (file)
@@ -810,10 +810,10 @@ static void fgMainLoop( void ) {
     }
 
     // update magvar model
-    cur_magvar.update( cur_fdm_state->get_Longitude(),
-                      cur_fdm_state->get_Latitude(),
-                      cur_fdm_state->get_Altitude()* FEET_TO_METER,
-                      globals->get_time_params()->getJD() );
+    globals->get_mag()->update( cur_fdm_state->get_Longitude(),
+                               cur_fdm_state->get_Latitude(),
+                               cur_fdm_state->get_Altitude()* FEET_TO_METER,
+                               globals->get_time_params()->getJD() );
 
     // Get elapsed time (in usec) for this past frame
     elapsed = fgGetTimeInterval();
@@ -1428,6 +1428,10 @@ int main( int argc, char **argv ) {
     // thesky->add_cloud_layer( 1800.0, 400.0, 100.0, SG_CLOUD_OVERCAST );
     // thesky->add_cloud_layer( 5000.0, 20.0, 10.0, SG_CLOUD_CIRRUS );
 
+    // Initialize MagVar model
+    SGMagVar *magvar = new SGMagVar();
+    globals->set_mag( magvar );
+
     // Terrain branch
     terrain = new ssgBranch;
     terrain->setName( "Terrain" );
index 5d7ff2d347a4b591ceac890e24ceeeb935973922..c8e47b4132c507f2bacf90595e4e94b0993bfea6 100644 (file)
 #include "tmp.hxx"
 
 
-FGMagVar::FGMagVar() {
-}
-
-FGMagVar::~FGMagVar() {
-}
-
-
-void FGMagVar::update( double lon, double lat, double alt_m, double jd ) {
-    // Calculate local magnetic variation
-    double field[6];
-    // cout << "alt_m = " << alt_m << endl;
-    magvar = SGMagVar( lat, lon, alt_m / 1000.0, (long)jd, field );
-    magdip = atan(field[5]/sqrt(field[3]*field[3]+field[4]*field[4]));
-}
-
-FGMagVar cur_magvar;
-
-
 // periodic time updater wrapper
 void fgUpdateLocalTime() {
     FGPath zone( current_options.get_fg_root() );
index 5bbff299e7d172fe73d6a87c95cba9aa6b0ada32..a4f506ed62a20fa079729ca599dee9976e804044 100644 (file)
@@ -41,25 +41,5 @@ void fgUpdateLocalTime();
 // update sky and lighting parameters
 void fgUpdateSkyAndLightingParams();
 
-class FGMagVar {
-
-private:
-
-    double magvar;
-    double magdip;
-
-public:
-
-    FGMagVar();
-    ~FGMagVar();
-
-    void update( double lon, double lat, double alt_m, double jd );
-
-    double get_magvar() const { return magvar; }
-    double get_magdip() const { return magdip; }
-};
-
-extern FGMagVar cur_magvar;
-
 
 #endif // _LIGHT_HXX