]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIFlightPlan.hxx
Clear chat messages when an aircraft becomes inactive in the property tree.
[flightgear.git] / src / AIModel / AIFlightPlan.hxx
index 755b672ecaf5e37b2b5c65dd80d8a841c9f348ec..f4b07859031aae46e253e24c45b109b89b82b9fe 100644 (file)
@@ -48,9 +48,13 @@ public:
    bool gear_down;
    bool flaps_down;
    bool on_ground;
+    int routeIndex;  // For AI/ATC purposes;
+   double time_sec;
+   string time;
+
   } waypoint;
 
-   FGAIFlightPlan(const string& filename);
+  FGAIFlightPlan(const string& filename);
   FGAIFlightPlan(const std::string& p,
                 double course,
                 time_t start,
@@ -79,22 +83,26 @@ public:
    double getLeadDistance( void ) const {return lead_distance;}
    double getBearing(waypoint* previous, waypoint* next) const;
    double getBearing(double lat, double lon, waypoint* next) const;
-  time_t getStartTime() const { return start_time; }
+  time_t getStartTime() const { return start_time; }
 
   void    create(FGAirport *dep, FGAirport *arr, int leg, double alt, double speed, double lat, double lon,
                 bool firstLeg, double radius, const string& fltType, const string& aircraftType, const string& airline);
 
-  void setLeg(int val) { leg = val;};
-  void setTime(time_t st) { start_time = st; };
-  int getGate() const { return gateId; };
-  double getLeadInAngle() const { return leadInAngle; };
-  const string& getRunway() const { return rwy._rwy_no; };
-  const string& getRunwayId() const { return rwy._id; };
-  void setRepeat(bool r) { repeat = r; };
-  bool getRepeat(void) const { return repeat; };
+  void setLeg(int val) { leg = val;}
+  void setTime(time_t st) { start_time = st; }
+  int getGate() const { return gateId; }
+  double getLeadInAngle() const { return leadInAngle; }
+  const string& getRunway() const { return rwy._rwy_no; }
+  const string& getRunwayId() const { return rwy._id; }
+  void setRepeat(bool r) { repeat = r; }
+  bool getRepeat(void) const { return repeat; }
   void restart(void);
-  
-  int getNrOfWayPoints() { return waypoints.end() - waypoints.begin(); };
+  int getNrOfWayPoints() { return waypoints.size(); }
+  int getRouteIndex(int i); // returns the AI related index of this current routes. 
+  FGTaxiRoute *getTaxiRoute() { return taxiRoute; }
+  void deleteTaxiRoute();
+  string getRunway() { return activeRunway; }
+  bool isActive(time_t time) {return time >= this->getStartTime();}
 
 private:
   FGRunway rwy;
@@ -108,36 +116,29 @@ private:
   double distance_to_go;
   double lead_distance;
   double leadInAngle;
-   time_t start_time;
+  time_t start_time;
   int leg;
-  int gateId;
+  int gateId, lastNodeVisited;
   string activeRunway;
-  FGAirRoute route;
-
-
-  Point3D temp;
-  sgdVec3 a, b, cross;
-  sgdVec3 newPos;
-  sgdMat4 matrix;
-  double angle;
-  double midlat, midlon;
-  double course, distance;  
+  FGAirRoute airRoute;
+  FGTaxiRoute *taxiRoute;
 
   void createPushBack(bool, FGAirport*, double, double, double, const string&, const string&, const string&);
+  void createPushBackFallBack(bool, FGAirport*, double, double, double, const string&, const string&, const string&);
   void createTaxi(bool, int, FGAirport *, double, double, double, const string&, const string&, const string&);
-  void createTakeOff(bool, FGAirport *, double);
-  void createClimb(bool, FGAirport *, double, double);
-  void createCruise(bool, FGAirport*, FGAirport*, double, double, double, double);
-  void createDecent(FGAirport *);
+  void createTakeOff(bool, FGAirport *, double, const string&);
+  void createClimb(bool, FGAirport *, double, double, const string&);
+  void createCruise(bool, FGAirport*, FGAirport*, double, double, double, double, const string&);
+  void createDecent(FGAirport *, const string&);
   void createLanding(FGAirport *);
   void createParking(FGAirport *, double radius);
   void deleteWaypoints(); 
   void resetWaypoints();
 
+  string getRunwayClassFromTrafficType(string fltType);
+
   //void createCruiseFallback(bool, FGAirport*, FGAirport*, double, double, double, double);
  void evaluateRoutePart(double deplat, double deplon, double arrlat, double arrlon);
 };    
 
-
-
 #endif  // _FG_AIFLIGHTPLAN_HXX