Difference between revisions of "LlGetLocalRot"

From Second Life Wiki
Jump to navigation Jump to search
m (corrected/added also: Get*Rot(ation) GetPrimitiveParams Set*Rot Set*PrimitiveParams)
m (cleaned and formatted example)
Line 10: Line 10:
|constants
|constants
|examples=
|examples=
<pre> //--// v7-D Feebie Type 1 Door Script //--//
<lsl>
//--// Works At ANY Angle             //--//
//--// Door Script - Works At ANY Angle //--//


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


Line 25: Line 25:
rotation vgRotDoorSwing;
rotation vgRotDoorSwing;


default
default{
{
   state_entry(){
   state_entry()
     vgRotDoorSwing = llEuler2Rot( <0.0, 0.0, vgIntDoorSwing> * DEG_TO_RAD );
  {
     vgRotDoorSwing = llEuler2Rot( <.0, .0, (float)vgIntDoorSwing * DEG_TO_RAD> );
   }
   }


   touch_start( integer vIntTouches )
   touch_start( integer vIntTouched ){
  {
     //- small hack to reverse direction of swing on each touch
     //- small hack to reverse direction of swing on each
    //- touch & avoid lsl funkiness regarding rotation division
     vgRotDoorSwing.s *= -1;
     vgRotDoorSwing.s *= -1;
     llSetLocalRot( vgRotDoorSwing * llGetLocalRot() );
     llSetLocalRot( vgRotDoorSwing * llGetLocalRot() );
   }
   }
}
}
 
</lsl>
//-- IF Redistributing as-is:
//-- Please leave script full permissions & include all comments, so others can learn</pre>[[User:Void Singer|Void Singer]] 18:49, 6 November 2007 (PST)
|helpers
|helpers
|also_functions=
|also_functions=

Revision as of 21:30, 18 February 2008

Summary

Function: rotation llGetLocalRot( );

Returns a rotation local to the root (if the script isn't physical)

Examples

<lsl>

//--// 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 vgRotDoorSwing;

default{

 state_entry(){
   vgRotDoorSwing = llEuler2Rot( <0.0, 0.0, vgIntDoorSwing> * DEG_TO_RAD );
 }
 touch_start( integer vIntTouched ){
    //- small hack to reverse direction of swing on each touch
   vgRotDoorSwing.s *= -1;
   llSetLocalRot( vgRotDoorSwing * llGetLocalRot() );
 }

}

</lsl>

Notes

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

Deep Notes

Search JIRA for related Issues

Signature

function rotation llGetLocalRot();