X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fmagvar%2Fmagvar.cxx;h=43563a71b6f2c3d919156c192e1bb1e639fb9003;hb=5f804cb0eb126ab7162855dad14d20eb381309c6;hp=41dca19b480950af7d279950557648cb826b01be;hpb=b8ce139b8a6cb3e49432e7fbee1afafd06975dcc;p=simgear.git diff --git a/simgear/magvar/magvar.cxx b/simgear/magvar/magvar.cxx index 41dca19b..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,24 +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 "coremag.hxx" #include "magvar.hxx" -SGMagVar::SGMagVar() { +SGMagVar::SGMagVar() + : magvar(0.0), + magdip(0.0) +{ } SGMagVar::~SGMagVar() { @@ -48,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 @@ -56,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); +} +