diff options
Merge branch 'ubitwork' into avination
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 10d53d7..76804d7 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 | ||