void YASim::copyToYASim(bool copyState)
{
// Physical state
- float lat = get_Latitude();
- float lon = get_Longitude();
+ double lat = get_Latitude();
+ double lon = get_Longitude();
float alt = get_Altitude() * FT2M;
float roll = get_Phi();
float pitch = get_Theta();
double lat, lon, alt;
sgCartToGeod(s->pos, &lat, &lon, &alt);
_set_Geodetic_Position(lat, lon, alt*M2FT);
- _update_ground_elev_at_pos();
+ double groundlevel_m = get_groundlevel_m(lat, lon, alt);
+ _set_Runway_altitude(groundlevel_m*SG_METER_TO_FEET);
+ _set_Altitude_AGL((alt-groundlevel_m)*SG_METER_TO_FEET);
+
+ // the smallest agl of all gears
+ fgSetFloat("/position/gear-agl-m", model->getAGL());
+ fgSetFloat("/position/gear-agl-ft", model->getAGL()*M2FT);
// UNUSED
//_set_Geocentric_Position(Glue::geod2geocLat(lat), lon, alt*M2FT);
- _set_Altitude_AGL(model->getAGL() * M2FT);
-
// useful conversion matrix
float xyz2ned[9];
Glue::xyz2nedMat(lat, lon, xyz2ned);
// orientation
float alpha, beta;
- Glue::calcAlphaBeta(s, &alpha, &beta);
+ Glue::calcAlphaBeta(s, wind, &alpha, &beta);
_set_Alpha(alpha);
_set_Beta(beta);
if(l) {
SGPropertyNode * node = fgGetNode("gear/launchbar", 0, true);
node->setFloatValue("position-norm", l->getCompressFraction());
+ node->setFloatValue("holdback-position-norm", l->getHoldbackCompressFraction());
+ node->setStringValue("state", l->getState());
+ node->setBoolValue("strop", l->getStrop());
}
+
}