aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs40
1 files changed, 25 insertions, 15 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index e0b7640..f2a636a 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -608,8 +608,11 @@ namespace OpenSim.Region.Framework.Scenes
608 } 608 }
609 609
610 /// <summary> 610 /// <summary>
611 /// Current velocity of the avatar. 611 /// Velocity of the avatar with respect to its local reference frame.
612 /// </summary> 612 /// </summary>
613 /// <remarks>
614 /// So when sat on a vehicle this will be 0. To get velocity with respect to the world use GetWorldVelocity()
615 /// </remarks>
613 public override Vector3 Velocity 616 public override Vector3 Velocity
614 { 617 {
615 get 618 get
@@ -622,10 +625,10 @@ namespace OpenSim.Region.Framework.Scenes
622// "[SCENE PRESENCE]: Set velocity {0} for {1} in {2} via getting Velocity!", 625// "[SCENE PRESENCE]: Set velocity {0} for {1} in {2} via getting Velocity!",
623// m_velocity, Name, Scene.RegionInfo.RegionName); 626// m_velocity, Name, Scene.RegionInfo.RegionName);
624 } 627 }
625 else if (ParentPart != null) 628// else if (ParentPart != null)
626 { 629// {
627 return ParentPart.ParentGroup.Velocity; 630// return ParentPart.ParentGroup.Velocity;
628 } 631// }
629 632
630 return m_velocity; 633 return m_velocity;
631 } 634 }
@@ -749,25 +752,32 @@ namespace OpenSim.Region.Framework.Scenes
749 } 752 }
750 753
751 /// <summary> 754 /// <summary>
752 /// Gets the world rotation of this presence. 755 /// Get rotation relative to the world.
753 /// </summary> 756 /// </summary>
754 /// <remarks>
755 /// Unlike Rotation, this returns the world rotation no matter whether the avatar is sitting on a prim or not.
756 /// </remarks>
757 /// <returns></returns> 757 /// <returns></returns>
758 public Quaternion GetWorldRotation() 758 public Quaternion GetWorldRotation()
759 { 759 {
760 if (IsSatOnObject) 760 SceneObjectPart sitPart = ParentPart;
761 {
762 SceneObjectPart sitPart = ParentPart;
763 761
764 if (sitPart != null) 762 if (sitPart != null)
765 return sitPart.GetWorldRotation() * Rotation; 763 return sitPart.GetWorldRotation() * Rotation;
766 }
767 764
768 return Rotation; 765 return Rotation;
769 } 766 }
770 767
768 /// <summary>
769 /// Get velocity relative to the world.
770 /// </summary>
771 public Vector3 GetWorldVelocity()
772 {
773 SceneObjectPart sitPart = ParentPart;
774
775 if (sitPart != null)
776 return sitPart.ParentGroup.Velocity;
777
778 return Velocity;
779 }
780
771 public void AdjustKnownSeeds() 781 public void AdjustKnownSeeds()
772 { 782 {
773 Dictionary<ulong, string> seeds; 783 Dictionary<ulong, string> seeds;