1 #ifndef FG_NAV_LEVELDXML_HXX
2 #define FG_NAV_LEVELDXML_HXX
7 #include <simgear/xml/easyxml.hxx>
8 #include <simgear/misc/sg_path.hxx>
9 #include <Navaids/procedure.hxx>
14 class NavdataVisitor : public XMLVisitor {
16 NavdataVisitor(FGAirport* aApt, const SGPath& aPath);
19 virtual void startXML ();
20 virtual void endXML ();
21 virtual void startElement (const char * name, const XMLAttributes &atts);
22 virtual void endElement (const char * name);
23 virtual void data (const char * s, int len);
24 virtual void pi (const char * target, const char * data);
25 virtual void warning (const char * message, int line, int column);
26 virtual void error (const char * message, int line, int column);
29 Waypt* buildWaypoint(RouteBase* owner);
30 void processRunways(ArrivalDeparture* aProc, const XMLAttributes &atts);
32 void finishApproach();
38 std::string _text; ///< last element text value
43 Transition* _transition;
44 Procedure* _procedure;
46 WayptVec _waypoints; ///< waypoint list for current approach/sid/star
47 WayptVec _transWaypts; ///< waypoint list for current transition
49 std::string _wayptName;
50 std::string _wayptType;
51 std::string _ident; // id of segment under construction
52 std::string _transIdent;
53 double _longitude, _latitude, _altitude, _speed;
54 RouteRestriction _altRestrict;
55 bool _overflightWaypt;
57 double _holdRadial; // inbound hold radial, or -1 if radial is 'inbound'
58 double _holdTD; ///< hold time (seconds) or distance (nm), based on flag below
59 bool _holdRighthanded;
60 bool _holdDistance; // true, TD is distance in nm; false, TD is time in seconds
62 double _courseOrHeading, _radial, _dmeDistance;