]> git.mxchange.org Git - simgear.git/blobdiff - simgear/magvar/magvar.cxx
Add another subsystem group.
[simgear.git] / simgear / magvar / magvar.cxx
index 41dca19b480950af7d279950557648cb826b01be..43563a71b6f2c3d919156c192e1bb1e639fb9003 100644 (file)
@@ -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
 //
 // 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 <config.h>
+#  include <simgear_config.h>
 #endif
 
+
 #include <math.h>
 
 #include <simgear/magvar/magvar.hxx>
+#include <simgear/math/SGMath.hxx>
 
 #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);
+}
+