diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 4e87014..8b76055 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1568,6 +1568,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
1568 | #endregion | 1568 | #endregion |
1569 | 1569 | ||
1570 | private float? m_boundsRadius = null; | 1570 | private float? m_boundsRadius = null; |
1571 | public void InvalidBoundsRadius() | ||
1572 | { | ||
1573 | m_boundsRadius = null; | ||
1574 | } | ||
1571 | 1575 | ||
1572 | public float GetBoundsRadius() | 1576 | public float GetBoundsRadius() |
1573 | { | 1577 | { |
@@ -2346,6 +2350,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2346 | 2350 | ||
2347 | // a copy isnt backedup | 2351 | // a copy isnt backedup |
2348 | dupe.Backup = false; | 2352 | dupe.Backup = false; |
2353 | dupe.InvalidBoundsRadius(); | ||
2349 | 2354 | ||
2350 | // a copy is not in transit hopefully | 2355 | // a copy is not in transit hopefully |
2351 | dupe.inTransit = false; | 2356 | dupe.inTransit = false; |
@@ -3175,6 +3180,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3175 | // unmoved prims! | 3180 | // unmoved prims! |
3176 | ResetChildPrimPhysicsPositions(); | 3181 | ResetChildPrimPhysicsPositions(); |
3177 | 3182 | ||
3183 | InvalidBoundsRadius(); | ||
3184 | |||
3178 | if (m_rootPart.PhysActor != null) | 3185 | if (m_rootPart.PhysActor != null) |
3179 | m_rootPart.PhysActor.Building = false; | 3186 | m_rootPart.PhysActor.Building = false; |
3180 | 3187 | ||
@@ -3326,6 +3333,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3326 | 3333 | ||
3327 | objectGroup.HasGroupChangedDueToDelink = true; | 3334 | objectGroup.HasGroupChangedDueToDelink = true; |
3328 | 3335 | ||
3336 | InvalidBoundsRadius(); | ||
3337 | |||
3329 | if (sendEvents) | 3338 | if (sendEvents) |
3330 | linkPart.TriggerScriptChangedEvent(Changed.LINK); | 3339 | linkPart.TriggerScriptChangedEvent(Changed.LINK); |
3331 | 3340 | ||
@@ -3832,6 +3841,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3832 | if (pa != null) | 3841 | if (pa != null) |
3833 | m_scene.PhysicsScene.AddPhysicsActorTaint(pa); | 3842 | m_scene.PhysicsScene.AddPhysicsActorTaint(pa); |
3834 | } | 3843 | } |
3844 | InvalidBoundsRadius(); | ||
3835 | } | 3845 | } |
3836 | 3846 | ||
3837 | #endregion | 3847 | #endregion |
@@ -3962,11 +3972,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
3962 | obPart.Scale = newSize; | 3972 | obPart.Scale = newSize; |
3963 | obPart.UpdateOffSet(currentpos); | 3973 | obPart.UpdateOffSet(currentpos); |
3964 | } | 3974 | } |
3965 | |||
3966 | HasGroupChanged = true; | ||
3967 | m_rootPart.TriggerScriptChangedEvent(Changed.SCALE); | ||
3968 | ScheduleGroupForFullUpdate(); | ||
3969 | } | 3975 | } |
3976 | |||
3977 | InvalidBoundsRadius(); | ||
3978 | HasGroupChanged = true; | ||
3979 | m_rootPart.TriggerScriptChangedEvent(Changed.SCALE); | ||
3980 | ScheduleGroupForFullUpdate(); | ||
3981 | |||
3970 | } | 3982 | } |
3971 | 3983 | ||
3972 | #endregion | 3984 | #endregion |