1
0
Fork 0

Maintenance: AIModel

Improve inheritance/polymorphism by eliminating shadow methods.
This commit is contained in:
Scott Giese 2021-02-21 23:18:15 -06:00
parent 7ee64f9994
commit 190aad784b
12 changed files with 58 additions and 71 deletions

View file

@ -38,11 +38,11 @@ public:
FGAIAircraft(FGAISchedule *ref=0); FGAIAircraft(FGAISchedule *ref=0);
~FGAIAircraft(); ~FGAIAircraft();
virtual void readFromScenario(SGPropertyNode* scFileNode); void readFromScenario(SGPropertyNode* scFileNode) override;
virtual void bind(); void bind() override;
virtual void update(double dt); void update(double dt) override;
virtual void unbind(); void unbind() override;
void setPerformance(const std::string& acType, const std::string& perfString); void setPerformance(const std::string& acType, const std::string& perfString);
@ -82,7 +82,7 @@ public:
void setTakeOffStatus(int status) { takeOffStatus = status; }; void setTakeOffStatus(int status) { takeOffStatus = status; };
void scheduleForATCTowerDepartureControl(int state); void scheduleForATCTowerDepartureControl(int state);
virtual const char* getTypeString(void) const { return "aircraft"; } const char* getTypeString(void) const override { return "aircraft"; }
const std::string& GetTransponderCode() { return transponderCode; }; const std::string& GetTransponderCode() { return transponderCode; };
void SetTransponderCode(const std::string& tc) { transponderCode = tc;}; void SetTransponderCode(const std::string& tc) { transponderCode = tc;};

View file

@ -38,14 +38,14 @@ public:
FGAIBallistic(object_type ot = otBallistic); FGAIBallistic(object_type ot = otBallistic);
~FGAIBallistic(); ~FGAIBallistic();
void readFromScenario(SGPropertyNode* scFileNode); void readFromScenario(SGPropertyNode* scFileNode) override;
bool init(ModelSearchOrder searchOrder) override; bool init(ModelSearchOrder searchOrder) override;
virtual void bind(); void bind() override;
virtual void reinit(); void reinit() override;
virtual void update(double dt); void update(double dt) override;
virtual const char* getTypeString(void) const { return "ballistic"; } const char* getTypeString(void) const override { return "ballistic"; }
void Run(double dt); void Run(double dt);

View file

@ -43,14 +43,14 @@ public:
FGAICarrier(); FGAICarrier();
virtual ~FGAICarrier(); virtual ~FGAICarrier();
virtual void readFromScenario(SGPropertyNode* scFileNode); void readFromScenario(SGPropertyNode* scFileNode) override;
void setSign(const string& ); void setSign(const string& );
void setDeckAltitude(const double altitude_feet); void setDeckAltitude(const double altitude_feet);
void setTACANChannelID(const string &); void setTACANChannelID(const string &);
virtual double getDefaultModelRadius() { return 350.0; } double getDefaultModelRadius() override { return 350.0; }
virtual void bind(); void bind() override;
void UpdateWind ( double dt ); void UpdateWind ( double dt );
void setWind_from_east( double fps ); void setWind_from_east( double fps );
void setWind_from_north( double fps ); void setWind_from_north( double fps );
@ -68,7 +68,7 @@ public:
bool init(ModelSearchOrder searchOrder) override; bool init(ModelSearchOrder searchOrder) override;
virtual const char* getTypeString(void) const { return "carrier"; } const char* getTypeString(void) const override { return "carrier"; }
bool getParkPosition(const string& id, SGGeod& geodPos, bool getParkPosition(const string& id, SGGeod& geodPos,
double& hdng, SGVec3d& uvw); double& hdng, SGVec3d& uvw);
@ -106,15 +106,12 @@ private:
double heading_deg; double heading_deg;
}; };
void update(double dt) override;
void update(double dt);
double wind_from_east; // fps double wind_from_east; // fps
double wind_from_north; // fps double wind_from_north; // fps
double rel_wind_speed_kts; double rel_wind_speed_kts;
double rel_wind_from_deg; double rel_wind_from_deg;
list<ParkPosition> ppositions; // List of positions where an aircraft can start. list<ParkPosition> ppositions; // List of positions where an aircraft can start.
string sign; // The sign of this carrier. string sign; // The sign of this carrier.

View file

