X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAirports%2Fsimple.cxx;h=02d7025b8c62c8c1ecd45270efed823d63ad7528;hb=48e948d4bcd65cc8ccdfb23097ed9ea592e4226c;hp=0907030fbd0a304bdbf0f4ec5984e743425f33c5;hpb=43b300fe46d8013a90009ec8e1a923ec53a396b5;p=flightgear.git diff --git a/src/Airports/simple.cxx b/src/Airports/simple.cxx index 0907030fb..02d7025b8 100644 --- a/src/Airports/simple.cxx +++ b/src/Airports/simple.cxx @@ -192,21 +192,22 @@ unsigned int FGAirport::numTaxiways() const return mTaxiways.size(); } -FGRunway* FGAirport::getTaxiwayByIndex(unsigned int aIndex) const +FGTaxiway* FGAirport::getTaxiwayByIndex(unsigned int aIndex) const { assert(aIndex >= 0 && aIndex < mTaxiways.size()); return mTaxiways[aIndex]; } -void FGAirport::addRunway(FGRunway* aRunway) +void FGAirport::setRunwaysAndTaxiways(vector& rwys, + vector& txwys) { - aRunway->setAirport(this); - - if (aRunway->isTaxiway()) { - mTaxiways.push_back(aRunway); - } else { - mRunways.push_back(aRunway); + mRunways.swap(rwys); + Runway_iterator it = mRunways.begin(); + for (; it != mRunways.end(); ++it) { + (*it)->setAirport(this); } + + mTaxiways.swap(txwys); } FGRunway* FGAirport::getActiveRunwayForUsage() const @@ -248,13 +249,9 @@ FGAirport::HardSurfaceFilter::HardSurfaceFilter(double minLengthFt) : { } -bool FGAirport::HardSurfaceFilter::pass(FGPositioned* aPos) const +bool FGAirport::HardSurfaceFilter::passAirport(FGAirport* aApt) const { - if (aPos->type() != AIRPORT) { - return false; // exclude seaports and heliports as well, we need a runways - } - - return static_cast(aPos)->hasHardRunwayOfLengthFt(mMinLengthFt); + return aApt->hasHardRunwayOfLengthFt(mMinLengthFt); } FGAirport* FGAirport::findByIdent(const std::string& aIdent)