#ifndef FG_POSITIONED_HXX
#define FG_POSITIONED_HXX
+#include <string>
#include <vector>
#include <simgear/structure/SGSharedPtr.hxx>
#include <simgear/math/SGMath.hxx>
class FGPositioned;
+class SGPropertyNode;
typedef SGSharedPtr<FGPositioned> FGPositionedRef;
TAXIWAY,
PAVEMENT,
PARK_STAND,
+ WAYPOINT,
FIX,
VOR,
NDB,
DME,
TACAN,
OBSTACLE,
- WAYPOINT, // user-defined waypoint
- FREQ_GND,
- FREQ_TWR,
+ FREQ_GROUND,
+ FREQ_TOWER,
FREQ_ATIS,
+ FREQ_AWOS,
+ FREQ_APP_DEP,
+ FREQ_ENROUTE,
+ FREQ_CLEARANCE,
+ FREQ_UNICOM,
LAST_TYPE
} Type;
class TypeFilter : public Filter
{
public:
- TypeFilter(Type aTy) : mType(aTy) { ; }
- virtual bool pass(FGPositioned* aPos) const
- { return (mType == aPos->type()); }
+ TypeFilter(Type aTy);
+ virtual bool pass(FGPositioned* aPos) const;
+ void addType(Type aTy);
private:
- const Type mType;
+ std::vector<Type> types;
};
-
+
static List findWithinRange(const SGGeod& aPos, double aRangeNm, Filter* aFilter = NULL);
static FGPositionedRef findClosestWithIdent(const std::string& aIdent, const SGGeod& aPos, Filter* aFilter = NULL);
* Find all items with the specified ident
* @param aFilter - optional filter on items
*/
- static List findAllWithIdent(const std::string& aIdent, Filter* aFilter = NULL);
+ static List findAllWithIdent(const std::string& aIdent, Filter* aFilter = NULL, bool aExact = true);
/**
* As above, but searches names instead of idents
*/
- static List findAllWithName(const std::string& aName, Filter* aFilter = NULL);
+ static List findAllWithName(const std::string& aName, Filter* aFilter = NULL, bool aExact = true);
/**
* Sort an FGPositionedList by distance from a position