diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/KeyframeMotion.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/KeyframeMotion.cs | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs index edf2bef..43f46d1 100644 --- a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs +++ b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs | |||
@@ -345,9 +345,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
345 | m_baseRotation = m_group.GroupRotation; | 345 | m_baseRotation = m_group.GroupRotation; |
346 | 346 | ||
347 | m_group.RootPart.Velocity = Vector3.Zero; | 347 | m_group.RootPart.Velocity = Vector3.Zero; |
348 | m_group.RootPart.UpdateAngularVelocity(Vector3.Zero); | 348 | m_group.RootPart.AngularVelocity = Vector3.Zero; |
349 | m_group.SendGroupRootTerseUpdate(); | 349 | // m_group.SendGroupRootTerseUpdate(); |
350 | 350 | m_group.RootPart.ScheduleTerseUpdate(); | |
351 | m_frames.Clear(); | 351 | m_frames.Clear(); |
352 | } | 352 | } |
353 | 353 | ||
@@ -357,8 +357,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
357 | RemoveTimer(); | 357 | RemoveTimer(); |
358 | 358 | ||
359 | m_group.RootPart.Velocity = Vector3.Zero; | 359 | m_group.RootPart.Velocity = Vector3.Zero; |
360 | m_group.RootPart.UpdateAngularVelocity(Vector3.Zero); | 360 | m_group.RootPart.AngularVelocity = Vector3.Zero; |
361 | m_group.SendGroupRootTerseUpdate(); | 361 | // m_group.SendGroupRootTerseUpdate(); |
362 | m_group.RootPart.ScheduleTerseUpdate(); | ||
363 | |||
362 | } | 364 | } |
363 | 365 | ||
364 | private void GetNextList() | 366 | private void GetNextList() |
@@ -489,7 +491,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
489 | if (m_group.RootPart.Velocity != Vector3.Zero) | 491 | if (m_group.RootPart.Velocity != Vector3.Zero) |
490 | { | 492 | { |
491 | m_group.RootPart.Velocity = Vector3.Zero; | 493 | m_group.RootPart.Velocity = Vector3.Zero; |
492 | m_group.SendGroupRootTerseUpdate(); | 494 | // m_group.SendGroupRootTerseUpdate(); |
495 | m_group.RootPart.ScheduleTerseUpdate(); | ||
496 | |||
493 | } | 497 | } |
494 | m_inOnTimer = false; | 498 | m_inOnTimer = false; |
495 | return; | 499 | return; |
@@ -539,13 +543,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
539 | if (steps <= 0.0) | 543 | if (steps <= 0.0) |
540 | { | 544 | { |
541 | m_group.RootPart.Velocity = Vector3.Zero; | 545 | m_group.RootPart.Velocity = Vector3.Zero; |
542 | m_group.RootPart.UpdateAngularVelocity(Vector3.Zero); | 546 | m_group.RootPart.AngularVelocity = Vector3.Zero; |
543 | 547 | ||
544 | m_nextPosition = (Vector3)m_currentFrame.Position; | 548 | m_nextPosition = (Vector3)m_currentFrame.Position; |
545 | m_group.AbsolutePosition = m_nextPosition; | 549 | m_group.AbsolutePosition = m_nextPosition; |
546 | 550 | ||
547 | m_group.UpdateGroupRotationR((Quaternion)m_currentFrame.Rotation); | 551 | // we are sending imediate updates, no doing force a extra terseUpdate |
552 | // m_group.UpdateGroupRotationR((Quaternion)m_currentFrame.Rotation); | ||
548 | 553 | ||
554 | m_group.RootPart.RotationOffset = (Quaternion)m_currentFrame.Rotation; | ||
549 | m_frames.RemoveAt(0); | 555 | m_frames.RemoveAt(0); |
550 | if (m_frames.Count > 0) | 556 | if (m_frames.Count > 0) |
551 | m_currentFrame = m_frames[0]; | 557 | m_currentFrame = m_frames[0]; |
@@ -613,7 +619,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
613 | // assuming w is a dependente var | 619 | // assuming w is a dependente var |
614 | 620 | ||
615 | { | 621 | { |
616 | m_group.UpdateGroupRotationR(step); | 622 | // m_group.UpdateGroupRotationR(step); |
623 | m_group.RootPart.RotationOffset = step; | ||
624 | |||
617 | //m_group.RootPart.UpdateAngularVelocity(m_currentFrame.AngularVelocity / 2); | 625 | //m_group.RootPart.UpdateAngularVelocity(m_currentFrame.AngularVelocity / 2); |
618 | update = true; | 626 | update = true; |
619 | } | 627 | } |
@@ -621,7 +629,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
621 | } | 629 | } |
622 | 630 | ||
623 | if (update) | 631 | if (update) |
624 | m_group.SendGroupRootTerseUpdate(); | 632 | // m_group.SendGroupRootTerseUpdate(); |
633 | m_group.RootPart.ScheduleTerseUpdate(); | ||
634 | |||
625 | 635 | ||
626 | } | 636 | } |
627 | catch ( Exception ex) | 637 | catch ( Exception ex) |
@@ -671,7 +681,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
671 | if (m_group.RootPart.Velocity != Vector3.Zero) | 681 | if (m_group.RootPart.Velocity != Vector3.Zero) |
672 | { | 682 | { |
673 | m_group.RootPart.Velocity = Vector3.Zero; | 683 | m_group.RootPart.Velocity = Vector3.Zero; |
674 | m_group.SendGroupRootTerseUpdate(); | 684 | // m_group.SendGroupRootTerseUpdate(); |
685 | m_group.RootPart.ScheduleTerseUpdate(); | ||
675 | } | 686 | } |
676 | } | 687 | } |
677 | 688 | ||
@@ -682,7 +693,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
682 | if (m_group != null) | 693 | if (m_group != null) |
683 | { | 694 | { |
684 | m_group.RootPart.Velocity = Vector3.Zero; | 695 | m_group.RootPart.Velocity = Vector3.Zero; |
685 | m_group.SendGroupRootTerseUpdate(); | 696 | // m_group.SendGroupRootTerseUpdate(); |
697 | m_group.RootPart.ScheduleTerseUpdate(); | ||
686 | 698 | ||
687 | if (m_running && m_timer != null) | 699 | if (m_running && m_timer != null) |
688 | { | 700 | { |