llDetectedTouchFace

From Second Life Wiki
Revision as of 00:21, 13 September 2008 by Strife Onizuka (talk | contribs)
Jump to navigation Jump to search

Summary

Function: integer llDetectedTouchFace( integer index );
0.0 Forced Delay
10.0 Energy

Returns an integer that is the index of the face the avatar clicked on.

• integer index Index of detection information

index does not support negative indexes. For the touch category of events only.

Caveats

  • If index is out of bounds the script continues to execute without an error message.TOUCH_INVALID_FACE is returned when...
  • The avatar's viewer does not support face touch detection.
  • The touch has moved off the surface of the prim.
  • The triggering event is not a touch event.

Examples

<lsl> default {

   touch_start(integer num_detected) {
       integer i;
       for (i = 0; i < num_detected; i++) {
           integer touchedFace = llDetectedTouchFace(i);      
           if (touchedFace == -1) {
               llWhisper(0, "Sorry, your viewer doesn't support touched faces.");
           }
           else {
               // Store away the original color
               vector oldColor = llGetColor(touchedFace);
               // Flash white and black on the touched face
               llSetColor(<1., 1., 1.>, touchedFace);
               llSleep(0.1);
               llSetColor(<0., 0., 0.>, touchedFace);
               llSleep(0.1);
               
               // Put the color back to how we found it.
               llSetColor(oldColor, touchedFace);
           } // if ...
       } // for ...
   } // touch_start

}

</lsl>

See Also

Deep Notes

History

Signature

function integer llDetectedTouchFace( integer index );