@ -38,14 +38,14 @@ public:
FGAIEscort(); FGAIEscort();
virtual ~FGAIEscort(); virtual ~FGAIEscort();
virtual void readFromScenario(SGPropertyNode* scFileNode); void readFromScenario(SGPropertyNode* scFileNode) override;
bool init(ModelSearchOrder searchOrder) override; bool init(ModelSearchOrder searchOrder) override;
virtual void bind(); void bind() override;
virtual void reinit(); void reinit() override;
virtual void update (double dt); void update(double dt) override;
virtual const char* getTypeString(void) const { return "escort"; } const char* getTypeString(void) const override { return "escort"; }
private: private:
void setStnRange(double r); void setStnRange(double r);

View file

@ -36,17 +36,16 @@ public:
FGAIGroundVehicle(); FGAIGroundVehicle();
virtual ~FGAIGroundVehicle(); virtual ~FGAIGroundVehicle();
virtual void readFromScenario(SGPropertyNode* scFileNode); void readFromScenario(SGPropertyNode* scFileNode) override;
bool init(ModelSearchOrder searchOrder) override; bool init(ModelSearchOrder searchOrder) override;
virtual void bind(); void bind() override;
virtual void reinit(); void reinit() override;
virtual void update (double dt); void update(double dt) override;
virtual const char* getTypeString(void) const { return "groundvehicle"; } const char* getTypeString(void) const override { return "groundvehicle"; }
private: private:
void setNoRoll(bool nr); void setNoRoll(bool nr);
void setContactX1offset(double x1); void setContactX1offset(double x1);
void setContactX2offset(double x2); void setContactX2offset(double x2);

View file

@ -33,8 +33,8 @@ public:
virtual ~FGAIMultiplayer(); virtual ~FGAIMultiplayer();
bool init(ModelSearchOrder searchOrder) override; bool init(ModelSearchOrder searchOrder) override;
virtual void bind(); void bind() override;
virtual void update(double dt); void update(double dt) override;
void addMotionInfo(FGExternalMotionData& motionInfo, long stamp); void addMotionInfo(FGExternalMotionData& motionInfo, long stamp);
void setDoubleProperty(const std::string& prop, double val); void setDoubleProperty(const std::string& prop, double val);
@ -75,7 +75,7 @@ public:
void clearMotionInfo(); void clearMotionInfo();
virtual const char* getTypeString(void) const { return "multiplayer"; } const char* getTypeString(void) const override { return "multiplayer"; }
private: private:

View file

@ -31,17 +31,16 @@ class FGAIManager;
class FGAIShip : public FGAIBase { class FGAIShip : public FGAIBase {
public: public:
FGAIShip(object_type ot = otShip); FGAIShip(object_type ot = otShip);
virtual ~FGAIShip(); virtual ~FGAIShip();
virtual void readFromScenario(SGPropertyNode* scFileNode); void readFromScenario(SGPropertyNode* scFileNode) override;
bool init(ModelSearchOrder searchOrder) override; bool init(ModelSearchOrder searchOrder) override;
virtual void bind(); void bind() override;
virtual void update(double dt); void update(double dt) override;
virtual void reinit(); void reinit() override;
virtual double getDefaultModelRadius() { return 200.0; } double getDefaultModelRadius() override { return 200.0; }
void setRudder(float r); void setRudder(float r);
void setRoll(double rl); void setRoll(double rl);
@ -78,7 +77,7 @@ public:
bool _tunnel, _initial_tunnel; bool _tunnel, _initial_tunnel;
bool _restart; bool _restart;
virtual const char* getTypeString(void) const { return "ship"; } const char* getTypeString(void) const override { return "ship"; }
double _rudder_constant, _speed_constant, _hdg_constant, _limit ; double _rudder_constant, _speed_constant, _hdg_constant, _limit ;
double _elevation_m, _elevation_ft; double _elevation_m, _elevation_ft;
double _missed_range, _tow_angle, _wait_count, _missed_count,_wp_range; double _missed_range, _tow_angle, _wait_count, _missed_count,_wp_range;
@ -91,8 +90,6 @@ public:
protected: protected:
private: private:
void setRepeat(bool r); void setRepeat(bool r);
void setRestart(bool r); void setRestart(bool r);
void setMissed(bool m); void setMissed(bool m);
@ -136,7 +133,6 @@ private:
bool _repeat; bool _repeat;
bool _fp_init; bool _fp_init;
bool _missed; bool _missed;
}; };

View file

@ -32,14 +32,12 @@ class FGAIStatic : public FGAIBase {
public: public:
FGAIStatic(); FGAIStatic();
~FGAIStatic(); ~FGAIStatic();
virtual void update(double dt); void update(double dt) override;
virtual const char* getTypeString(void) const { return "static"; } const char* getTypeString(void) const override { return "static"; }
}; };
#endif // _FG_AISTATIC_HXX #endif // _FG_AISTATIC_HXX

