X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fmagvar%2Fmagvar.cxx;h=43563a71b6f2c3d919156c192e1bb1e639fb9003;hb=04a47dfb8d96a58352b16658eb12d4aed90a97e8;hp=0e030d020b41f6b5182e113918b88c2418e8f9fa;hpb=7fc8c026884b2d0a1b683765c089a9bef5ac47c8;p=simgear.git diff --git a/simgear/magvar/magvar.cxx b/simgear/magvar/magvar.cxx index 0e030d02..43563a71 100644 --- a/simgear/magvar/magvar.cxx +++ b/simgear/magvar/magvar.cxx @@ -16,14 +16,20 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // // $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); +} +