Difference between revisions of "LlGetPos"

From Second Life Wiki
Jump to navigation Jump to search
m
m (Fix: some stupid syntax errors (= bad copy&pasting))
 
(4 intermediate revisions by 4 users not shown)
Line 7: Line 7:
|Return_text=position of the task in [[Viewer coordinate frames#Region|region]] coordinates
|Return_text=position of the task in [[Viewer coordinate frames#Region|region]] coordinates
|spec
|spec
|caveats=*When called from the root of an attachment, returns the wearer's position.
|caveats=*When called from the root of an attachment, returns the wearer's region position. To see the position used, enable '''Develop>Avatar>Display Agent Target''' and use the red crosshair. If the avatar is sitting on an object, the red crosshair may be hidden by the white one, in the same position.
*When called in an attachment's child prim, always returns that prim's region position. This value is not where it appears on screen, but instead it is relative to the ''avatar's'' root position and rotation, but with the correct distance from the root prim. To see the root position used, enable '''Develop>Avatar>Display Agent Target'''. If the avatar is sitting on an object, the off-white crosshair is the avatar position; at all other times use the red crosshair. Moving the attachment's root or changing the attachment point will not affect the reported position. Avatar animation is invisible to the simulator, so it also does not affect the reported position.
 
*When called in an attachment's child prim, the position given is again relative to the ''avatar's'' root position and rotation, but with the offset from the root prim added. Visually, the reported position will only be correct if the object's root is attached to [[ATTACH_AVATAR_CENTER]], at [[ZERO_ROTATION]] and [[ZERO_VECTOR]]. Moving the attachment's root or changing the attachment point will not affect the reported position. Avatar animation is invisible to the simulator, so it also does not affect the reported position.
|constants
|constants
|examples=<lsl>default
|examples=<syntaxhighlight lang="lsl2">default
{
{
     touch_start(integer total_number)
     touch_start(integer total_number)
Line 21: Line 22:
         llSay(0, (string)position);
         llSay(0, (string)position);
     }
     }
}</lsl>
}</syntaxhighlight>
<lsl>default
<syntaxhighlight lang="lsl2">default
{
{
     on_rez(integer param)
     on_rez(integer param)
Line 32: Line 33:
         llOwnerSay("Oooh! I'm up high!");
         llOwnerSay("Oooh! I'm up high!");
     }
     }
}</lsl>
}</syntaxhighlight>
|helpers
|helpers
|also_functions=
|also_functions=
Line 49: Line 50:
|cat3
|cat3
|cat4
|cat4
|haiku={{Haiku|Remote yesteryear|A precise position shows|out of primitive}}
}}
}}

Latest revision as of 13:51, 17 April 2022

Summary

Function: vector llGetPos( );
0.0 Forced Delay
10.0 Energy

Returns the vector position of the task in region coordinates

Caveats

  • When called from the root of an attachment, returns the wearer's region position. To see the position used, enable Develop>Avatar>Display Agent Target and use the red crosshair. If the avatar is sitting on an object, the red crosshair may be hidden by the white one, in the same position.
  • When called in an attachment's child prim, the position given is again relative to the avatar's root position and rotation, but with the offset from the root prim added. Visually, the reported position will only be correct if the object's root is attached to ATTACH_AVATAR_CENTER, at ZERO_ROTATION and ZERO_VECTOR. Moving the attachment's root or changing the attachment point will not affect the reported position. Avatar animation is invisible to the simulator, so it also does not affect the reported position.

Examples

default
{
    touch_start(integer total_number)
    {
        // When touched, check the position of
        // the object, save it to "position",
        // then convert it into a string and
        // say it.
        vector position = llGetPos();
        llSay(0, (string)position);
    }
}
default
{
    on_rez(integer param)
    {
        // Adding .x .y or .z after the vector name can be used to get the float value of just that axis.
        vector pos = llGetPos();
        float Z = pos.z; // <--- Like this.
        if(Z > 500.0)
        llOwnerSay("Oooh! I'm up high!");
    }
}

See Also

Functions

•  llGetLocalPos Gets the prim local position
•  llGetPrimitiveParams Gets prim properties
•  llGetRootPosition Gets the root prims position
•  llSetPos Sets the prim position
•  llSetPrimitiveParams Sets prim properties
•  llSetLinkPrimitiveParams Sets linked prim properties

Deep Notes

Signature

function vector llGetPos();

Haiku

Remote yesteryear
A precise position shows
out of primitive