]> git.mxchange.org Git - flightgear.git/blobdiff - src/Airports/dynamicloader.hxx
GUI ‘restore defaults’ support.
[flightgear.git] / src / Airports / dynamicloader.hxx
index 95f05aa0720b575d524dba3facfafe3cc6d23f98..24500a46a6f3454175b70bcc8d093b96301b2334 100644 (file)
@@ -1,9 +1,25 @@
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License as
+// published by the Free Software Foundation; either version 2 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+//
+
 #ifndef _DYNAMIC_LOADER_HXX_
 #define _DYNAMIC_LOADER_HXX_
 
 #include <simgear/xml/easyxml.hxx>
 
 #include "dynamics.hxx"
+#include <Navaids/positioned.hxx>
 
 class FGAirportDynamicsXMLLoader : public XMLVisitor {
 public:
@@ -20,7 +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;
+    std::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