bool changeSpeed;
bool changeHeading;
bool changeAltitude;
+ bool resolveCircularWait;
double speed;
double heading;
double getHeading () { return heading; };
double getAlt () { return alt; };
+ bool getCheckForCircularWait() { return resolveCircularWait; };
+
void setHoldPattern (bool val) { holdPattern = val; };
void setHoldPosition (bool val) { holdPosition = val; };
void setChangeSpeed (bool val) { changeSpeed = val; };
void setChangeHeading (bool val) { changeHeading = val; };
void setChangeAltitude(bool val) { changeAltitude = val; };
+ void setResolveCircularWait (bool val) { resolveCircularWait = val; };
+
void setSpeed (double val) { speed = val; };
void setHeading (double val) { heading = val; };
void setAlt (double val) { alt = val; };
};
-/**************************************************************************************
+/**
* class FGATCController
* NOTE: this class serves as an abstraction layer for all sorts of ATC controller.
*************************************************************************************/
virtual ~FGATCController() {};
virtual void announcePosition(int id, FGAIFlightPlan *intendedRoute, int currentRoute,
double lat, double lon,
- double hdg, double spd, double alt, double radius, int leg) = 0;
+ double hdg, double spd, double alt, double radius, int leg,
+ string callsign) = 0;
virtual void signOff(int id) = 0;
virtual void update(int id, double lat, double lon,
double heading, double speed, double alt, double dt) = 0;
FGATCInstruction instruction;
double latitude, longitude, heading, speed, altitude, radius;
string runway;
+ string callsign;
public:
- FGTrafficRecord() {};
+ FGTrafficRecord();
void setId(int val) { id = val; };
void setRadius(double rad) { radius = rad;};
int crosses (FGGroundNetwork *, FGTrafficRecord &other);
bool isOpposing (FGGroundNetwork *, FGTrafficRecord &other, int node);
+ bool onRoute(FGGroundNetwork *, FGTrafficRecord &other);
+
bool getSpeedAdjustment() { return instruction.getChangeSpeed(); };
double getLatitude () { return latitude ; };
void setWaitsForId(int id) { waitsForId = id; };
- string getRunway() { return runway; };
+ void setResolveCircularWait() { instruction.setResolveCircularWait(true); };
+ void clearResolveCircularWait() { instruction.setResolveCircularWait(false); };
+ string getRunway() { return runway; };
+ void setCallSign(string clsgn) { callsign = clsgn; };
+ string getCallSign() { return callsign; };
};
typedef vector<FGTrafficRecord> TrafficVector;
virtual ~FGTowerController() {};
virtual void announcePosition(int id, FGAIFlightPlan *intendedRoute, int currentRoute,
double lat, double lon,
- double hdg, double spd, double alt, double radius, int leg);
+ double hdg, double spd, double alt, double radius, int leg,
+ string callsign);
virtual void signOff(int id);
virtual void update(int id, double lat, double lon,
double heading, double speed, double alt, double dt);