Difference between revisions of "LlGetLocalRot"

From Second Life Wiki
Jump to navigation Jump to search
m (friends don't let friends truncate floats)
m
 
(2 intermediate revisions by 2 users not shown)
Line 10: Line 10:
|constants
|constants
|examples=
|examples=
<lsl>
<source lang="lsl2">
  //--// Door Script - Works At ANY Angle //--//
  //--// Door Script - Works At ANY Angle //--//


Line 27: Line 27:
default{
default{
   state_entry(){
   state_entry(){
     gRotDoorSwing = llEuler2Rot( <0.0, 0.0, gIntDoorSwing> * DEG_TO_RAD );
     gRotDoorSwing = llEuler2Rot( <0.0, 0.0, vgIntDoorSwing> * DEG_TO_RAD );
   }
   }


Line 34: Line 34:
   }
   }
}
}
</lsl>
</source>
|helpers=
|helpers=
<lsl>//-- this is an equivalent call from any prim in the same link set
<source lang="lsl2"> //-- this is an equivalent call from any prim in the same link set
llList2Rot(llGetLinkPrimitiveParams( LINK_ROOT, [PRIM_ROT_LOCAL] ), 0)
llList2Rot( llGetLinkPrimitiveParams( target_prim, [PRIM_ROT_LOCAL] ), 0 )
//-- where "target_prim" is the link number of the prim you want to get the local rotation of</lsl>
//-- where "target_prim" is the link number of the prim you want to get the local rotation of</source>
|also_functions=
|also_functions=
{{LSL DefineRow||[[llGetRot]]|}}
{{LSL DefineRow||[[llGetRot]]|}}

Latest revision as of 02:11, 22 January 2015

Summary

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

Returns the rotation of the prim relative to the root.

If called from the root prim, it returns the objects rotation.

Examples

 //--// Door Script - Works At ANY Angle //--//

//-- works in ANY single prim door, linked or un-linked
//-- works in muti prim doors NOT linked to a larger structure
//-- REQUIREMENTS: a cut root prim. Suggest cube, pathcut start=.125, end=.625
//-- CAVEAT: single prim doors are limited to 5m width

 //--// USERS MODIFY HERE v
integer vgIntDoorSwing = 90;
//-- use -# to reverse the direction of swing, eg. -90;


rotation gRotDoorSwing;

default{
  state_entry(){
    gRotDoorSwing = llEuler2Rot( <0.0, 0.0, vgIntDoorSwing> * DEG_TO_RAD );
  }

  touch_start( integer vIntTouched ){
    llSetLocalRot( (gRotDoorSwing = ZERO_ROTATION / gRotDoorSwing) * llGetLocalRot() );
  }
}

Useful Snippets

 //-- this is an equivalent call from any prim in the same link set
llList2Rot( llGetLinkPrimitiveParams( target_prim, [PRIM_ROT_LOCAL] ), 0 )
//-- where "target_prim" is the link number of the prim you want to get the local rotation of

Notes

Returns the region relative rotation of the object if called from the root

Deep Notes

Signature

function rotation llGetLocalRot();