41 #include "FGAircraft.h"
42 #include "input_output/FGXMLElement.h"
58 HTailArea = VTailArea = 0.0;
59 HTailArm = VTailArm = 0.0;
78 bool FGAircraft::InitModel(
void)
80 if (!FGModel::InitModel())
return false;
83 vMoments.InitMatrix();
93 if (Holding)
return false;
97 vForces = in.AeroForce;
98 vForces += in.PropForce;
99 vForces += in.GroundForce;
100 vForces += in.ExternalForce;
101 vForces += in.BuoyantForce;
103 vMoments = in.AeroMoment;
104 vMoments += in.PropMoment;
105 vMoments += in.GroundMoment;
106 vMoments += in.ExternalMoment;
107 vMoments += in.BuoyantMoment;
156 lbarh = HTailArm/cbar;
157 lbarv = VTailArm/cbar;
158 if (WingArea != 0.0) {
159 vbarh = HTailArm*HTailArea / (cbar*WingArea);
160 vbarv = VTailArm*VTailArea / (WingSpan*WingArea);
164 PostLoad(el, FDMExec);
173 void FGAircraft::bind(
void)
179 PropertyManager->
Tie(
"metrics/iw-rad",
this, &FGAircraft::GetWingIncidence);
180 PropertyManager->
Tie(
"metrics/iw-deg",
this, &FGAircraft::GetWingIncidenceDeg);
181 PropertyManager->
Tie(
"metrics/Sh-sqft",
this, &FGAircraft::GetHTailArea);
182 PropertyManager->
Tie(
"metrics/lh-ft",
this, &FGAircraft::GetHTailArm);
183 PropertyManager->
Tie(
"metrics/Sv-sqft",
this, &FGAircraft::GetVTailArea);
184 PropertyManager->
Tie(
"metrics/lv-ft",
this, &FGAircraft::GetVTailArm);
185 PropertyManager->
Tie(
"metrics/lh-norm",
this, &FGAircraft::Getlbarh);
186 PropertyManager->
Tie(
"metrics/lv-norm",
this, &FGAircraft::Getlbarv);
187 PropertyManager->
Tie(
"metrics/vbarh-norm",
this, &FGAircraft::Getvbarh);
188 PropertyManager->
Tie(
"metrics/vbarv-norm",
this, &FGAircraft::Getvbarv);
192 PropertyManager->
Tie(
"metrics/eyepoint-x-in",
this, eX, (PMF)&FGAircraft::GetXYZep);
193 PropertyManager->
Tie(
"metrics/eyepoint-y-in",
this, eY,(PMF)&FGAircraft::GetXYZep);
194 PropertyManager->
Tie(
"metrics/eyepoint-z-in",
this, eZ, (PMF)&FGAircraft::GetXYZep);
195 PropertyManager->
Tie(
"metrics/visualrefpoint-x-in",
this, eX, (PMF)&FGAircraft::GetXYZvrp);
196 PropertyManager->
Tie(
"metrics/visualrefpoint-y-in",
this, eY, (PMF)&FGAircraft::GetXYZvrp);
197 PropertyManager->
Tie(
"metrics/visualrefpoint-z-in",
this, eZ, (PMF)&FGAircraft::GetXYZvrp);
219 void FGAircraft::Debug(
int from)
221 if (debug_lvl <= 0)
return;
225 cout << endl <<
" Aircraft Metrics:" << endl;
226 cout <<
" WingArea: " << WingArea << endl;
227 cout <<
" WingSpan: " << WingSpan << endl;
228 cout <<
" Incidence: " << WingIncidence << endl;
229 cout <<
" Chord: " << cbar << endl;
230 cout <<
" H. Tail Area: " << HTailArea << endl;
231 cout <<
" H. Tail Arm: " << HTailArm << endl;
232 cout <<
" V. Tail Area: " << VTailArea << endl;
233 cout <<
" V. Tail Arm: " << VTailArm << endl;
234 cout <<
" Eyepoint (x, y, z): " << vXYZep << endl;
235 cout <<
" Ref Pt (x, y, z): " << vXYZrp << endl;
236 cout <<
" Visual Ref Pt (x, y, z): " << vXYZvrp << endl;
239 if (debug_lvl & 2 ) {
240 if (from == 0) cout <<
"Instantiated: FGAircraft" << endl;
241 if (from == 1) cout <<
"Destroyed: FGAircraft" << endl;
243 if (debug_lvl & 4 ) {
245 if (debug_lvl & 8 ) {
247 if (debug_lvl & 16) {
249 if (debug_lvl & 64) {