Added quaternion around world tests for accuracy and speed.
[libecef.git] / include / ecef-quaternion.h
index 2a6ebc1..d43ba7e 100644 (file)
@@ -42,8 +42,7 @@ struct quat
   quat versor() const {double m=mag(); return tolerance(m) ? quat(0, zAxis) : *this/m;}                // Unit Quaternion
   quat normVec() const {double s=a*a;  s= a<=1 ? sqrt(1-s) : 0; return quat(a, v.norm(s));}    // Normalize Quaternion by only scalling the vector
 
-  // vec operator*(const vec v2) const {return (*this * quat(0,v2) * conj()).v;}               // Rotate vector by quaternion
-  vec operator*(const vec v2) const {return (quat(-v.dot(v2), v2*a + v.cross(v2)) * conj()).v;}        //  but skip the initial mult-by-zero
+  vec operator*(const vec v2) const {return (*this * quat(0,v2) * conj()).v;}                  // Rotate vector by quaternion (32nS on 2.1 GHz Intel E6420)
   };
 
 }