aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorUbitUmarov2012-10-10 01:37:59 +0100
committerUbitUmarov2012-10-10 01:37:59 +0100
commitd554c0d574f9c4763df0bbff931de0f944db53a5 (patch)
tree5376e942b6805d9db0432fbd0bf44c76b44e2bfe
parent add some quaternion normalizations to keep errors under control (diff)
downloadopensim-SC-d554c0d574f9c4763df0bbff931de0f944db53a5.zip
opensim-SC-d554c0d574f9c4763df0bbff931de0f944db53a5.tar.gz
opensim-SC-d554c0d574f9c4763df0bbff931de0f944db53a5.tar.bz2
opensim-SC-d554c0d574f9c4763df0bbff931de0f944db53a5.tar.xz
normalize quaternion.Slerp outputs
-rw-r--r--OpenSim/Region/Framework/Scenes/KeyframeMotion.cs1
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs1
2 files changed, 2 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
index 233e559..edf2bef 100644
--- a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
+++ b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
@@ -575,6 +575,7 @@ namespace OpenSim.Region.Framework.Scenes
575 Quaternion current = m_group.GroupRotation; 575 Quaternion current = m_group.GroupRotation;
576 576
577 Quaternion step = Quaternion.Slerp(m_currentFrame.StartRotation, (Quaternion)m_currentFrame.Rotation, complete); 577 Quaternion step = Quaternion.Slerp(m_currentFrame.StartRotation, (Quaternion)m_currentFrame.Rotation, complete);
578 step.Normalize();
578/* use simpler change detection 579/* use simpler change detection
579 * float angle = 0; 580 * float angle = 0;
580 581
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 66d85c4..1857757 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -5202,6 +5202,7 @@ namespace OpenSim.Region.Framework.Scenes
5202 } 5202 }
5203 5203
5204 Quaternion rot = Quaternion.Slerp(RotationOffset,APIDTarget,1.0f/(float)m_APIDIterations); 5204 Quaternion rot = Quaternion.Slerp(RotationOffset,APIDTarget,1.0f/(float)m_APIDIterations);
5205 rot.Normalize();
5205 UpdateRotation(rot); 5206 UpdateRotation(rot);
5206 5207
5207 m_APIDIterations--; 5208 m_APIDIterations--;