Difference between revisions of "LlDetectedRot"

From Second Life Wiki
Jump to navigation Jump to search
m (updated example)
Line 10: Line 10:
|constants
|constants
|examples=
|examples=
<pre>
<lsl>
//--// get compass facing of Avatar that touches this object //--//
//--// get compass facing of Avatar that touches this object //--//


//-- @@ = Contains code optimizations, see the following page for details
//-- @@ = Contains code optimizations, see the following page for details
//-- wiki.secondlife.com/wiki/User_talk:Void_Singer#Coding_Practices_Part_2_.28optimizations.29
//-- wiki.secondlife.com/wiki/User:Void_Singer/Optimizations


  //-- list of compass directions starting after West, rotated counterclockwise
  //-- list of compass directions starting after West, rotated counterclockwise
Line 58: Line 58:
   }
   }
}
}
</pre>[[User:Void Singer|Void Singer]] 00:58, 15 October 2007 (PDT)
</lsl>
|helpers
|helpers
|also_functions
|also_functions

Revision as of 08:11, 11 February 2008

Summary

Function: rotation llDetectedRot( integer number );
0.0 Forced Delay
10.0 Energy

Returns a rotation that is the rotation of detected object number.

• integer number Index of detection information

number does not support negative indexes. Returns <0.0, 0.0, 0.0, 1.0> if number is not valid sensed object.

Specification

llDetected* functions only work if called from within Detection events (collision, collision_start, collision_end, sensor, touch, touch_start, touch_end) or in functions called by Detection events. They will fail silently and return unusable values if called during other events.

Caveats

  • If number is out of bounds the script continues to execute without an error message.
  • Events that enable the llDetected* functions always return at least one detected item.
    • Detection events are not raised if there is nothing detected.[1]
    • The detection event's items detected parameter is initially never less than 1.[2]

Examples

<lsl> //--// get compass facing of Avatar that touches this object //--//

//-- @@ = Contains code optimizations, see the following page for details //-- wiki.secondlife.com/wiki/User:Void_Singer/Optimizations

//-- list of compass directions starting after West, rotated counterclockwise

list gLstCompassPoints = ["SouthWest","South","SouthEast","East","NorthEast","North","NorthWest"];

//-- convert rotation to z-axis compass direction

string vfCompassDirection( rotation vRotBase ) {

  //-- convert rotation to dgrees
 vector vVecBase = llRot2Euler( vRotBase ) * RAD_TO_DEG;
  //-- covert to range [0, 360)
 vVecBase.z += 180;
if ( vVecBase.z < 22.5

See Also

Articles

•  Detected

Deep Notes

Footnotes

  1. ^ The exception is no_sensor but it doesn't enable llDetected* functions.
  2. ^ Like all event parameters, the user can overwrite the initial value.

Signature

function rotation llDetectedRot( integer number );