aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Framework/Scenes/KeyframeMotion.cs36
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 {