]> git.mxchange.org Git - flightgear.git/commitdiff
UFO and MagicCarpet FDM: avoid negative headings
authorTorsten Dreyer <torsten@t3r.de>
Wed, 8 Jul 2015 09:14:46 +0000 (11:14 +0200)
committerTorsten Dreyer <torsten@t3r.de>
Wed, 8 Jul 2015 09:14:46 +0000 (11:14 +0200)
Both FDM set the heading to negative values when turning left
through north. This should be fixed by this commit.

src/FDM/SP/MagicCarpet.cxx
src/FDM/UFO.cxx

index 822c1aa89f665a3e24ba41c276a511ae0f7590e8..d5b202ac8e71dbdbddd82d6cd4b7917e217e5f3c 100644 (file)
@@ -81,7 +81,7 @@ void FGMagicCarpet::update( double dt ) {
 
     // update euler angles
     _set_Euler_Angles( get_Phi(), get_Theta(),
-                       fmod(get_Psi() + turn, SGD_2PI) );
+                       SGMiscd::normalizePeriodic(0, SGD_2PI, get_Psi() + turn) );
     _set_Euler_Rates(0,0,0);
 
     // update (lon/lat) position
index edb56c0bbac1d5b96606c53815bb4a33e902fc6e..6e2c54e4bcfb3f3aa002f0042979254171fbc98d 100644 (file)
@@ -173,7 +173,7 @@ void FGUFO::update( double dt ) {
     sgGeodToGeoc( get_Latitude(), get_Altitude(), &sl_radius, &lat_geoc );
 
     // update euler angles
-    double heading = fmod(get_Psi() + turn + yaw, SGD_2PI);
+    double heading = SGMiscd::normalizePeriodic(0, SGD_2PI, get_Psi() + turn + yaw );
     _set_Euler_Angles(roll, pitch, heading);
     _set_Euler_Rates(0,0,0);