diff options
author | UbitUmarov | 2012-10-10 01:37:59 +0100 |
---|---|---|
committer | UbitUmarov | 2012-10-10 01:37:59 +0100 |
commit | d554c0d574f9c4763df0bbff931de0f944db53a5 (patch) | |
tree | 5376e942b6805d9db0432fbd0bf44c76b44e2bfe | |
parent | add some quaternion normalizations to keep errors under control (diff) | |
download | opensim-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.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 1 |
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--; |