Aileron(0.0),
Elevator(0.0),
Elevator_Trim(0.0),
- Rudder(0.0)
+ Rudder(0.0),
+ Speed_Max(fgGetNode("/engines/engine/speed-max-mps", true))
{
// set_delta_t( dt );
}
// for each subsequent iteration through the EOM
void FGUFO::init() {
common_init();
+ if (Speed_Max->getDoubleValue() < 0.01)
+ Speed_Max->setDoubleValue(2000.0);
}
+ Rudder * (1 - rudder_damp);
// the velocity of the aircraft
- double velocity = Throttle * 2000; // meters/sec
+ double velocity = Throttle * Speed_Max->getDoubleValue(); // meters/sec
double old_pitch = get_Theta();
double pitch_rate = SGD_PI_4; // assume I will be pitching up
sgGeodToGeoc( get_Latitude(), get_Altitude(), &sl_radius, &lat_geoc );
// update euler angles
- _set_Euler_Angles( roll, pitch,
- fmod(get_Psi() + turn + yaw, SGD_2PI) );
+ double heading = fmod(get_Psi() + turn + yaw, SGD_2PI);
+ _set_Euler_Angles(roll, pitch, heading);
_set_Euler_Rates(0,0,0);
_set_Geocentric_Position( lat_geoc, get_Longitude(),
_update_ground_elev_at_pos();
_set_Sea_level_radius( sl_radius * SG_METER_TO_FEET);
_set_Altitude( get_Altitude() + climb );
+ _set_Altitude_AGL( get_Altitude() - get_Runway_altitude() );
+
+ set_V_north(cos(heading) * velocity * SG_METER_TO_FEET);
+ set_V_east(sin(heading) * velocity * SG_METER_TO_FEET);
+ set_V_down(-real_climb_rate);
}