]> git.mxchange.org Git - flightgear.git/blobdiff - src/Navaids/positioned.hxx
Clean-up: move autosave.xml loading code to proper method
[flightgear.git] / src / Navaids / positioned.hxx
index f6f61229a78750118aea77e719e12f5ceefacdcc..de5a31322ac2940ae32ae07da23961573a753fc7 100644 (file)
 #include <simgear/math/SGMath.hxx>
 
 class FGPositioned;
+class SGPropertyNode;
 
 typedef SGSharedPtr<FGPositioned> FGPositionedRef;
 
+namespace flightgear
+{
+    class PositionedBinding;
+}
+
 class FGPositioned : public SGReferenced
 {
 public:
@@ -56,9 +62,14 @@ public:
     DME,
     TACAN,
     OBSTACLE,
-    FREQ_GND,
-    FREQ_TWR,
+    FREQ_GROUND,
+    FREQ_TOWER,
     FREQ_ATIS,
+    FREQ_AWOS,
+    FREQ_APP_DEP,
+    FREQ_ENROUTE,
+    FREQ_CLEARANCE,
+    FREQ_UNICOM,
     LAST_TYPE
   } Type;
 
@@ -97,6 +108,9 @@ public:
   double elevation() const
   { return mPosition.getElevationFt(); }
   
+
+  virtual flightgear::PositionedBinding* createBinding(SGPropertyNode* nd) const;
+
   /**
    * Predicate class to support custom filtering of FGPositioned queries
    * Default implementation of this passes any FGPositioned instance.
@@ -135,13 +149,15 @@ public:
   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 void installCommands();
+  
   static List findWithinRange(const SGGeod& aPos, double aRangeNm, Filter* aFilter = NULL);
         
   static FGPositionedRef findClosestWithIdent(const std::string& aIdent, const SGGeod& aPos, Filter* aFilter = NULL);