X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAIAircraft.hxx;h=26ceb51207bbdf630c2592950a58a635a6ddc409;hb=b4fbde72b275dc75e8ecf7b44261aba642e5da0f;hp=7e65d0df51294732c4543a3dcff5c4461fc50f54;hpb=11a371b31377905933b2d89f752a32d1b988e5cb;p=flightgear.git diff --git a/src/AIModel/AIAircraft.hxx b/src/AIModel/AIAircraft.hxx index 7e65d0df5..26ceb5120 100644 --- a/src/AIModel/AIAircraft.hxx +++ b/src/AIModel/AIAircraft.hxx @@ -53,6 +53,7 @@ public: void initializeFlightPlan(); FGAIFlightPlan* GetFlightPlan() const { return fp; }; void ProcessFlightPlan( double dt, time_t now ); + time_t checkForArrivalTime(string wptName); void AccelTo(double speed); void PitchTo(double angle); @@ -63,7 +64,9 @@ public: void getGroundElev(double dt); //TODO these 3 really need to be public? void doGroundAltitude(); - bool loadNextLeg (); + bool loadNextLeg (double dist=0); + void resetPositionFromFlightPlan(); + double getBearing(double crse); void setAcType(const std::string& ac) { acType = ac; }; void setCompany(const std::string& comp) { company = comp;}; @@ -90,6 +93,7 @@ public: inline double altitudeAGL() const { return props->getFloatValue("position/altitude-agl-ft");}; inline double airspeed() const { return props->getFloatValue("velocities/airspeed-kt");}; std::string atGate(); + protected: void Run(double dt); @@ -104,6 +108,8 @@ private: double dt_elev_count; double headingChangeRate; double headingError; + double minBearing; + double speedFraction; double groundTargetSpeed; double groundOffset; double dt; @@ -118,6 +124,7 @@ private: void handleFirstWaypoint(void); bool leadPointReached(FGAIFlightPlan::waypoint* curr); bool handleAirportEndPoints(FGAIFlightPlan::waypoint* prev, time_t now); + bool reachedEndOfCruise(double&); bool aiTrafficVisible(void); void controlHeading(FGAIFlightPlan::waypoint* curr); void controlSpeed(FGAIFlightPlan::waypoint* curr,