X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FATC%2Ftrafficcontrol.hxx;h=fcbaf9bf07a2a029a1bdd3c47b25991294074ab1;hb=ed434d9967b0b23e4abb172d699ef956246f4bf9;hp=8de329ba9026b7fd6dc5db8e0001ce9de430827d;hpb=3bd4e99d8193fa5a0157fd6b226e62ccd4c8a940;p=flightgear.git diff --git a/src/ATC/trafficcontrol.hxx b/src/ATC/trafficcontrol.hxx index 8de329ba9..fcbaf9bf0 100644 --- a/src/ATC/trafficcontrol.hxx +++ b/src/ATC/trafficcontrol.hxx @@ -26,6 +26,10 @@ # error This library requires C++ #endif +#include +#include +#include +#include #include // There is probably a better include than sg_geodesy to get the SG_NM_TO_METER... @@ -48,6 +52,7 @@ typedef vector::iterator intVecIterator; class FGAIFlightPlan; // forward reference class FGGroundNetwork; // forward reference class FGAIAircraft; // forward reference +class FGAirportDynamics; /************************************************************************************** * class FGATCInstruction @@ -182,6 +187,8 @@ public: void allowRepeatedTransmissions () { allowTransmission=true; }; void nextFrequency() { frequencyId++; }; int getNextFrequency() { return frequencyId; }; + intVec& getIntentions() { return intentions; }; + int getCurrentPosition() { return currentPos; }; }; typedef vector TrafficVector; @@ -231,7 +238,7 @@ protected: time_t lastTransmission; double dt_count; - + osg::Group* group; string formatATCFrequency3_2(int ); string genTransponderCode(string fltRules); @@ -276,10 +283,14 @@ public: double getDt() { return dt_count; }; void setDt(double dt) { dt_count = dt;}; - void transmit(FGTrafficRecord *rec, AtcMsgId msgId, AtcMsgDir msgDir); + void transmit(FGTrafficRecord *rec, AtcMsgId msgId, AtcMsgDir msgDir, bool audible); string getGateName(FGAIAircraft *aircraft); + virtual void render(bool) = 0; + virtual string getName() = 0; + private: + AtcMsgDir lastTransmissionDirection; }; @@ -291,9 +302,10 @@ class FGTowerController : public FGATCController private: TrafficVector activeTraffic; ActiveRunwayVec activeRunways; + FGAirportDynamics *parent; public: - FGTowerController(); + FGTowerController(FGAirportDynamics *parent); virtual ~FGTowerController() {}; virtual void announcePosition(int id, FGAIFlightPlan *intendedRoute, int currentRoute, double lat, double lon, @@ -305,6 +317,8 @@ public: virtual bool hasInstruction(int id); virtual FGATCInstruction getInstruction(int id); + virtual void render(bool); + virtual string getName(); bool hasActiveTraffic() { return activeTraffic.size() != 0; }; TrafficVector &getActiveTraffic() { return activeTraffic; }; }; @@ -319,9 +333,10 @@ class FGStartupController : public FGATCController private: TrafficVector activeTraffic; //ActiveRunwayVec activeRunways; + FGAirportDynamics *parent; public: - FGStartupController(); + FGStartupController(FGAirportDynamics *parent); virtual ~FGStartupController() {}; virtual void announcePosition(int id, FGAIFlightPlan *intendedRoute, int currentRoute, double lat, double lon, @@ -333,6 +348,9 @@ public: virtual bool hasInstruction(int id); virtual FGATCInstruction getInstruction(int id); + virtual void render(bool); + virtual string getName(); + bool hasActiveTraffic() { return activeTraffic.size() != 0; }; TrafficVector &getActiveTraffic() { return activeTraffic; }; @@ -350,10 +368,11 @@ class FGApproachController : public FGATCController private: TrafficVector activeTraffic; ActiveRunwayVec activeRunways; + FGAirportDynamics *parent; public: - FGApproachController(); - virtual ~FGApproachController() {}; + FGApproachController(FGAirportDynamics * parent); + virtual ~FGApproachController() { }; virtual void announcePosition(int id, FGAIFlightPlan *intendedRoute, int currentRoute, double lat, double lon, double hdg, double spd, double alt, double radius, int leg, @@ -364,6 +383,9 @@ public: virtual bool hasInstruction(int id); virtual FGATCInstruction getInstruction(int id); + virtual void render(bool); + virtual string getName(); + ActiveRunway* getRunway(string name); bool hasActiveTraffic() { return activeTraffic.size() != 0; };