aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneGraph.cs
diff options
context:
space:
mode:
authorMW2009-07-17 14:58:54 +0000
committerMW2009-07-17 14:58:54 +0000
commitacea31518b00b02e2ba8b08106a76de0fbef29ab (patch)
tree78a4cb7eace911f11077045c1f0fb1266392c9dc /OpenSim/Region/Framework/Scenes/SceneGraph.cs
parent* Change the order of Update so Physics processes a frame before the scene ma... (diff)
downloadopensim-SC_OLD-acea31518b00b02e2ba8b08106a76de0fbef29ab.zip
opensim-SC_OLD-acea31518b00b02e2ba8b08106a76de0fbef29ab.tar.gz
opensim-SC_OLD-acea31518b00b02e2ba8b08106a76de0fbef29ab.tar.bz2
opensim-SC_OLD-acea31518b00b02e2ba8b08106a76de0fbef29ab.tar.xz
fixed the bug where changing the rotation of a selection of prims in a linkset, made each of those prims rotate around its own centre rather than around the geometric centre of the selection like they should do (and like the client expects).
This involved adding a new OnUpdatePrimSingleRotationPosition event to IClientAPI so that we can get the changed position from the client. Btw adding new events to IClientAPI is really tedious where you have to copy the change across to at least 5 or 6 other files. [Note this doesn't fix the bug where any rotation changes to the root prim (but not the whole linkset) cause rotation errors on the child prims.]
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneGraph.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs19
1 files changed, 19 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 62870d5..3f63481 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -1207,6 +1207,25 @@ namespace OpenSim.Region.Framework.Scenes
1207 /// <param name="localID"></param> 1207 /// <param name="localID"></param>
1208 /// <param name="rot"></param> 1208 /// <param name="rot"></param>
1209 /// <param name="remoteClient"></param> 1209 /// <param name="remoteClient"></param>
1210 protected internal void UpdatePrimSingleRotationPosition(uint localID, Quaternion rot, Vector3 pos, IClientAPI remoteClient)
1211 {
1212 SceneObjectGroup group = GetGroupByPrim(localID);
1213 if (group != null)
1214 {
1215 if (m_parentScene.Permissions.CanMoveObject(group.UUID, remoteClient.AgentId))
1216 {
1217 group.UpdateSingleRotation(rot,pos, localID);
1218 }
1219 }
1220 }
1221
1222
1223 /// <summary>
1224 ///
1225 /// </summary>
1226 /// <param name="localID"></param>
1227 /// <param name="rot"></param>
1228 /// <param name="remoteClient"></param>
1210 protected internal void UpdatePrimRotation(uint localID, Quaternion rot, IClientAPI remoteClient) 1229 protected internal void UpdatePrimRotation(uint localID, Quaternion rot, IClientAPI remoteClient)
1211 { 1230 {
1212 SceneObjectGroup group = GetGroupByPrim(localID); 1231 SceneObjectGroup group = GetGroupByPrim(localID);