]> git.mxchange.org Git - simgear.git/commitdiff
Overload the SGMagVar::update method to take an SGGeod.
authorjmt <jmt>
Sun, 14 Mar 2010 12:00:54 +0000 (12:00 +0000)
committerTim Moore <timoore33@gmail.com>
Tue, 16 Mar 2010 13:22:45 +0000 (14:22 +0100)
simgear/magvar/magvar.cxx
simgear/magvar/magvar.hxx

index 11f59b8b468a62c2e6c902b11332aeb09bac37b3..095c9718eb037fda46c7b13ec4854c276ed53a38 100644 (file)
@@ -24,6 +24,7 @@
 #include <math.h>
 
 #include <simgear/magvar/magvar.hxx>
+#include <simgear/math/SGMath.hxx>
 
 #include "coremag.hxx"
 #include "magvar.hxx"
@@ -47,6 +48,12 @@ void SGMagVar::update( double lon, double lat, double alt_m, double jd ) {
     magdip = atan(field[5]/sqrt(field[3]*field[3]+field[4]*field[4]));
 }
 
+void SGMagVar::update( const SGGeod& geod, double jd ) {
+
+  update(geod.getLongitudeDeg(), geod.getLatitudeDeg(),
+    geod.getElevationM(), jd);
+}
+
 
 double sgGetMagVar( double lon, double lat, double alt_m, double jd ) {
     // cout << "lat = " << lat << " lon = " << lon << " elev = " << alt_m
index c2e80bc4a5194b17480ddf624b03292d3abeb674..6a97e5ea7719eb3eb137910c8b6641ae82de96d4 100644 (file)
@@ -33,6 +33,9 @@
 #endif
 
 
+// forward decls
+class SGGeod;
+
 /**
  * Magnetic variation wrapper class.
  *
@@ -78,6 +81,11 @@ public:
      */
     void update( double lon, double lat, double alt_m, double jd );
 
+    /**
+     * overloaded variant taking an SGGeod to specify position
+     */
+    void update( const SGGeod& geod, double jd );
+
     /** @return the current magnetic variation in radians. */
     double get_magvar() const { return magvar; }