+
+ // Fill out our engine and gear objects
+ int i;
+ for(i=0; i<get_num_gear(); i++) {
+ FGGearInterface* fgg = get_gear_unit(i);
+ Gear* g = airplane->getGear(i);
+ if(g->getBrake() != 0)
+ fgg->SetBrake(true);
+ if(g->getCompressFraction() != 0)
+ fgg->SetWoW(true);
+ else
+ fgg->SetWoW(false);
+ fgg->SetPosition(g->getExtension());
+ }
+
+ for(i=0; i<get_num_engines(); i++) {
+ FGEngInterface* fge = get_engine(i);
+ Thruster* t = model->getThruster(i);
+
+ fge->set_Running_Flag(true);
+ fge->set_Cranking_Flag(false);
+
+ // Note: assumes all tanks have the same fuel density!
+ fge->set_Fuel_Flow(CM2GALS * t->getFuelFlow()
+ / airplane->getFuelDensity(0));
+
+ float tmp[3];
+ t->getThrust(tmp);
+ fge->set_prop_thrust(Math::mag3(tmp) * KG2LBS / 9.8);
+
+ PropEngine* pe = t->getPropEngine();
+ if(pe) {
+ fge->set_RPM(pe->getOmega() * RAD2RPM);
+
+ pe->getTorque(tmp);
+ float power = Math::mag3(tmp) * pe->getOmega();
+ float maxPower = pe->getPistonEngine()->getPower();
+
+ fge->set_MaxHP(maxPower * W2HP);
+ fge->set_Percentage_Power(100 * power/maxPower);
+ }
+ }