X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fmagvar%2Fmagvar.cxx;h=43563a71b6f2c3d919156c192e1bb1e639fb9003;hb=04a47dfb8d96a58352b16658eb12d4aed90a97e8;hp=11f59b8b468a62c2e6c902b11332aeb09bac37b3;hpb=dcb95d131bc6aef1abe25d1f415e309f06e52436;p=simgear.git diff --git a/simgear/magvar/magvar.cxx b/simgear/magvar/magvar.cxx index 11f59b8b..43563a71 100644 --- a/simgear/magvar/magvar.cxx +++ b/simgear/magvar/magvar.cxx @@ -21,9 +21,15 @@ // $Id$ +#ifdef HAVE_CONFIG_H +# include +#endif + + #include #include +#include #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); +} +