]> git.mxchange.org Git - simgear.git/blobdiff - simgear/magvar/magvar.cxx
hla: Provide a directly property based api for property data element.
[simgear.git] / simgear / magvar / magvar.cxx
index 11f59b8b468a62c2e6c902b11332aeb09bac37b3..43563a71b6f2c3d919156c192e1bb1e639fb9003 100644 (file)
 // $Id$
 
 
+#ifdef HAVE_CONFIG_H
+#  include <simgear_config.h>
+#endif
+
+
 #include <math.h>
 
 #include <simgear/magvar/magvar.hxx>
+#include <simgear/math/SGMath.hxx>
 
 #include "coremag.hxx"
 #include "magvar.hxx"
@@ -47,6 +53,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 +67,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);
+}
+