llDetectedRot
		
		
		
		Jump to navigation
		Jump to search
		
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials | 
Summary
Function: rotation llDetectedRot( integer number );| 0.0 | Forced Delay | 
| 10.0 | Energy | 
Returns 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 this function returns <0.0, 0.0, 0.0, 1.0> and the script continues to execute without an error message.
- Events that enable the llDetected* functions always return at least one detected item.
Examples
//--// get compass facing of Avatar that touches this object //--//
 //-- list of compass directions starting at East, rotated clockwise
list gLstCompassPoints = [ "East", "NorthEast", "North", "NorthWest", "West", "SouthWest", "South", "SouthEast" ];
 //-- convert rotation to z-axis compass direction
string CompassDirection( rotation rRotBase )
{
  integer iCountCompassPoints = llGetListLength(gLstCompassPoints);
   //-- convert rotation to a direction
  vector vDirection = <0.0, 1.0, 0.0> / rRotBase;
   //-- take the direction and determine the z rotation
  float fAngle = llAtan2(vDirection.x, vDirection.y);
   //-- take the angle and find the compass point
  integer iCompassPoint = llRound(fAngle * iCountCompassPoints / TWO_PI);
   //-- convert to string
  return llList2String( gLstCompassPoints, iCompassPoint );
}
default{
  state_entry()
  {
    llSay( 0, "Touch me to get your compass facing" );
  }
  touch_start( integer vIntTouchCount )
  {
    integer vIntCounter = 0;
    do
    {
      llSay( 0,
             llDetectedName( vIntCounter )
             + " is facing "
              //-- next line gets avatar rotation and converts to compass direction
             + CompassDirection( llDetectedRot( vIntCounter ) ) );
    } while ( ++vIntCounter < vIntTouchCount );
  }
}
See Also
Articles
| • | Detected | 
Deep Notes
Footnotes
- ^ The exception is no_sensor but it doesn't enable llDetected* functions.
- ^ Like all event parameters, the user can overwrite the initial value.
| Signature | 
|---|
| function rotation llDetectedRot( integer number ); |