Difference between revisions of "LlDetectedTouchBinormal"

From Second Life Wiki
Jump to navigation Jump to search
(pie, events)
m
 
(17 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{LSL_Function/detected|index|TouchBinormal}}{{LSL_Function
{{LSL_Function
|inject-2={{LSL_Function/detected|index|touchBinormal}}
|func_id=341|func_sleep=0.0|func_energy=10.0
|func_id=341|func_sleep=0.0|func_energy=10.0
|mode=pre-release
|func=llDetectedTouchBinormal
|func=llDetectedTouchBinormal
|return_type=vector|return_text=that is the surface binormal (tangent to the surface) where the touch event was triggered.
|return_type=vector|return_text=that is the surface binormal (tangent to the surface, pointing along the positive T (V) direction of tangent space) where the touch event was triggered. Along with [[llDetectedTouchNormal]], this information can be used to find the [http://en.wikipedia.org/wiki/Tangent_space tangent space] at the touch location.  
 
Inside [[touch_start]], returns [[ZERO_VECTOR]] if the avatar's viewer does not support touch positions.
 
Inside [[Touch|touch]] and [[touch_end]], also returns [[ZERO_VECTOR]] if the mouse has moved away from the prim.
|p1_type=integer|p1_name=index
|p1_type=integer|p1_name=index
|func_footnote=For the {{LSLGC|Touch|touch}} category of events only.
|func_footnote=For the {{LSLGC|Touch|touch}} category of events only. The prim that was touched may not be the prim receiving the event, use [[llDetectedLinkNumber]] to check for this; likewise you can use [[llDetectedTouchFace]] to determine which face was touched.{{PBR}}To find the third tangent vector, [[LSL Cross Product|cross]] this vector with the [[llDetectedTouchNormal|normal]].
|func_desc
|func_desc
|spec
|spec
|caveats
|caveats=
|examples
*{{LSL Const|TOUCH_INVALID_VECTOR|vecter|{{LSL_VR|0.0|0.0|0.0}}}} is returned when...
** The avatar's viewer does not support face touch detection.
*** To check if face touch detection is supported check the return of [[llDetectedTouchFace]].
** The touch has moved off the surface of the prim.
** The event triggered is not a {{LSLGC|Touch|touch}} event.
|examples=<source lang="lsl2">
default
{
    touch_start(integer total_num)
    {
        llOwnerSay((string)llDetectedTouchBinormal(0));
    }
}
</source>
|helpers
|helpers
|related
|related
|also_functions=
|also_functions=
{{LSL DefineRow||[[llDetectedLinkNumber]]}}
{{LSL DefineRow||[[llDetectedLinkNumber]]}}
{{LSL DefineRow||[[llDetectedTouchFace]]}}
{{LSL DefineRow||[[llDetectedTouchST]]}}
{{LSL DefineRow||[[llDetectedTouchUV]]}}
{{LSL DefineRow||[[llDetectedTouchPos]]}}
{{LSL DefineRow||[[llDetectedTouchPos]]}}
{{LSL DefineRow||[[llDetectedTouchFace]]}}
{{LSL DefineRow||[[llDetectedTouchNormal]]}}
{{LSL DefineRow||[[llDetectedTouchNormal]]}}
|also_events=
|also_events=
Line 29: Line 40:
|history=*Introduced in Viewer {{SVN|870|rev=92872|branch=Release|anchor=file14|date=Wednesday, 23 July 2008}}, no server support, no viewer binary released.
|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)  
*Server support available on preview grid in Second Life Beta Server 1.24, client support in Preview Grid viewer 1.20.15 (93532)  
*Date of Release Server [[ Release_Notes/Second_Life_Beta_Server/1.24#Release_Notes_for_Second_Life_Beta_Server_1.24.3_.28August_29th.2C_2008.29 | 29-08-2008 ]]
*Date of Release Client  [[ Release_Notes/Second_Life_Release/1.21 | 16-10-2008 ]]
|cat1=Touch
|cat1=Touch
|cat2
|cat2

Latest revision as of 23:57, 21 January 2015

Summary

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

Returns a vector that is the surface binormal (tangent to the surface, pointing along the positive T (V) direction of tangent space) where the touch event was triggered. Along with llDetectedTouchNormal, this information can be used to find the tangent space at the touch location.

• integer index Index of detection information

index does not support negative indexes. For the touch category of events only. The prim that was touched may not be the prim receiving the event, use llDetectedLinkNumber to check for this; likewise you can use llDetectedTouchFace to determine which face was touched.To find the third tangent vector, cross this vector with the normal.

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 index 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]
  • TOUCH_INVALID_VECTOR is returned when...
    • The avatar's viewer does not support face touch detection.
    • The touch has moved off the surface of the prim.
    • The event triggered is not a touch event.

Examples

default
{
    touch_start(integer total_num)
    {
        llOwnerSay((string)llDetectedTouchBinormal(0));
    }
}

See Also

Events

•  touch_start
•  touch
•  touch_end

Functions

•  llDetectedLinkNumber
•  llDetectedTouchFace
•  llDetectedTouchST
•  llDetectedTouchUV
•  llDetectedTouchPos
•  llDetectedTouchNormal

Articles

•  Detected

Deep Notes

History

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 vector llDetectedTouchBinormal( integer index );