]> git.mxchange.org Git - flightgear.git/blobdiff - src/Airports/runwaybase.cxx
Document that property write-protection is not a security measure
[flightgear.git] / src / Airports / runwaybase.cxx
index 83c8389263b2ab4c7bdd00e36ac16e7f896c226f..d5176c88b370db4ae83d9552519dd45b536c231a 100644 (file)
@@ -45,6 +45,22 @@ using std::string;
  * 9 - dirt helipad
  * 12 -  lakebed
  */
+const char * FGRunwayBase::surfaceName( int surface_code )
+{
+  switch( surface_code ) {
+    case 1: return "asphalt";
+    case 2: return "concrete";
+    case 3: return "turf";
+    case 4: return "dirt";
+    case 5: return "gravel";
+    case 6: return "asphalt helipad";
+    case 7: return "concrete helipad";
+    case 8: return "turf helipad";
+    case 9: return "dirt helipad";
+    case 12: return "lakebed";
+    default: return "unknown";
+  }
+}
 
 FGRunwayBase::FGRunwayBase(PositionedID aGuid, Type aTy, const string& aIdent,
                         const SGGeod& aGeod,
@@ -61,11 +77,8 @@ FGRunwayBase::FGRunwayBase(PositionedID aGuid, Type aTy, const string& aIdent,
 
 SGGeod FGRunwayBase::pointOnCenterline(double aOffset) const
 {
-  double halfLengthMetres = lengthM() * 0.5;
-  
-  SGGeod result = SGGeodesy::direct(mPosition, _heading,
-    aOffset - halfLengthMetres);
-  result.setElevationM(mPosition.getElevationM());
+  SGGeod result = SGGeodesy::direct(geod(), _heading, aOffset);
+  result.setElevationM(geod().getElevationM());
     
   return result;
 }
@@ -75,13 +88,10 @@ SGGeod FGRunwayBase::pointOffCenterline(double aOffset, double lateralOffset) co
   SGGeod result;
   SGGeod temp;
   double dummyAz2;
-  double halfLengthMetres = lengthM() * 0.5;
 
-  SGGeodesy::direct(mPosition, _heading, 
-    aOffset - halfLengthMetres,
-    temp, dummyAz2);
+  SGGeodesy::direct(geod(), _heading, aOffset, temp, dummyAz2);
 
-  SGGeodesy::direct(temp, (_heading+90.0), 
+  SGGeodesy::direct(temp, SGMiscd::normalizePeriodic(0, 360,_heading+90.0),
     lateralOffset,
     result, dummyAz2);