X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fmagvar%2Fmagvar.cxx;h=2744e20e3c1c7c83ce999282ad7ed329055e8c7d;hb=d2bcb86e1e6f2856c5509edb5c148b17fb3acd37;hp=11f59b8b468a62c2e6c902b11332aeb09bac37b3;hpb=4e7fe460a5c5c1b64dd1d540bc197dbb89614b7f;p=simgear.git diff --git a/simgear/magvar/magvar.cxx b/simgear/magvar/magvar.cxx index 11f59b8b..2744e20e 100644 --- a/simgear/magvar/magvar.cxx +++ b/simgear/magvar/magvar.cxx @@ -24,6 +24,7 @@ #include #include +#include #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); +} +