View file

@ -32,12 +32,12 @@ class FGAIStorm : public FGAIBase {
public: public:
FGAIStorm(); FGAIStorm();
~FGAIStorm(); ~FGAIStorm();
void readFromScenario(SGPropertyNode* scFileNode);
virtual void update(double dt); void readFromScenario(SGPropertyNode* scFileNode) override;
void update(double dt) override;
inline void setStrengthNorm( double s ) { strength_norm = s; }; inline void setStrengthNorm( double s ) { strength_norm = s; };
inline void setDiameter( double d ) { diameter = d; }; inline void setDiameter( double d ) { diameter = d; };
inline void setHeight( double h ) { height = h; }; inline void setHeight( double h ) { height = h; };
@ -45,14 +45,13 @@ public:
inline double getDiameter() const { return diameter; }; inline double getDiameter() const { return diameter; };
inline double getHeight() const { return height; }; inline double getHeight() const { return height; };
virtual const char* getTypeString(void) const { return "thunderstorm"; } const char* getTypeString(void) const override { return "thunderstorm"; }
private: private:
double diameter; // diameter of turbulence zone, in nm double diameter; // diameter of turbulence zone, in nm
double height; // top of turbulence zone, in feet MSL double height; // top of turbulence zone, in feet MSL
double strength_norm; // strength of turbulence double strength_norm; // strength of turbulence
void Run(double dt); void Run(double dt);
// lightning stuff // lightning stuff
double delay; // average time (sec) between lightning flashes double delay; // average time (sec) between lightning flashes
@ -71,6 +70,4 @@ private:
}; };
#endif // _FG_AIStorm_HXX #endif // _FG_AIStorm_HXX

View file

@ -39,10 +39,10 @@ public:
FGAITanker(FGAISchedule* ref = 0); FGAITanker(FGAISchedule* ref = 0);
~FGAITanker(); ~FGAITanker();
virtual void readFromScenario(SGPropertyNode* scFileNode); void readFromScenario(SGPropertyNode* scFileNode) override;
virtual void bind(); void bind() override;
virtual const char* getTypeString(void) const { return "tanker"; } const char* getTypeString(void) const override { return "tanker"; }
void setTACANChannelID(const std::string& id); void setTACANChannelID(const std::string& id);
@ -51,7 +51,7 @@ private:
bool contact; // set if this tanker is within fuelling range bool contact; // set if this tanker is within fuelling range
virtual void Run(double dt); virtual void Run(double dt);
virtual void update (double dt); void update(double dt) override;
}; };
#endif #endif

View file

@ -36,11 +36,11 @@ public:
FGAIThermal(); FGAIThermal();
~FGAIThermal(); ~FGAIThermal();
void readFromScenario(SGPropertyNode* scFileNode); void readFromScenario(SGPropertyNode* scFileNode) override;
bool init(ModelSearchOrder searchOrder) override; bool init(ModelSearchOrder searchOrder) override;
virtual void bind(); void bind() override;
virtual void update(double dt); void update(double dt) override;
inline void setMaxStrength( double s ) { max_strength = s; }; inline void setMaxStrength( double s ) { max_strength = s; };
inline void setDiameter( double d ) { diameter = d; }; inline void setDiameter( double d ) { diameter = d; };
@ -56,7 +56,7 @@ public:
inline double getV_up_min() const { return v_up_min; }; inline double getV_up_min() const { return v_up_min; };
inline double getR_up_frac() const { return r_up_frac; }; inline double getR_up_frac() const { return r_up_frac; };
virtual const char* getTypeString(void) const { return "thermal"; } const char* getTypeString(void) const override { return "thermal"; }
void getGroundElev(double dt); void getGroundElev(double dt);
private: private:

View file

@ -33,14 +33,14 @@ public:
FGAIWingman(); FGAIWingman();
virtual ~FGAIWingman(); virtual ~FGAIWingman();
virtual void readFromScenario(SGPropertyNode* scFileNode); void readFromScenario(SGPropertyNode* scFileNode) override;
bool init(ModelSearchOrder searchOrder) override; bool init(ModelSearchOrder searchOrder) override;
virtual void bind(); void bind() override;
virtual void reinit(); void reinit() override;
virtual void update (double dt); void update(double dt) override;
virtual const char* getTypeString(void) const { return "wingman"; } const char* getTypeString(void) const override { return "wingman"; }
private: private:
void formateToAC(double dt); void formateToAC(double dt);