Handle ObjectSpin* packets to spin physical prims on Ctrl+Shift+Drag

Addresses Mantis #3381

The current implementation works as expected if the object has no rotation or 
only rotation around the Z axis; you can spin the object left or right (around
the world Z axis).

It works a little unexpectedly if the object has a non-Z-axis rotation; in this
case the body is spun about its local Z axis, not the world Z-axis. (But SL 
also behaves oddly with a spin on an arbitrarily rotated object.)
This commit is contained in:
nlin
2009-04-10 06:39:52 +00:00
parent e8dfa00d8c
commit 8e6c20b27f
11 changed files with 198 additions and 3 deletions

View File

@@ -160,7 +160,7 @@ namespace OpenSim.Framework
);
public delegate void SpinStart(UUID objectID, IClientAPI remoteClient);
public delegate void SpinUpdate(UUID objectID, Quaternion rotation, IClientAPI remoteClient);
public delegate void SpinObject(UUID objectID, Quaternion rotation, IClientAPI remoteClient);
public delegate void SpinStop(UUID objectID, IClientAPI remoteClient);
public delegate void ParcelAccessListRequest(
@@ -607,6 +607,9 @@ namespace OpenSim.Framework
event GrabObject OnGrabObject;
event ObjectSelect OnDeGrabObject;
event MoveObject OnGrabUpdate;
event SpinStart OnSpinStart;
event SpinObject OnSpinUpdate;
event SpinStop OnSpinStop;
event UpdateShape OnUpdatePrimShape;
event ObjectExtraParams OnUpdateExtraParams;