Difference between revisions of "LlGetRootRotation"

From Second Life Wiki
Jump to navigation Jump to search
m (minor format bug on the page)
Line 8: Line 8:
|caveats=
|caveats=
* Returns an accurate facing for Avatars seated or in mouselook, but only a rough direction otherwise when called from an attached prim.
* Returns an accurate facing for Avatars seated or in mouselook, but only a rough direction otherwise when called from an attached prim.
* When a seated avatar is in mouselook, its rotation is affected by the camera's rotation. There is no way to get the actual rotation of an avatar while seated in mouselook.
* This function incorrectly (but usefully) returns the avatars region rotation when called in an attachment, use the following instead:
* This function incorrectly (but usefully) returns the avatars region rotation when called in an attachment, use the following instead:



Revision as of 10:16, 28 June 2014

Summary

Function: rotation llGetRootRotation( );
0.0 Forced Delay
10.0 Energy

Returns a rotation that is the region rotation of the root prim of the object.

Caveats

  • Returns an accurate facing for Avatars seated or in mouselook, but only a rough direction otherwise when called from an attached prim.
  • When a seated avatar is in mouselook, its rotation is affected by the camera's rotation. There is no way to get the actual rotation of an avatar while seated in mouselook.
  • This function incorrectly (but usefully) returns the avatars region rotation when called in an attachment, use the following instead:

<lsl> // if called only from the root

   llGetLocalRot();

// if called from in a linked object

   llList2Rot( llGetLinkPrimitiveParams( LINK_ROOT, [PRIM_ROT_LOCAL] ), 0 );

// this alternative works correctly in all scenarios

   llList2Rot( llGetLinkPrimitiveParams( !!llGetLinkNumber(), [PRIM_ROT_LOCAL] ), 0 );

</lsl>

Examples

Simple example to set region rotation of child prim in unattached link set <lsl> default {

 state_entry()
 {
   //Rotate 45 degrees about Y-axis
   rotation globalRot = llEuler2Rot(<0.0, 45.0, 0.0> * DEG_TO_RAD);
   llSetLocalRot(globalRot / llGetRootRotation());
 }

}

</lsl>

Notes

In an attached object, returns region rotation of avatar NOT of the object's root prim. See special cases of rotation.

See Also

Deep Notes

Signature

function rotation llGetRootRotation();