class SGRoute;
class SGPath;
+class FGAirport;
+typedef SGSharedPtr<FGAirport> FGAirportRef;
+
/**
* Top level route manager class
*
SGRoute* _route;
time_t _takeoffTime;
time_t _touchdownTime;
- bool _autoSequence; // true if we are doing internal sequencing
- // false if other code (FMS/GPS) is managing sequencing
+ FGAirportRef _departure;
+ FGAirportRef _destination;
// automatic inputs
SGPropertyNode_ptr lon;
SGPropertyNode_ptr alt;
SGPropertyNode_ptr magvar;
- // automatic outputs
- SGPropertyNode_ptr target_altitude_ft;
- SGPropertyNode_ptr altitude_lock;
-
+ // automatic outputs
SGPropertyNode_ptr departure; ///< departure airport information
SGPropertyNode_ptr destination; ///< destination airport information
SGPropertyNode_ptr alternate; ///< alternate airport information
SGPropertyNode_ptr active;
SGPropertyNode_ptr airborne;
- SGPropertyNode_ptr currentWp;
SGPropertyNode_ptr wp0;
SGPropertyNode_ptr wp1;
SGPropertyNode_ptr _pathNode;
+ SGPropertyNode_ptr _currentWpt;
+
+
+ /**
+ * Signal property to notify people that the route was edited
+ */
+ SGPropertyNode_ptr _edited;
+
+ /**
+ * Signal property to notify when the last waypoint is reached
+ */
+ SGPropertyNode_ptr _finished;
void setETAPropertyFromDistance(SGPropertyNode_ptr aProp, double aDistance);
InputListener *listener;
SGPropertyNode_ptr mirror;
- bool altitude_set;
/**
* Create a SGWayPoint from a string in the following format:
void update_mirror();
- bool near_ground();
void currentWaypointChanged();
/**
- * Helper to update the target_altitude_ft and altitude_set flag when wp0
- * changes
+ * Parse a route/wp node (from a saved, property-lsit formatted route)
*/
- void updateTargetAltitude();
+ void parseRouteWaypoint(SGPropertyNode* aWP);
/**
- * Parse a route/wp node (from a saved, property-lsit formatted route)
+ * Check if we've reached the final waypoint.
+ * Returns true if we have.
*/
- void parseRouteWaypoint(SGPropertyNode* aWP);
+ bool checkFinished();
+
+// tied getters and setters
+ const char* getDepartureICAO() const;
+ const char* getDepartureName() const;
+ void setDepartureICAO(const char* aIdent);
+
+ const char* getDestinationICAO() const;
+ const char* getDestinationName() const;
+ void setDestinationICAO(const char* aIdent);
+
public:
FGRouteMgr();