From: andy Date: Mon, 28 Aug 2006 17:24:34 +0000 (+0000) Subject: Curt noticed a while back that YASim was producing alpha and sideslip X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=2f2d486778cdedda83c12c660c1bbd472e61f528;p=flightgear.git Curt noticed a while back that YASim was producing alpha and sideslip values that were angles between the aircraft's orientation and the global velocity vector, not the airflow velocity. So the HUD velocity vector was wrong when the wind was non-zero. Fix that. --- diff --git a/src/FDM/YASim/Glue.cpp b/src/FDM/YASim/Glue.cpp index 8922363da..90e9fdb24 100644 --- a/src/FDM/YASim/Glue.cpp +++ b/src/FDM/YASim/Glue.cpp @@ -2,11 +2,12 @@ #include "Glue.hpp" namespace yasim { -void Glue::calcAlphaBeta(State* s, float* alpha, float* beta) +void Glue::calcAlphaBeta(State* s, float* wind, float* alpha, float* beta) { // Convert the velocity to the aircraft frame. float v[3]; - Math::vmul33(s->orient, s->v, v); + Math::sub3(s->v, wind, v); + Math::vmul33(s->orient, v, v); // By convention, positive alpha is an up pitch, and a positive // beta is yawed to the right. diff --git a/src/FDM/YASim/Glue.hpp b/src/FDM/YASim/Glue.hpp index dd621e12d..12f2f8349 100644 --- a/src/FDM/YASim/Glue.hpp +++ b/src/FDM/YASim/Glue.hpp @@ -10,7 +10,7 @@ namespace yasim { // out the middle of the western hemisphere. class Glue { public: - static void calcAlphaBeta(State* s, float* alpha, float* beta); + static void calcAlphaBeta(State* s, float* wind, float* alpha, float* beta); // Calculates the instantaneous rotation velocities about each // axis. diff --git a/src/FDM/YASim/YASim.cxx b/src/FDM/YASim/YASim.cxx index 924399afe..27fcbff6d 100644 --- a/src/FDM/YASim/YASim.cxx +++ b/src/FDM/YASim/YASim.cxx @@ -441,7 +441,7 @@ void YASim::copyFromYASim() // orientation float alpha, beta; - Glue::calcAlphaBeta(s, &alpha, &beta); + Glue::calcAlphaBeta(s, wind, &alpha, &beta); _set_Alpha(alpha); _set_Beta(beta);