fix positions on same frames transitions

avinationmerge
UbitUmarov 2014-09-19 01:07:20 +01:00
parent f35f90bd72
commit 242bb425f3
1 changed files with 3 additions and 8 deletions

View File

@ -624,7 +624,6 @@ namespace OpenSim.Region.Framework.Scenes
return; return;
} }
if (m_group == null) if (m_group == null)
return; return;
@ -636,7 +635,6 @@ namespace OpenSim.Region.Framework.Scenes
{ {
m_group.RootPart.Velocity = Vector3.Zero; m_group.RootPart.Velocity = Vector3.Zero;
m_group.SendGroupRootTerseUpdate(); m_group.SendGroupRootTerseUpdate();
} }
return; return;
} }
@ -683,6 +681,7 @@ namespace OpenSim.Region.Framework.Scenes
m_currentFrame.TimeMS += (int)tickDuration; m_currentFrame.TimeMS += (int)tickDuration;
} }
//force a update on a keyframe transition //force a update on a keyframe transition
m_nextPosition = m_group.AbsolutePosition;
update = true; update = true;
} }
@ -721,14 +720,10 @@ namespace OpenSim.Region.Framework.Scenes
Vector3 motionThisFrame = v / (float)steps; Vector3 motionThisFrame = v / (float)steps;
v = v * 1000 / m_currentFrame.TimeMS; v = v * 1000 / m_currentFrame.TimeMS;
if (Vector3.Mag(motionThisFrame) >= 0.05f)
{
// m_group.AbsolutePosition += motionThisFrame;
m_nextPosition = m_group.AbsolutePosition + motionThisFrame; m_nextPosition = m_group.AbsolutePosition + motionThisFrame;
//m_group.RootPart.Velocity = v; if (Vector3.Mag(motionThisFrame) >= 0.05f)
update = true; update = true;
}
if ((Quaternion)m_currentFrame.Rotation != m_group.GroupRotation) if ((Quaternion)m_currentFrame.Rotation != m_group.GroupRotation)
{ {