Update FGRunway to process information from threshold.xml files.
This commit is contained in:
parent
7ff374ef8b
commit
2dee4ef14f
2 changed files with 18 additions and 2 deletions
|
@ -31,6 +31,7 @@
|
||||||
#include <simgear/compiler.h>
|
#include <simgear/compiler.h>
|
||||||
|
|
||||||
#include <simgear/props/props.hxx>
|
#include <simgear/props/props.hxx>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "runways.hxx"
|
#include "runways.hxx"
|
||||||
|
@ -140,4 +141,20 @@ SGGeod FGRunway::threshold() const
|
||||||
void FGRunway::processThreshold(SGPropertyNode* aThreshold)
|
void FGRunway::processThreshold(SGPropertyNode* aThreshold)
|
||||||
{
|
{
|
||||||
assert(ident() == aThreshold->getStringValue("rwy"));
|
assert(ident() == aThreshold->getStringValue("rwy"));
|
||||||
}
|
|
||||||
|
double lon = aThreshold->getDoubleValue("lon"),
|
||||||
|
lat = aThreshold->getDoubleValue("lat");
|
||||||
|
SGGeod newThreshold(SGGeod::fromDegM(lon, lat, mPosition.getElevationM()));
|
||||||
|
|
||||||
|
_heading = aThreshold->getDoubleValue("hdg-deg");
|
||||||
|
_displ_thresh = aThreshold->getDoubleValue("displ-m") * SG_METER_TO_FEET;
|
||||||
|
_stopway = aThreshold->getDoubleValue("stopw-m") * SG_METER_TO_FEET;
|
||||||
|
|
||||||
|
// compute the new runway center, based on the threshold lat/lon, length,
|
||||||
|
// and any displaced threshold.
|
||||||
|
double offsetFt = (0.5 * _length) - _displ_thresh;
|
||||||
|
SGGeod newCenter;
|
||||||
|
double dummy;
|
||||||
|
SGGeodesy::direct(newThreshold, _heading, offsetFt * SG_FEET_TO_METER, newCenter, dummy);
|
||||||
|
mPosition = newCenter;
|
||||||
|
}
|
||||||
|
|
|
@ -97,7 +97,6 @@ bool XMLLoader::findAirportData(const std::string& aICAO,
|
||||||
return true;
|
return true;
|
||||||
} // of path exists
|
} // of path exists
|
||||||
} // of scenery path iteration
|
} // of scenery path iteration
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue