]> git.mxchange.org Git - simgear.git/commitdiff
Allow geocentric distance computations to return radians.
authorjmt <jmt>
Thu, 31 Dec 2009 16:48:03 +0000 (16:48 +0000)
committerTim Moore <timoore33@gmail.com>
Sun, 3 Jan 2010 09:10:02 +0000 (10:10 +0100)
simgear/math/SGGeodesy.cxx
simgear/math/SGGeodesy.hxx

index 208218b73acb577e2605e16eea60aafddcea72ae..b9974f14c66601be2063896c99d59fc8bfa5adc3 100644 (file)
@@ -540,7 +540,7 @@ SGGeodesy::courseRad(const SGGeoc& from, const SGGeoc& to)
 }
 
 double
-SGGeodesy::distanceM(const SGGeoc& from, const SGGeoc& to)
+SGGeodesy::distanceRad(const SGGeoc& from, const SGGeoc& to)
 {
   // d = 2*asin(sqrt((sin((lat1-lat2)/2))^2 +
   //            cos(lat1)*cos(lat2)*(sin((lon1-lon2)/2))^2))
@@ -550,5 +550,12 @@ SGGeodesy::distanceM(const SGGeoc& from, const SGGeoc& to)
   double tmp2 = sin(0.5*(from.getLongitudeRad() - to.getLongitudeRad()));
   double square = tmp1*tmp1 + cosLatFrom*cosLatTo*tmp2*tmp2;
   double s = SGMiscd::min(sqrt(SGMiscd::max(square, 0)), 1);
-  return 2 * asin(s) * SG_RAD_TO_NM * SG_NM_TO_METER;
+  return 2 * asin(s);
+}
+
+
+double
+SGGeodesy::distanceM(const SGGeoc& from, const SGGeoc& to)
+{
+  return distanceRad(from, to) * SG_RAD_TO_NM * SG_NM_TO_METER;
 }
index 53e2cbb3734b749efc39923ae78434aa4ce7e072..ef1be21f618185ea56405a94bed03eed49fc44eb 100644 (file)
@@ -61,6 +61,7 @@ public:
   static void advanceRadM(const SGGeoc& geoc, double course, double distance,
                           SGGeoc& result);
   static double courseRad(const SGGeoc& from, const SGGeoc& to);
+  static double distanceRad(const SGGeoc& from, const SGGeoc& to);
   static double distanceM(const SGGeoc& from, const SGGeoc& to);
 };