Difference between revisions of "LlDetectedTouchFace"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 8: Line 8:
|spec
|spec
|caveats=
|caveats=
'''-1 is returned when...'''
'''{{LSL Const|TOUCH_INVALID_FACE|integer|-1}} is returned when...'''
* The avatar's viewer does not support face touch detection.
* The avatar's viewer does not support face touch detection.
* The touch has moved off the surface of the prim.
* The touch has moved off the surface of the prim.
Line 57: Line 57:
|also_articles
|also_articles
|notes
|notes
|history=*Introduced in Viewer {{SVN|870|rev=92872|branch=Release|anchor=file14|date=Wednesday, 23 July 2008}}, no server support, no viewer binary released.
*Server support available on preview grid in Second Life Beta Server 1.24, client support in Preview Grid viewer 1.20.15 (93532)
|cat1=Touch
|cat1=Touch
|cat2
|cat2

Revision as of 00:21, 13 September 2008

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 );