LlDetectedTouchPos
Looking for the current API? Open the llDetectedTouchPos reference →
Function notes
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.
Caveats
- TOUCH_INVALID_VECTOR 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 touch event.
- The avatar's viewer does not support face touch detection.
Examples
default
{
touch_start(integer num_detected)
{
llWhisper(0, "Pos clicked: " + (string)llDetectedTouchPos(0));
}
}vector GetRealTouchPos(vector pos)
{
// By Ariu Arai for free use to anyone
// Returns a useful HUD Position Vector from the llDetectedTouchPos(); function
// USE: vector pos = GetRealTouchPos(llDetectedTouchPos(0)); .. Etc.
// This function is intended to be used to move child prims to where the user clicks. This does not work on the root prim.
integer point = llGetAttached();
vector offset;
if (point == ATTACH_HUD_TOP_RIGHT) offset = <1.0, 0.933,-0.5>;
else if (point == ATTACH_HUD_TOP_CENTER) offset = <1.0, 0.000,-0.5>;
else if (point == ATTACH_HUD_TOP_LEFT) offset = <1.0,-0.933,-0.5>;
else if (point == ATTACH_HUD_BOTTOM_LEFT) offset = <1.0,-0.933, 0.5>;
else if (point == ATTACH_HUD_BOTTOM) offset = <1.0, 0.000, 0.5>;
else if (point == ATTACH_HUD_BOTTOM_RIGHT) offset = <1.0, 0.933, 0.5>;
//return (pos - llGetLocalPos()) + (offset * llGetLocalRot());
return ((offset - llGetLocalPos()) + pos) / llGetLocalRot();
}See also: functions
See also: events
History
- Introduced in Viewer SVN:870 r92872 Branch:Release Wednesday, 23 July 2008.
- Server support available in Second Life Server 1.24.7.98039, client support in Release Candidate viewer 1.21.4 (98167).
- Date of Release Server 29-08-2008
- Date of Release Client 16-10-2008
Shared wiki helpers
The original page also injects shared parameter notes, caveats or issue information through these helpers. Their conditional MediaWiki logic is not reproduced here; inspect the preserved helper source for additional material.
Original shared helper source (conditional wiki logic is not evaluated)
{{#if:
{{#vardefine:caveats|{{#var:caveats}}
*HUD attachments currently return coordinates relative to the ''center of the screen'' rather than the attachment point. {{Jira|SVC-3425}}}}
}}{{Issues|SVC-3425|For HUDs [[llDetectedTouchPos]] does not return positions relative to attach point, position is relative to screen center?|type=bug}}Template:LSL Function/detected
Original shared helper source (conditional wiki logic is not evaluated)
{{LSL Injection Test}}{{#if:
{{#vardefine:p_{{{1|none}}}_desc|Index of detection information}}
{{#vardefine:p_{{{1|none}}}_hover|Index of detection information}}
{{LSL_Function/negative_index|false|{{{1|none}}}|oob-return={{{error|}}}}}
{{#vardefine:also_articles|{{#var:also_articles}}
{{LSL DefineRow||{{LSLGC|Detected}}|}}}}
{{#vardefine:spec|{{#if:{{{simple|}}}|{{#var:spec}}|{{#if:{{#var:spec}}|{{#var:spec}}{{PBR}}}}
{{LSLGC|Detected|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.}}}}
{{#if:{{{simple|}}}||{{#vardefine:caveats|{{#var:caveats}}
*Events that enable the {{LSLGC|Detected|llDetected*}} functions always return at least one detected item.
**Detection events are not raised if there is nothing detected.{{Footnote|The exception is [[no_sensor]] but it doesn't enable {{LSLGC|Detected|llDetected*}} functions.|The exception is no_sensor but it doesn't enable llDetected* functions.}}
**The detection event's items detected parameter is initially never less than 1.{{Footnote|Like all event parameters, the user can overwrite the initial value.}}}}}}
<includeonly>
{{#ifeq:{{#var:article-type}}|event||{{#if:{{#pos:{{#var:moded}}|r}}{{#pos:{{#var:moded}}|u}}||{{#vardefine:hidden-text|{{#var:hidden-text}}
{{LSLC|Detected|{{{2}}}|{{#var:lang}}}}
}}}}}}
</includeonly>
}}<includeonly></includeonly><noinclude>
{| {{Prettytable}}
|-{{Hl2}}
! #var
! value
|-
{{VarPair|header_footnote}}
|-
{{VarPair|constants_nb}}
|-
{{VarPairTable|also_articles}}
|-
{{VarPair|p_{{{1|none}}}_desc}}
|-
{{VarPair|p_{{{1|none}}}_hover}}
|-
{{VarPair|spec}}
|-
{{VarPair|caveats}}
|}
</noinclude>Original wiki source
Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.