Browse Source

Fix LookAt Mixed rotation mode.

Eugene Kozlov 9 years ago
parent
commit
7c72c36676
1 changed files with 3 additions and 3 deletions
  1. 3 3
      Source/Urho3D/Graphics/Camera.cpp

+ 3 - 3
Source/Urho3D/Graphics/Camera.cpp

@@ -548,11 +548,11 @@ Quaternion Camera::GetFaceCameraRotation(const Vector3& position, const Quaterni
     case FC_LOOKAT_MIXED:
         {
             // Make the Y-only lookat happen on an XZ plane to make sure there are no unwanted transitions or singularities
-            Vector3 lookAtVec(position - node_->GetWorldPosition());
-            lookAtVec.y_ = 0.0f;
+            const Vector3 lookAtVec(position - node_->GetWorldPosition());
+            const Vector3 lookAtVecXZ(lookAtVec.x_, 0.0f, lookAtVec.z_);
 
             Quaternion lookAt;
-            lookAt.FromLookRotation(lookAtVec);
+            lookAt.FromLookRotation(lookAtVecXZ);
 
             Vector3 euler = rotation.EulerAngles();
             if (mode == FC_LOOKAT_MIXED)