From acea31518b00b02e2ba8b08106a76de0fbef29ab Mon Sep 17 00:00:00 2001
From: MW
Date: Fri, 17 Jul 2009 14:58:54 +0000
Subject: 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.]
---
OpenSim/Region/Framework/Scenes/SceneGraph.cs | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
(limited to 'OpenSim/Region/Framework/Scenes/SceneGraph.cs')
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
///
///
///
+ protected internal void UpdatePrimSingleRotationPosition(uint localID, Quaternion rot, Vector3 pos, IClientAPI remoteClient)
+ {
+ SceneObjectGroup group = GetGroupByPrim(localID);
+ if (group != null)
+ {
+ if (m_parentScene.Permissions.CanMoveObject(group.UUID, remoteClient.AgentId))
+ {
+ group.UpdateSingleRotation(rot,pos, localID);
+ }
+ }
+ }
+
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
protected internal void UpdatePrimRotation(uint localID, Quaternion rot, IClientAPI remoteClient)
{
SceneObjectGroup group = GetGroupByPrim(localID);
--
cgit v1.1