]> git.mxchange.org Git - flightgear.git/blobdiff - src/Airports/runwaybase.cxx
Merge branch 'next' of D:\Git_New\flightgear into next
[flightgear.git] / src / Airports / runwaybase.cxx
index fd82406ad9a0696258a5a034d9551b9d2db783a9..01855347c620c407ed5695a9f639a0621d54eda0 100644 (file)
@@ -51,12 +51,14 @@ FGRunwayBase::FGRunwayBase(Type aTy, const string& aIdent,
                         const double width,
                         const int surface_code,
                         bool index) :
-  FGPositioned(aTy, aIdent, aGeod, index)
+  FGPositioned(aTy, aIdent, aGeod)
 {
   _heading = heading;
   _length = length;
   _width = width;
   _surface_code = surface_code;
+  
+  init(index);
 }
 
 SGGeod FGRunwayBase::pointOnCenterline(double aOffset) const
@@ -71,6 +73,27 @@ SGGeod FGRunwayBase::pointOnCenterline(double aOffset) const
   return result;
 }
 
+
+
+SGGeod FGRunwayBase::pointOffCenterline(double aOffset, double lateralOffset) const
+{
+  SGGeod result;
+  SGGeod temp;
+  double dummyAz2;
+  double halfLengthMetres = lengthM() * 0.5;
+
+  SGGeodesy::direct(mPosition, _heading, 
+    aOffset - halfLengthMetres,
+    temp, dummyAz2);
+
+  SGGeodesy::direct(temp, (_heading+90.0), 
+    lateralOffset,
+    result, dummyAz2);
+
+  return result;
+}
+
+
 bool FGRunwayBase::isHardSurface() const
 {
   return ((_surface_code == 1) || (_surface_code == 2));