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

@@ -172,7 +172,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
private MoveObject handlerGrabUpdate; //OnGrabUpdate;
private ObjectSelect handlerDeGrabObject; //OnDeGrabObject;
private SpinStart handlerSpinStart; //OnSpinStart;
private SpinUpdate handlerSpinUpdate; //OnSpinUpdate;
private SpinObject handlerSpinUpdate; //OnSpinUpdate;
private SpinStop handlerSpinStop; //OnSpinStop;
private GenericCall7 handlerObjectDescription;
private GenericCall7 handlerObjectName;
@@ -939,7 +939,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public event ObjectDuplicate OnObjectDuplicate;
public event ObjectDuplicateOnRay OnObjectDuplicateOnRay;
public event MoveObject OnGrabUpdate;
public event SpinUpdate OnSpinUpdate;
public event SpinObject OnSpinUpdate;
public event AddNewPrim OnAddPrim;
public event RequestGodlikePowers OnRequestGodlikePowers;
public event GodKickUser OnGodKickUser;