]> git.mxchange.org Git - simgear.git/blobdiff - simgear/magvar/magvar.cxx
Warning fix: compare signed/unsigned
[simgear.git] / simgear / magvar / magvar.cxx
index 11f59b8b468a62c2e6c902b11332aeb09bac37b3..2744e20e3c1c7c83ce999282ad7ed329055e8c7d 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.getLongitudeRad(), geod.getLatitudeRad(),
+    geod.getElevationM(), jd);
+}
+
 
 double sgGetMagVar( double lon, double lat, double alt_m, double jd ) {
     // cout << "lat = " << lat << " lon = " << lon << " elev = " << alt_m
@@ -55,3 +62,10 @@ double sgGetMagVar( double lon, double lat, double alt_m, double jd ) {
     double field[6];
     return calc_magvar( lat, lon, alt_m / 1000.0, (long)jd, field );
 }
+
+double sgGetMagVar( const SGGeod& pos, double jd )
+{
+  return sgGetMagVar(pos.getLongitudeRad(), pos.getLatitudeRad(), 
+    pos.getElevationM(), jd);
+}
+