Difference between revisions of "LlDetectedTouchST"

From Second Life Wiki
Jump to navigation Jump to search
m (Adding example lsl script code)
m
Line 22: Line 22:
   
   
     touch_start(integer num_detected) {
     touch_start(integer num_detected) {
         integer i;
         integer i = 0;
         for (i = 0; i < num_detected; i++) {
         while( i < num_detected ) {
             vector touchedpos = llDetectedTouchST(i);       
             vector touchedpos = llDetectedTouchST(i);       
           
             if (touchedpos == <-1.0, -1.0, 0.0>) {
             if (llDetectedTouchFace(i) == -1) {
                 llWhisper(0, "Sorry, your viewer doesn't support touched faces.");
                 llWhisper(0, "Sorry, your viewer doesn't support touched faces.");
            }
            else if (touchedpos == <-1.0, -1.0, 0.0>) {
                llWhisper(0, "Sorry, the surface touch position could not be determined.");
             }
             }
             else {
             else {
            {
                 llWhisper(0, string) touchedpos);
                 llWhisper(0, string) touchedpos);
             } // if ...
             }
         } // for ...
           
            ++i;
         } // while ...
     } // touch_start
     } // touch_start



Revision as of 09:43, 29 August 2008

Emblem-important-red.png Pre-release Documentation Warning!

This function is not available yet. This documentation was written prior to its final release so it may not match the final implementation.

Summary

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

Returns a vector that is the surface coordinates for where the prim was touched. The x & y vector positions contain the horizontal (s) & vertical (t) face coordinates respectively (<s, t, 0.0>). Each component is in the interval [0.0, 1.0].

<-1.0, -1.0, 0.0> is returned when the surface coordinates cannot be determined. See Caveats for further details.

• 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.<-1.0, -1.0, 0.0> is returned when...
  • The avatar's viewer does not support face touch detection.
  • The touch has moved off the surface of the prim.
  • The touch happened too close to the edge of the face to determine a location.
  • The triggering event is not a touch event.

Examples

<lsl> default {

   touch_start(integer num_detected) {
       integer i = 0;
       while( i < num_detected ) {
           vector touchedpos = llDetectedTouchST(i);      
           
           if (llDetectedTouchFace(i) == -1) {
               llWhisper(0, "Sorry, your viewer doesn't support touched faces.");
           }
           else if (touchedpos == <-1.0, -1.0, 0.0>) {
               llWhisper(0, "Sorry, the surface touch position could not be determined.");
           }
           else {
           {
               llWhisper(0, string) touchedpos);
           }
           
           ++i;
       } // while ...
   } // touch_start

}

</lsl>

See Also

Events

•  touch_start
•  touch
•  touch_end

Functions

•  llDetectedLinkNumber
•  llDetectedTouchFace
•  llDetectedTouchUV
•  llDetectedTouchPos

Articles

•  Detected

Deep Notes

History

Introduced in Viewer SVN:870 r92872 Branch:Release Wednesday, 23 July 2008, Supported by Beta Server 1.24.0.93754 (Wenesday 6th August 2008), and viewer binary 1.20.15 (93532).

Signature

function vector llDetectedTouchST( integer index );