diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneGraph.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 7ec7ea3..65dc2c9 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -564,11 +564,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
564 | part.Undo(); | 564 | part.Undo(); |
565 | } | 565 | } |
566 | } | 566 | } |
567 | |||
567 | protected internal void HandleRedo(IClientAPI remoteClient, UUID primId) | 568 | protected internal void HandleRedo(IClientAPI remoteClient, UUID primId) |
568 | { | 569 | { |
569 | if (primId != UUID.Zero) | 570 | if (primId != UUID.Zero) |
570 | { | 571 | { |
571 | SceneObjectPart part = m_parentScene.GetSceneObjectPart(primId); | 572 | SceneObjectPart part = m_parentScene.GetSceneObjectPart(primId); |
573 | |||
572 | if (part != null) | 574 | if (part != null) |
573 | part.Redo(); | 575 | part.Redo(); |
574 | } | 576 | } |
@@ -1210,19 +1212,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
1210 | #region Client Event handlers | 1212 | #region Client Event handlers |
1211 | 1213 | ||
1212 | /// <summary> | 1214 | /// <summary> |
1213 | /// | 1215 | /// Update the scale of an individual prim. |
1214 | /// </summary> | 1216 | /// </summary> |
1215 | /// <param name="localID"></param> | 1217 | /// <param name="localID"></param> |
1216 | /// <param name="scale"></param> | 1218 | /// <param name="scale"></param> |
1217 | /// <param name="remoteClient"></param> | 1219 | /// <param name="remoteClient"></param> |
1218 | protected internal void UpdatePrimScale(uint localID, Vector3 scale, IClientAPI remoteClient) | 1220 | protected internal void UpdatePrimScale(uint localID, Vector3 scale, IClientAPI remoteClient) |
1219 | { | 1221 | { |
1220 | SceneObjectGroup group = GetGroupByPrim(localID); | 1222 | SceneObjectPart part = GetSceneObjectPart(localID); |
1221 | if (group != null) | 1223 | |
1224 | if (part != null) | ||
1222 | { | 1225 | { |
1223 | if (m_parentScene.Permissions.CanEditObject(group.UUID, remoteClient.AgentId)) | 1226 | if (m_parentScene.Permissions.CanEditObject(part.ParentGroup.UUID, remoteClient.AgentId)) |
1224 | { | 1227 | { |
1225 | group.Resize(scale, localID); | 1228 | part.Resize(scale); |
1226 | } | 1229 | } |
1227 | } | 1230 | } |
1228 | } | 1231 | } |
@@ -1234,7 +1237,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1234 | { | 1237 | { |
1235 | if (m_parentScene.Permissions.CanEditObject(group.UUID, remoteClient.AgentId)) | 1238 | if (m_parentScene.Permissions.CanEditObject(group.UUID, remoteClient.AgentId)) |
1236 | { | 1239 | { |
1237 | group.GroupResize(scale, localID); | 1240 | group.GroupResize(scale); |
1238 | } | 1241 | } |
1239 | } | 1242 | } |
1240 | } | 1243 | } |
@@ -1288,19 +1291,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
1288 | { | 1291 | { |
1289 | if (m_parentScene.Permissions.CanMoveObject(group.UUID, remoteClient.AgentId)) | 1292 | if (m_parentScene.Permissions.CanMoveObject(group.UUID, remoteClient.AgentId)) |
1290 | { | 1293 | { |
1291 | group.UpdateSingleRotation(rot,pos, localID); | 1294 | group.UpdateSingleRotation(rot, pos, localID); |
1292 | } | 1295 | } |
1293 | } | 1296 | } |
1294 | } | 1297 | } |
1295 | 1298 | ||
1296 | |||
1297 | /// <summary> | 1299 | /// <summary> |
1298 | /// | 1300 | /// Update the rotation of a whole group. |
1299 | /// </summary> | 1301 | /// </summary> |
1300 | /// <param name="localID"></param> | 1302 | /// <param name="localID"></param> |
1301 | /// <param name="rot"></param> | 1303 | /// <param name="rot"></param> |
1302 | /// <param name="remoteClient"></param> | 1304 | /// <param name="remoteClient"></param> |
1303 | protected internal void UpdatePrimRotation(uint localID, Quaternion rot, IClientAPI remoteClient) | 1305 | protected internal void UpdatePrimGroupRotation(uint localID, Quaternion rot, IClientAPI remoteClient) |
1304 | { | 1306 | { |
1305 | SceneObjectGroup group = GetGroupByPrim(localID); | 1307 | SceneObjectGroup group = GetGroupByPrim(localID); |
1306 | if (group != null) | 1308 | if (group != null) |
@@ -1319,7 +1321,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1319 | /// <param name="pos"></param> | 1321 | /// <param name="pos"></param> |
1320 | /// <param name="rot"></param> | 1322 | /// <param name="rot"></param> |
1321 | /// <param name="remoteClient"></param> | 1323 | /// <param name="remoteClient"></param> |
1322 | protected internal void UpdatePrimRotation(uint localID, Vector3 pos, Quaternion rot, IClientAPI remoteClient) | 1324 | protected internal void UpdatePrimGroupRotation(uint localID, Vector3 pos, Quaternion rot, IClientAPI remoteClient) |
1323 | { | 1325 | { |
1324 | SceneObjectGroup group = GetGroupByPrim(localID); | 1326 | SceneObjectGroup group = GetGroupByPrim(localID); |
1325 | if (group != null) | 1327 | if (group != null) |
@@ -1350,12 +1352,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
1350 | } | 1352 | } |
1351 | 1353 | ||
1352 | /// <summary> | 1354 | /// <summary> |
1353 | /// Update the position of the given part | 1355 | /// Update the position of the given group. |
1354 | /// </summary> | 1356 | /// </summary> |
1355 | /// <param name="localID"></param> | 1357 | /// <param name="localID"></param> |
1356 | /// <param name="pos"></param> | 1358 | /// <param name="pos"></param> |
1357 | /// <param name="remoteClient"></param> | 1359 | /// <param name="remoteClient"></param> |
1358 | public void UpdatePrimPosition(uint localID, Vector3 pos, IClientAPI remoteClient) | 1360 | public void UpdatePrimGroupPosition(uint localID, Vector3 pos, IClientAPI remoteClient) |
1359 | { | 1361 | { |
1360 | SceneObjectGroup group = GetGroupByPrim(localID); | 1362 | SceneObjectGroup group = GetGroupByPrim(localID); |
1361 | 1363 | ||