]> git.mxchange.org Git - flightgear.git/blobdiff - src/Airports/dynamicloader.hxx
NasalCanvas: Clean up and expose Element node ghost
[flightgear.git] / src / Airports / dynamicloader.hxx
index 672cda5af7c577be1840f423d3b71de0cd9182af..b204e9bf1b266d8622aeef93acc1af140a1cd3f8 100644 (file)
@@ -19,6 +19,7 @@
 #include <simgear/xml/easyxml.hxx>
 
 #include "dynamics.hxx"
+#include <Navaids/positioned.hxx>
 
 class FGAirportDynamicsXMLLoader : public XMLVisitor {
 public:
@@ -35,8 +36,26 @@ protected:
     virtual void error (const char * message, int line, int column);
 
 private:
+    void startParking(const XMLAttributes &atts);    
+    void startNode(const XMLAttributes &atts);
+    void startArc(const XMLAttributes &atts);
+  
     FGAirportDynamics* _dynamics;
     string value;
+  
+    // map from local (groundnet.xml) to global (nav-cache) IDs for nodes
+    std::map<int, PositionedID> _idMap;
+  
+  // data integrity - watch for unreferenced nodes and duplicated edges
+    typedef std::pair<int, int> IntPair;
+    std::set<IntPair> _arcSet;
+  
+    std::set<PositionedID> _unreferencedNodes;
+  
+    // map from allocated parking position to its local push-back node
+    // used to defer binding the push-back node until we've processed
+    // all nodes
+    std::map<PositionedID, int> _parkingPushbacks;
 };
 
 #endif