-bool FGAirport::HardSurfaceFilter::pass(FGPositioned* aPos) const
-{
- if (aPos->type() != AIRPORT) {
- return false; // exclude seaports and heliports as well, we need a runways
- }
-
- return static_cast<FGAirport*>(aPos)->hasHardRunwayOfLengthFt(mMinLengthFt);
-}
-
-/******************************************************************************
- * FGAirportList
- *****************************************************************************/
-
-// Populates a list of subdirectories of $FG_ROOT/Airports/AI so that
-// the add() method doesn't have to try opening 2 XML files in each of
-// thousands of non-existent directories. FIXME: should probably add
-// code to free this list after parsing of apt.dat is finished;
-// non-issue at the moment, however, as there are no AI subdirectories
-// in the base package.
-//
-// Note: 2005/12/23: This is probably not necessary anymore, because I'm
-// Switching to runtime airport dynamics loading (DT).
-FGAirportList::FGAirportList()
-{
-// ulDir* d;
-// ulDirEnt* dent;
-// SGPath aid( globals->get_fg_root() );
-// aid.append( "/Airports/AI" );
-// if((d = ulOpenDir(aid.c_str())) == NULL)
-// return;
-// while((dent = ulReadDir(d)) != NULL) {
-// SG_LOG( SG_GENERAL, SG_DEBUG, "Dent: " << dent->d_name );
-// ai_dirs.insert(dent->d_name);
-// }
-// ulCloseDir(d);
-}
-
-
-FGAirportList::~FGAirportList( void )