diff options
author | Justin Clark-Casey (justincc) | 2011-07-16 05:23:21 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-07-16 05:23:21 +0100 |
commit | f5ddf37112d4881243e3350d5df898c6b2bb02ae (patch) | |
tree | 72fe5fb9c4a3558fc0ffcc801e3040595ef77d39 | |
parent | remove now unncessary parts of SceneObjectGroup.Resize() (diff) | |
download | opensim-SC-f5ddf37112d4881243e3350d5df898c6b2bb02ae.zip opensim-SC-f5ddf37112d4881243e3350d5df898c6b2bb02ae.tar.gz opensim-SC-f5ddf37112d4881243e3350d5df898c6b2bb02ae.tar.bz2 opensim-SC-f5ddf37112d4881243e3350d5df898c6b2bb02ae.tar.xz |
Replace ifs in SOG.GroupResize() with Math.Min()
Also fiddle a bit with undo. This is not currently working properly, though to be fair it also didn't appear to work in 0.7.1.1 either (at least for resize).
Will get some more attention soon.
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 20 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 18 |
3 files changed, 25 insertions, 14 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 00d25c2..bdb7f95 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -569,6 +569,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
569 | if (primId != UUID.Zero) | 569 | if (primId != UUID.Zero) |
570 | { | 570 | { |
571 | SceneObjectPart part = m_parentScene.GetSceneObjectPart(primId); | 571 | SceneObjectPart part = m_parentScene.GetSceneObjectPart(primId); |
572 | |||
572 | if (part != null) | 573 | if (part != null) |
573 | part.Redo(); | 574 | part.Redo(); |
574 | } | 575 | } |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 7662874..ce5db5f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -2623,21 +2623,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
2623 | 2623 | ||
2624 | RootPart.IgnoreUndoUpdate = true; | 2624 | RootPart.IgnoreUndoUpdate = true; |
2625 | 2625 | ||
2626 | if (scale.X > m_scene.m_maxNonphys) | 2626 | scale.X = Math.Min(scale.X, Scene.m_maxNonphys); |
2627 | scale.X = m_scene.m_maxNonphys; | 2627 | scale.Y = Math.Min(scale.Y, Scene.m_maxNonphys); |
2628 | if (scale.Y > m_scene.m_maxNonphys) | 2628 | scale.Z = Math.Min(scale.Z, Scene.m_maxNonphys); |
2629 | scale.Y = m_scene.m_maxNonphys; | ||
2630 | if (scale.Z > m_scene.m_maxNonphys) | ||
2631 | scale.Z = m_scene.m_maxNonphys; | ||
2632 | 2629 | ||
2633 | if (RootPart.PhysActor != null && RootPart.PhysActor.IsPhysical) | 2630 | if (RootPart.PhysActor != null && RootPart.PhysActor.IsPhysical) |
2634 | { | 2631 | { |
2635 | if (scale.X > m_scene.m_maxPhys) | 2632 | scale.X = Math.Min(scale.X, Scene.m_maxPhys); |
2636 | scale.X = m_scene.m_maxPhys; | 2633 | scale.Y = Math.Min(scale.Y, Scene.m_maxPhys); |
2637 | if (scale.Y > m_scene.m_maxPhys) | 2634 | scale.Z = Math.Min(scale.Z, Scene.m_maxPhys); |
2638 | scale.Y = m_scene.m_maxPhys; | ||
2639 | if (scale.Z > m_scene.m_maxPhys) | ||
2640 | scale.Z = m_scene.m_maxPhys; | ||
2641 | } | 2635 | } |
2642 | 2636 | ||
2643 | float x = (scale.X / RootPart.Scale.X); | 2637 | float x = (scale.X / RootPart.Scale.X); |
@@ -2715,7 +2709,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2715 | } | 2709 | } |
2716 | 2710 | ||
2717 | obPart.IgnoreUndoUpdate = false; | 2711 | obPart.IgnoreUndoUpdate = false; |
2718 | obPart.StoreUndoState(); | ||
2719 | } | 2712 | } |
2720 | } | 2713 | } |
2721 | } | 2714 | } |
@@ -2753,6 +2746,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2753 | } | 2746 | } |
2754 | 2747 | ||
2755 | RootPart.IgnoreUndoUpdate = false; | 2748 | RootPart.IgnoreUndoUpdate = false; |
2749 | |||
2756 | RootPart.StoreUndoState(); | 2750 | RootPart.StoreUndoState(); |
2757 | } | 2751 | } |
2758 | 2752 | ||
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index f5b8daf..6b9607c 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -3687,6 +3687,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3687 | { | 3687 | { |
3688 | if (m_parentGroup != null) | 3688 | if (m_parentGroup != null) |
3689 | { | 3689 | { |
3690 | // m_log.DebugFormat("[SCENE OBJECT PART]: Storing undo state for {0} {1}", Name, LocalId); | ||
3691 | |||
3690 | lock (m_undo) | 3692 | lock (m_undo) |
3691 | { | 3693 | { |
3692 | if (m_undo.Count > 0) | 3694 | if (m_undo.Count > 0) |
@@ -3705,11 +3707,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
3705 | 3707 | ||
3706 | m_undo.Push(nUndo); | 3708 | m_undo.Push(nUndo); |
3707 | } | 3709 | } |
3708 | |||
3709 | } | 3710 | } |
3710 | } | 3711 | } |
3711 | } | 3712 | } |
3713 | // else | ||
3714 | // { | ||
3715 | // m_log.DebugFormat("[SCENE OBJECT PART]: Ignoring undo store for {0} {1}", Name, LocalId); | ||
3716 | // } | ||
3712 | } | 3717 | } |
3718 | // else | ||
3719 | // { | ||
3720 | // m_log.DebugFormat("[SCENE OBJECT PART]: Ignoring undo store for {0} {1} since already undoing", Name, LocalId); | ||
3721 | // } | ||
3713 | } | 3722 | } |
3714 | 3723 | ||
3715 | public EntityIntersection TestIntersection(Ray iray, Quaternion parentrot) | 3724 | public EntityIntersection TestIntersection(Ray iray, Quaternion parentrot) |
@@ -4179,11 +4188,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
4179 | if (m_undo.Count > 0) | 4188 | if (m_undo.Count > 0) |
4180 | { | 4189 | { |
4181 | UndoState nUndo = null; | 4190 | UndoState nUndo = null; |
4191 | |||
4182 | if (m_parentGroup.GetSceneMaxUndo() > 0) | 4192 | if (m_parentGroup.GetSceneMaxUndo() > 0) |
4183 | { | 4193 | { |
4184 | nUndo = new UndoState(this); | 4194 | nUndo = new UndoState(this); |
4185 | } | 4195 | } |
4196 | |||
4186 | UndoState goback = m_undo.Pop(); | 4197 | UndoState goback = m_undo.Pop(); |
4198 | |||
4187 | if (goback != null) | 4199 | if (goback != null) |
4188 | { | 4200 | { |
4189 | goback.PlaybackState(this); | 4201 | goback.PlaybackState(this); |
@@ -4196,6 +4208,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
4196 | 4208 | ||
4197 | public void Redo() | 4209 | public void Redo() |
4198 | { | 4210 | { |
4211 | // m_log.DebugFormat("[SCENE OBJECT PART]: Handling redo request for {0} {1}", Name, LocalId); | ||
4212 | |||
4199 | lock (m_redo) | 4213 | lock (m_redo) |
4200 | { | 4214 | { |
4201 | if (m_parentGroup.GetSceneMaxUndo() > 0) | 4215 | if (m_parentGroup.GetSceneMaxUndo() > 0) |
@@ -4204,7 +4218,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
4204 | 4218 | ||
4205 | m_undo.Push(nUndo); | 4219 | m_undo.Push(nUndo); |
4206 | } | 4220 | } |
4221 | |||
4207 | UndoState gofwd = m_redo.Pop(); | 4222 | UndoState gofwd = m_redo.Pop(); |
4223 | |||
4208 | if (gofwd != null) | 4224 | if (gofwd != null) |
4209 | gofwd.PlayfwdState(this); | 4225 | gofwd.PlayfwdState(this); |
4210 | } | 4226 | } |