42
46
virtual void reinit() { init(); }
43
47
virtual void update (double dt);
49
void formateToAC(double dt);
50
void Break(double dt);
54
double getDistanceToOffset() const;
55
double getElevToOffset() const;
57
double calcAngle(double rangeM, SGGeod pos1, SGGeod pos2);
58
double calcDistanceM(SGGeod pos1, SGGeod pos2) const;
64
double _break_angle; //degrees relative
65
double _coeff_hdg; //dimensionless coefficient
66
double _coeff_pch; //dimensionless coefficient
67
double _coeff_bnk; //dimensionless coefficient
68
double _coeff_spd; //dimensionless coefficient
70
SGPropertyNode_ptr user_WoW_node;
72
inline void setFormate(bool f);
73
inline void setTgtHdg(double hdg);
74
inline void setTgtSpd(double spd);
75
inline void setBrkHdg(double angle);
76
inline void setBrkAng(double angle);
77
inline void setCoeffHdg(double h);
78
inline void setCoeffPch(double p);
79
inline void setCoeffBnk(double r);
80
inline void setCoeffSpd(double s);
82
inline bool getFormate() const { return _formate_to_ac;}
84
inline double getTgtHdg() const { return tgt_heading;}
85
inline double getTgtSpd() const { return tgt_speed;}
86
inline double getBrkAng() const { return _break_angle;}
88
inline SGVec3d getCartInPos(SGGeod in_pos) const;
92
void FGAIWingman::setFormate(bool f) {
96
void FGAIWingman::setTgtHdg(double h) {
100
void FGAIWingman::setTgtSpd(double s) {
104
void FGAIWingman::setBrkHdg(double a){
105
tgt_heading = hdg + a ;
106
SG_NORMALIZE_RANGE(tgt_heading, 0.0, 360.0);
109
void FGAIWingman::setBrkAng(double a){
111
SG_NORMALIZE_RANGE(_break_angle, -180.0, 180.0);
114
void FGAIWingman::setCoeffHdg(double h){
118
void FGAIWingman::setCoeffPch(double p){
122
void FGAIWingman::setCoeffBnk(double b){
126
void FGAIWingman::setCoeffSpd(double s){
130
//bool FGAIWingman::getFormate() const {
131
// return _formate_to_ac;
134
//double FGAIWingman::getTgtHdg() const{
135
// return tgt_heading;
138
//double FGAIWingman::getTgtSpd() const{
142
//double FGAIWingman::getBrkAng() const{
143
// return _break_angle;
146
SGVec3d FGAIWingman::getCartInPos(SGGeod in_pos) const {
147
SGVec3d cartPos = SGVec3d::fromGeod(in_pos);
47
151
#endif // FG_AIWINGMAN_HXX