X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fmagvar%2Fmagvar.cxx;h=43563a71b6f2c3d919156c192e1bb1e639fb9003;hb=04a47dfb8d96a58352b16658eb12d4aed90a97e8;hp=01e44e796982c94c3ef707c5b2a2a44cf80a321f;hpb=159d3c4c6c4758df0c20f9db49066ef391668753;p=simgear.git diff --git a/simgear/magvar/magvar.cxx b/simgear/magvar/magvar.cxx index 01e44e79..43563a71 100644 --- a/simgear/magvar/magvar.cxx +++ b/simgear/magvar/magvar.cxx @@ -2,7 +2,7 @@ // // Written by Curtis Olson, started July 2000. // -// Copyright (C) 2000 Curtis L. Olson - curt@flightgear.org +// Copyright (C) 2000 Curtis L. Olson - http://www.flightgear.org/~curt // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as @@ -16,25 +16,29 @@ // // 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 +# include #endif + #include -#include #include +#include #include "coremag.hxx" #include "magvar.hxx" -SGMagVar::SGMagVar() { +SGMagVar::SGMagVar() + : magvar(0.0), + magdip(0.0) +{ } SGMagVar::~SGMagVar() { @@ -49,3 +53,24 @@ 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 + // << " JD = " << jd << endl; + + 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); +} +