commit c59fc52d0cef5c2f8e0f12b403a7ece5dd5b05d7
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Wed Dec 18 21:33:09 2019 +0000

    Dynamics App: fix moving Quat Points
    Library: remove negating the Quat Points in the DynamicQuat in order to always go the shortest route.

diff --git a/src/main/java/org/distorted/library/type/DynamicQuat.java b/src/main/java/org/distorted/library/type/DynamicQuat.java
index 6467e54..f62b136 100644
--- a/src/main/java/org/distorted/library/type/DynamicQuat.java
+++ b/src/main/java/org/distorted/library/type/DynamicQuat.java
@@ -27,6 +27,9 @@ import java.util.Vector;
 * of Static4Ds.
 * Here, the Points are assumed to be Quaternions - thus we do the Spherical Linear Interpolation, aka
 * SLERP. Noise not supported (yet?).
+*
+* Only unit quaternions represent valid rotations in 3D - and interpolating through rotations is the
+* most common use case for this class. No effort is done to normalize the Points though.
 */
 
 public class DynamicQuat extends Dynamic implements Data4D
@@ -86,18 +89,8 @@ public class DynamicQuat extends Dynamic implements Data4D
         vq.vw = cu.w;
     	
         vq.cosOmega = cu.x*ne.x + cu.y*ne.y + cu.z*ne.z + cu.w*ne.w;
-      	
-        if( vq.cosOmega<0 && n!=0 )  // do not invert the last quaternion even if we'd have to go the long way around!
-          {
-          vq.cosOmega = -vq.cosOmega;
-          ne.x = -ne.x;
-          ne.y = -ne.y;
-          ne.z = -ne.z;
-          ne.w = -ne.w;
-          }
-      	
         vq.sinOmega = (float)Math.sqrt(1-vq.cosOmega*vq.cosOmega);
-        vq.omega = arcCos(vq.cosOmega);
+        vq.omega    = arcCos(vq.cosOmega);
         }
       }
    
@@ -154,7 +147,7 @@ public class DynamicQuat extends Dynamic implements Data4D
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 /**
  * Resets the location'th Point.
- * 
+ *
  * @param location the index of the Point we are setting.
  * @param x New value of its first float.
  */
