// runwaybase.cxx -- a base class for runways and taxiways
//
-// Written by James Turber, started December 2008.
+// Written by James Turner, started December 2008.
//
// Copyright (C) 2000 Curtis L. Olson - http://www.flightgear.org/~curt
//
SGGeod FGRunwayBase::pointOnCenterline(double aOffset) const
{
- SGGeod result;
- double dummyAz2;
- double halfLengthMetres = lengthM() * 0.5;
-
- SGGeodesy::direct(mPosition, _heading,
- aOffset - halfLengthMetres,
- result, dummyAz2);
+ SGGeod result = SGGeodesy::direct(geod(), _heading, aOffset);
+ result.setElevationM(geod().getElevationM());
+
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(geod(), _heading, aOffset, temp, dummyAz2);
- SGGeodesy::direct(temp, (_heading+90.0),
+ SGGeodesy::direct(temp, SGMiscd::normalizePeriodic(0, 360,_heading+90.0),
lateralOffset,
result, dummyAz2);