X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAirports%2Fgnnode.cxx;h=691a420640a19e6078338d50260d2f7afebd38ad;hb=fd99e9fdfb47fd1a2ed85c9fa9757ed5fc030514;hp=ae37d59594a03b65fc86847563820028659507ba;hpb=5228053f7f39eba5ecd0de57ddeafd96097205f8;p=flightgear.git diff --git a/src/Airports/gnnode.cxx b/src/Airports/gnnode.cxx index ae37d5959..691a42064 100644 --- a/src/Airports/gnnode.cxx +++ b/src/Airports/gnnode.cxx @@ -1,8 +1,15 @@ #include "gnnode.hxx" #include "groundnetwork.hxx" +#include #include + +#include +#include
+#include + using std::sort; +using std::string; /***************************************************************************** * Helper function for parsing position string @@ -67,10 +74,26 @@ void FGTaxiNode::setLongitude(const string& val) geod.setLongitudeDeg(processPosition(val)); } -//void FGTaxiNode::sortEndSegments(bool byLength) -//{ -// if (byLength) -// sort(next.begin(), next.end(), sortByLength); -// else -// sort(next.begin(), next.end(), sortByHeadingDiff); -//} +double FGTaxiNode::getElevationFt(double refelev) +{ + double elevF = geod.getElevationFt(); + double elevationEnd = 0; + if ((elevF == 0) || (elevF == refelev)) { + SGGeod center2 = geod; + FGScenery * local_scenery = globals->get_scenery(); + center2.setElevationM(SG_MAX_ELEVATION_M); + if (local_scenery->get_elevation_m( center2, elevationEnd, NULL )) { + geod.setElevationM(elevationEnd); + } + } + //cerr << "Returning elevation : " << geod.getElevationM() << ". Ref elev (feet) = " << refelev << endl; + return geod.getElevationFt(); +} + +double FGTaxiNode::getElevationM(double refelev) +{ + //double refelevFt = refelev * SG_METER_TO_FEET; + //double retval = getElevationFt(refelevFt); + //cerr << "Returning elevation : " << geod.getElevationM() << ". Ref elev (meters) = " << refelev << endl; + return geod.getElevationM(); +}