aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorTom Grimshaw2010-07-04 19:58:52 -0700
committerTom Grimshaw2010-07-04 19:58:52 -0700
commitc616335019dc9419460407930af4e40e84663efa (patch)
tree966803d48e7a80c859d34a6f89da24bf36afa527 /OpenSim/Region
parentThe majority of the Undo fix. There is still an issue with Rotation which i'... (diff)
downloadopensim-SC-c616335019dc9419460407930af4e40e84663efa.zip
opensim-SC-c616335019dc9419460407930af4e40e84663efa.tar.gz
opensim-SC-c616335019dc9419460407930af4e40e84663efa.tar.bz2
opensim-SC-c616335019dc9419460407930af4e40e84663efa.tar.xz
Rotation undo fix and remove a debug chatter i missed. Still not working: Individual child prim rotational undo and special cases where the root prim was moved or rotated (all the children then need to restore their offsets). Coming shortly.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/UndoState.cs7
1 files changed, 3 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/UndoState.cs b/OpenSim/Region/Framework/Scenes/UndoState.cs
index ad05351..f9601e6 100644
--- a/OpenSim/Region/Framework/Scenes/UndoState.cs
+++ b/OpenSim/Region/Framework/Scenes/UndoState.cs
@@ -68,7 +68,7 @@ namespace OpenSim.Region.Framework.Scenes
68 //FUBAR WARNING: Do NOT get the group's absoluteposition here 68 //FUBAR WARNING: Do NOT get the group's absoluteposition here
69 //or you'll experience a loop and/or a stack issue 69 //or you'll experience a loop and/or a stack issue
70 GroupPosition = part.ParentGroup.RootPart.AbsolutePosition; 70 GroupPosition = part.ParentGroup.RootPart.AbsolutePosition;
71 GroupRotation = part.ParentGroup.Rotation; 71 GroupRotation = part.ParentGroup.GroupRotation;
72 Position = part.ParentGroup.RootPart.AbsolutePosition; 72 Position = part.ParentGroup.RootPart.AbsolutePosition;
73 Rotation = part.RotationOffset; 73 Rotation = part.RotationOffset;
74 Scale = part.Shape.Scale; 74 Scale = part.Shape.Scale;
@@ -98,7 +98,6 @@ namespace OpenSim.Region.Framework.Scenes
98 } 98 }
99 if ((Type & UndoType.STATE_GROUP_SCALE) == 0 || ((last.Type & UndoType.STATE_GROUP_SCALE) >= (Type & UndoType.STATE_GROUP_SCALE))) 99 if ((Type & UndoType.STATE_GROUP_SCALE) == 0 || ((last.Type & UndoType.STATE_GROUP_SCALE) >= (Type & UndoType.STATE_GROUP_SCALE)))
100 { 100 {
101 Console.WriteLine("Setting groupscale to " + last.GroupScale.ToString());
102 GroupScale = last.GroupScale; 101 GroupScale = last.GroupScale;
103 Scale = last.Scale; 102 Scale = last.Scale;
104 } 103 }
@@ -184,7 +183,7 @@ namespace OpenSim.Region.Framework.Scenes
184 if (GroupChange) 183 if (GroupChange)
185 { 184 {
186 part.ParentGroup.RootPart.Undoing = true; 185 part.ParentGroup.RootPart.Undoing = true;
187 if (Position != Vector3.Zero) 186 if (GroupPosition != Vector3.Zero)
188 { 187 {
189 //Calculate the scale... 188 //Calculate the scale...
190 Vector3 gs = part.Shape.Scale; 189 Vector3 gs = part.Shape.Scale;
@@ -193,7 +192,7 @@ namespace OpenSim.Region.Framework.Scenes
193 //Scale first since it can affect our position 192 //Scale first since it can affect our position
194 part.ParentGroup.GroupResize(gs * scale, part.LocalId); 193 part.ParentGroup.GroupResize(gs * scale, part.LocalId);
195 part.ParentGroup.AbsolutePosition = GroupPosition; 194 part.ParentGroup.AbsolutePosition = GroupPosition;
196 part.ParentGroup.Rotation = GroupRotation; 195 part.ParentGroup.UpdateGroupRotationR(GroupRotation);
197 196
198 } 197 }
199 part.ParentGroup.RootPart.Undoing = false; 198 part.ParentGroup.RootPart.Undoing = false;