void AirspaceSorter::sort_name(AirspaceSelectInfoVector& vec) const { std::sort(vec.begin(), vec.end(), AirspaceNameCompare); }
void AirspaceSorter::filter_name(AirspaceSelectInfoVector& vec, const unsigned char c) const { MatchChar = c; vec.erase(std::remove_if(vec.begin(), vec.end(), AirspaceNameFilter), vec.end()); }
void AirspaceSorter::sort_distance(AirspaceSelectInfoVector& vec) const { std::sort(vec.begin(), vec.end(), AirspaceDistanceCompare); }
void AirspaceSorter::filter_direction(AirspaceSelectInfoVector& vec, const Angle direction) const { Direction = direction; vec.erase(std::remove_if(vec.begin(), vec.end(), AirspaceDirectionFilter), vec.end()); }
static void SortByName(AirspaceSelectInfoVector &vec) { auto compare = [&] (const AirspaceSelectInfo &elem1, const AirspaceSelectInfo &elem2) { return StringCollate(elem1.GetAirspace().GetName(), elem2.GetAirspace().GetName()) < 0; }; std::sort(vec.begin(), vec.end(), compare); }
static void SortByDistance(AirspaceSelectInfoVector &vec, const GeoPoint &location, const FlatProjection &projection) { auto compare = [&] (const AirspaceSelectInfo &elem1, const AirspaceSelectInfo &elem2) { return elem1.GetVector(location, projection).distance < elem2.GetVector(location, projection).distance; }; std::sort(vec.begin(), vec.end(), compare); }
void AirspaceSorter::filter_class(AirspaceSelectInfoVector& vec, const AirspaceClass_t t) const { MatchClass = t; vec.erase(std::remove_if(vec.begin(), vec.end(), AirspaceClassFilter), vec.end()); }
void AirspaceSorter::filter_distance(AirspaceSelectInfoVector& vec, const fixed distance) const { MaxDistance = distance; vec.erase(std::remove_if(vec.begin(), vec.end(), AirspaceDistanceFilter), vec.end()); }