Browse Source

Fix rotation when vectors are in the same direction #690

Olivier Sohn 8 years ago
parent
commit
6f61bb4d2e
1 changed files with 4 additions and 2 deletions
  1. 4 2
      glm/gtx/quaternion.inl

+ 4 - 2
glm/gtx/quaternion.inl

@@ -184,8 +184,10 @@ namespace glm
 		T cosTheta = dot(orig, dest);
 		T cosTheta = dot(orig, dest);
 		vec<3, T, Q> rotationAxis;
 		vec<3, T, Q> rotationAxis;
 
 
-		if(cosTheta >= static_cast<T>(1) - epsilon<T>())
-			return quat();
+		if(cosTheta >= static_cast<T>(1) - epsilon<T>()) {
+			// orig and dest point in the same direction : return identity quaternion.
+			return quat(1, 0, 0, 0);
+		}
 
 
 		if(cosTheta < static_cast<T>(-1) + epsilon<T>())
 		if(cosTheta < static_cast<T>(-1) + epsilon<T>())
 		{
 		{