]> git.mxchange.org Git - flightgear.git/blobdiff - src/ATC/ATC.hxx
Moved some of the low level scene graph construction code over to simgear.
[flightgear.git] / src / ATC / ATC.hxx
index 2dda84e0bacc5d3da30e7ed87d1db707a23e4bf5..38750898ace9fb214b35286b284968b181de0461 100644 (file)
@@ -36,6 +36,25 @@ SG_USING_STD(ostream);
 SG_USING_STD(string);
 SG_USING_STD(ios);
 
+enum plane_type {
+       UNKNOWN,
+       GA_SINGLE,
+       GA_HP_SINGLE,
+       GA_TWIN,
+       GA_JET,
+       MEDIUM,
+       HEAVY,
+       MIL_JET
+};
+
+// PlaneRec - a structure holding ATC-centric details of planes under control
+// This might move or change eventually
+struct PlaneRec {
+       plane_type type;
+       string callsign;
+       int squawkcode;
+};
+
 // Possible types of ATC type that the radios may be tuned to.
 // INVALID implies not tuned in to anything.
 enum atc_type {
@@ -51,6 +70,9 @@ enum atc_type {
 // DCL - new experimental ATC data store
 struct ATCData {
        atc_type type;
+       // I've deliberately used float instead of double here to keep the size down - we'll be storing thousands of these in memory.
+       // In fact, we could probably ditch x, y and z and generate on the fly as needed.
+       // On the other hand, we'll probably end up reading this data directly from the DAFIF eventually anyway!!
        float lon, lat, elev;
        float x, y, z;
        //int freq;
@@ -61,6 +83,18 @@ struct ATCData {
        string name;
 };
 
+// perhaps we could use an FGRunway instead of this.
+// That wouldn't cache the orthopos though.
+struct RunwayDetails {
+       Point3D threshold_pos;
+       Point3D end1ortho;      // ortho projection end1 (the threshold ATM)
+       Point3D end2ortho;      // ortho projection end2 (the take off end in the current hardwired scheme)
+       double hdg;             // true runway heading
+       double length;  // In *METERS*
+       double width;   // ditto
+       string rwyID;
+};
+
 ostream& operator << (ostream& os, atc_type atc);
 
 class FGATC {
@@ -70,7 +104,7 @@ public:
     virtual ~FGATC();
 
     // Run the internal calculations
-    virtual void Update();
+    virtual void Update(double dt);
 
     // Add plane to a stack
     virtual void AddPlane(string pid);