#define _ROUTE_MGR_HXX 1
#include <simgear/props/props.hxx>
-#include <simgear/route/waypoint.hxx>
#include <simgear/structure/subsystem_mgr.hxx>
-#include <Navaids/route.hxx>
+#include <Navaids/FlightPlan.hxx>
// forward decls
class SGPath;
class PropertyWatcher;
-class FGAirport;
-class FGRunway;
-
-typedef SGSharedPtr<FGAirport> FGAirportRef;
-
/**
* Top level route manager class
*
int currentIndex() const;
- void setFlightPlan(flightgear::FlightPlan* plan);
- flightgear::FlightPlan* flightPlan() const;
+ void setFlightPlan(const flightgear::FlightPlanRef& plan);
+ flightgear::FlightPlanRef flightPlan() const;
void clearRoute();
* route could not be activated for some reason
*/
bool activate();
-
+
/**
- * Step to the next waypoint on the active route
+ * deactivate the route if active
*/
- void sequence();
-
+ void deactivate();
+
/**
* Set the current waypoint to the specified index.
*/
bool loadRoute(const SGPath& p);
flightgear::WayptRef waypointFromString(const std::string& target);
-
- /**
- * Helper command to setup current airport/runway if necessary
- */
- void initAtPosition();
private:
- flightgear::FlightPlan* _plan;
+ bool commandDefineUserWaypoint(const SGPropertyNode* arg);
+ bool commandDeleteUserWaypoint(const SGPropertyNode* arg);
+
+ flightgear::FlightPlanRef _plan;
time_t _takeoffTime;
time_t _touchdownTime;
InputListener *listener;
SGPropertyNode_ptr mirror;
- virtual void departureChanged();
- void buildDeparture(flightgear::WayptRef enroute, flightgear::WayptVec& wps);
-
- virtual void arrivalChanged();
- void buildArrival(flightgear::WayptRef enroute, flightgear::WayptVec& wps);
-
/**
* Helper to keep various pieces of state in sync when the route is
* modified (waypoints added, inserted, removed). Notably, this fires the
virtual void currentWaypointChanged();
- /**
- * Check if we've reached the final waypoint.
- * Returns true if we have.
- */
- bool checkFinished();
-
- /**
- * Predicate for helping the UI - test if at least one waypoint was
- * entered by the user (as opposed to being generated by the route-manager)
- */
- bool haveUserWaypoints() const;
-
// tied getters and setters
const char* getDepartureICAO() const;
const char* getDepartureName() const;