diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 16 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 3 |
2 files changed, 16 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index bc2ca4c..f81cfe2 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -4024,13 +4024,25 @@ namespace OpenSim.Region.Framework.Scenes | |||
4024 | if (nparts <= 1) | 4024 | if (nparts <= 1) |
4025 | return gc; | 4025 | return gc; |
4026 | 4026 | ||
4027 | Quaternion parentRot = RootPart.RotationOffset; | ||
4028 | Vector3 pPos; | ||
4029 | |||
4027 | // average all parts positions | 4030 | // average all parts positions |
4028 | for (int i = 0; i < nparts; i++) | 4031 | for (int i = 0; i < nparts; i++) |
4029 | gc += parts[i].GetWorldPosition(); | 4032 | { |
4033 | // do it directly | ||
4034 | // gc += parts[i].GetWorldPosition(); | ||
4035 | if (parts[i] != RootPart) | ||
4036 | { | ||
4037 | pPos = parts[i].OffsetPosition; | ||
4038 | gc += pPos; | ||
4039 | } | ||
4040 | |||
4041 | } | ||
4030 | gc /= nparts; | 4042 | gc /= nparts; |
4031 | 4043 | ||
4032 | // relative to root: | 4044 | // relative to root: |
4033 | gc -= AbsolutePosition; | 4045 | // gc -= AbsolutePosition; |
4034 | return gc; | 4046 | return gc; |
4035 | } | 4047 | } |
4036 | 4048 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 6ee1a5d..0c28bf5 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -8527,7 +8527,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8527 | 8527 | ||
8528 | public LSL_Vector llGetGeometricCenter() | 8528 | public LSL_Vector llGetGeometricCenter() |
8529 | { | 8529 | { |
8530 | return new LSL_Vector(m_host.GetGeometricCenter().X, m_host.GetGeometricCenter().Y, m_host.GetGeometricCenter().Z); | 8530 | Vector3 tmp = m_host.GetGeometricCenter(); |
8531 | return new LSL_Vector(tmp.X, tmp.Y, tmp.Z); | ||
8531 | } | 8532 | } |
8532 | 8533 | ||
8533 | public LSL_List llGetPrimitiveParams(LSL_List rules) | 8534 | public LSL_List llGetPrimitiveParams(LSL_List rules) |