aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs13
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs10
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs3
3 files changed, 24 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 5778176..f2cb117 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1983,6 +1983,19 @@ namespace OpenSim.Region.Framework.Scenes
1983 EventManager.TriggerPrimsLoaded(this); 1983 EventManager.TriggerPrimsLoaded(this);
1984 } 1984 }
1985 1985
1986 public bool SupportsRayCastFiltered()
1987 {
1988 if (PhysicsScene == null)
1989 return false;
1990 return PhysicsScene.SupportsRaycastWorldFiltered();
1991 }
1992
1993 public object RayCastFiltered(Vector3 position, Vector3 direction, float length, int Count, RayFilterFlags filter)
1994 {
1995 if (PhysicsScene == null)
1996 return null;
1997 return PhysicsScene.RaycastWorld(position, direction, length, Count,filter);
1998 }
1986 1999
1987 /// <summary> 2000 /// <summary>
1988 /// Gets a new rez location based on the raycast and the size of the object that is being rezzed. 2001 /// Gets a new rez location based on the raycast and the size of the object that is being rezzed.
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 44e8fdf..e0ea344 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1952,6 +1952,16 @@ namespace OpenSim.Region.Framework.Scenes
1952 PhysicsActor pa = PhysActor; 1952 PhysicsActor pa = PhysActor;
1953 1953
1954 if (pa != null) 1954 if (pa != null)
1955 return new Vector3(pa.GeometricCenter.X, pa.GeometricCenter.Y, pa.GeometricCenter.Z);
1956 else
1957 return new Vector3(0, 0, 0);
1958 }
1959
1960 public Vector3 GetCenterOfMass()
1961 {
1962 PhysicsActor pa = PhysActor;
1963
1964 if (pa != null)
1955 return new Vector3(pa.CenterOfMass.X, pa.CenterOfMass.Y, pa.CenterOfMass.Z); 1965 return new Vector3(pa.CenterOfMass.X, pa.CenterOfMass.Y, pa.CenterOfMass.Z);
1956 else 1966 else
1957 return new Vector3(0, 0, 0); 1967 return new Vector3(0, 0, 0);
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index c295305..a90872e 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1954,8 +1954,7 @@ namespace OpenSim.Region.Framework.Scenes
1954 { 1954 {
1955 if (ParentID != 0) 1955 if (ParentID != 0)
1956 { 1956 {
1957 var targetPart = m_scene.GetSceneObjectPart(targetID); 1957 if (ParentPart.UUID == targetID)
1958 if (targetPart != null && targetPart.LocalId == ParentID)
1959 return; // already sitting here, ignore 1958 return; // already sitting here, ignore
1960 1959
1961 StandUp(); 1960 StandUp();