]> git.mxchange.org Git - flightgear.git/blobdiff - src/Airports/runwaybase.hxx
apt.dat parser: clearer log and exception messages
[flightgear.git] / src / Airports / runwaybase.hxx
index aa34df7a747915b689ca534d0d6c2fa0343a4933..c365f69e52fa425bdc39132d6b98cff1fa87df89 100644 (file)
@@ -28,7 +28,7 @@
 
 #include <simgear/math/sg_geodesy.hxx>
 
-#include "Navaids/positioned.hxx"
+#include <Navaids/positioned.hxx>
 
 #include <string>
 
 class FGRunwayBase : public FGPositioned
 {    
 public:
-  FGRunwayBase(Type aTy, const std::string& aIdent,
+  FGRunwayBase(PositionedID aGuid, Type aTy, const std::string& aIdent,
             const SGGeod& aGeod,
             const double heading, const double length,
             const double width,
-            const int surface_code,
-            bool index);
+            const int surface_code);
             
   /**
    * Retrieve a position on the extended centerline. Positive values
@@ -52,18 +51,19 @@ public:
    * opposited direction. 0.0 corresponds to the (non-displaced) threshold
    */
   SGGeod pointOnCenterline(double aOffset) const;
+  SGGeod pointOffCenterline(double aOffset, double lateralOffset) const;
   
   double lengthFt() const
-  { return _length; }
+  { return _length * SG_METER_TO_FEET; }
   
   double lengthM() const
-  { return _length * SG_FEET_TO_METER; }
+  { return _length; }
   
   double widthFt() const
-  { return _width; }
+  { return _width * SG_METER_TO_FEET; }
   
   double widthM() const
-  { return _width * SG_FEET_TO_METER; }
+  { return _width; }
   
    /**
    * Runway heading in degrees.
@@ -82,8 +82,15 @@ public:
    */
   int surface() const 
   { return _surface_code; }
+
+  /**
+   * Retrieve runway surface name, as define in Robin Peel's data
+   */
+  static const char * surfaceName( int surface_code );
+  const char * surfaceName() { return surfaceName( _surface_code ); }
   
 protected:
+    
   double _heading;
   double _length;
   double _width;
@@ -98,7 +105,8 @@ protected:
 class FGTaxiway : public FGRunwayBase
 {
 public:
-  FGTaxiway(const std::string& aIdent,
+  FGTaxiway(PositionedID aGuid,
+            const std::string& aIdent,
             const SGGeod& aGeod,
             const double heading, const double length,
             const double width,