Difference between revisions of "PRIM POSITION"

From Second Life Wiki
Jump to navigation Jump to search
m (omg i forgot how confusing the PRIM_* articles are to edit ~_~)
Line 6: Line 6:


{{#vardefine:caveats-set|{{#ifeq:{{{1|}}}|set|**|*}} Depending upon the situation '''position''' may need to be in [[Viewer_coordinate_frames#local|local coordinates]] or [[Viewer_coordinate_frames#region|region coordinates]], See [[llSetPos#Specification]] for details.
{{#vardefine:caveats-set|{{#ifeq:{{{1|}}}|set|**|*}} Depending upon the situation '''position''' may need to be in [[Viewer_coordinate_frames#local|local coordinates]] or [[Viewer_coordinate_frames#region|region coordinates]], See [[llSetPos#Specification]] for details.
{{#ifeq:{{{1|}}}|set|**|*}} The range the prim can move is limited if it is an unattached root prim. The distance is capped to 10m per {{#var:position_const}} call. See [[WarpPos]]. This is a very special case. Do not rely on rule duplication of other flags - the results are undefined, and things ''will'' break in the future.}}
{{#ifeq:{{{1|}}}|set|**|*}} The range the prim can move is limited if it is an unattached root prim. The distance is capped to 10m per {{#var:position_const}} call. See [[WarpPos]]. This is a very special case. Do not rely on rule duplication of other flags - the results are undefined, and things ''will'' break in the future.
{{#ifeq:{{{1|}}}|set|**|*}} Moving a prim that an avatar is seated upon will not move the avatar; the sit target will not be updated.
{{#ifeq:{{{1|}}}|set|***|**}} To mimic updating of a sit-target, use [[llSitTarget#Useful_Snippets|UpdateSitTarget]].}}


{{#vardefine:caveats|
{{#vardefine:caveats|
Line 29: Line 31:
* Moving the prim the avatar sat upon does not move the avatar.
* Moving the prim the avatar sat upon does not move the avatar.
* Moving an avatar does not move the prim they sat upon.
* Moving an avatar does not move the prim they sat upon.
* Sit-target coordinates do not easily map to prim coordinates
* Sit-target coordinates do not easily map to prim coordinates, use [[llSitTarget#Useful_Snippets|UpdateSitTarget]].
** To mimic updating of a sit-target, use UpdateSitTarget found here: [[llSitTarget#Useful_Snippets]]<br>All the nasty work of translating the coordinates has been done.
=====Examples=====
 
The below example moves an avatar to x,y,z without moving the prim they are sitting on. If x,y,z is more than 54 meters away the call will silently fail. Remember x,y,z is in object relative coordinates just like any other linked prim in a set.
The below example moves avatar to x,y,z without moving the prim they are sitting on. If x,y,z is more than 54 meters away the function will silently fail. Remember x,y,z is in object relative coordinates just like any other linked prim in a set.


Avatars are always the last prims in the set, so [[llGetNumberOfPrims]] can be used for a single avatar sitting on a vehicle.
Avatars are always the last prims in the set, so [[llGetNumberOfPrims]] can be used for a single avatar sitting on a vehicle.
Line 51: Line 52:
{{#var:caveats-set}}
{{#var:caveats-set}}
===[[llSetLinkPrimitiveParams]] and {{LSLGC|Avatar|Avatars}}===
===[[llSetLinkPrimitiveParams]] and {{LSLGC|Avatar|Avatars}}===
While [[llSetLinkPrimitiveParams]] can be used to update the positions
{{#var:PRIM_POSITION/SLPP&A}}
|i1_type=vector|i1_name=positionset|i1_disp=position
|i1_type=vector|i1_name=positionset|i1_disp=position
|toc=llSetPrimitiveParams
|toc=llSetPrimitiveParams

Revision as of 20:24, 3 May 2009

Description

Constant: integer PRIM_POSITION = 6;

The integer constant PRIM_POSITION has the value 6

PRIM_POSITION is used to get or set the prim's position.

llSetPrimitiveParams

llSetPrimitiveParams([ ..., PRIM_POSITION, vector position, ... ]);
• vector position position in local or regional coordinates depending upon the situation.

The same syntax applies to llSetLinkPrimitiveParams, but with the addition of a link parameter.

Caveats

  • Depending upon the situation position may need to be in local coordinates or region coordinates, See llSetPos#Specification for details.
  • The range the prim can move is limited if it is an unattached root prim. The distance is capped to 10m per PRIM_POSITION call. See WarpPos. This is a very special case. Do not rely on rule duplication of other flags - the results are undefined, and things will break in the future.
  • Moving a prim that an avatar is seated upon will not move the avatar; the sit target will not be updated.

llSetLinkPrimitiveParams and Avatars

Avatars sitting on the object can be moved with llSetLinkPrimitiveParams and PRIM_POSITION. This was originally a mis-feature but according to Andrew Linden LL has decided to support it.

Be Aware
  • Moving the prim the avatar sat upon does not move the avatar.
  • Moving an avatar does not move the prim they sat upon.
  • Sit-target coordinates do not easily map to prim coordinates, use UpdateSitTarget.
Examples

The below example moves an avatar to x,y,z without moving the prim they are sitting on. If x,y,z is more than 54 meters away the call will silently fail. Remember x,y,z is in object relative coordinates just like any other linked prim in a set.

Avatars are always the last prims in the set, so llGetNumberOfPrims can be used for a single avatar sitting on a vehicle.

Example: llSetLinkPrimitiveParams(llGetNumberOfPrims(), [[[PRIM_POSITION]], <x,y,z>]);

llGetPrimitiveParams

llGetPrimitiveParams([ ..., PRIM_POSITION, ... ]);

Returns the list [ vector position ]

• vector position position in region coordinates.

Caveats

Related Articles

Constants

•  PRIM_ROTATION

Functions

•  llGetPrimitiveParams
•  llSetPrimitiveParams
•  llSetLinkPrimitiveParams
•  llGetPos
•  llSetPos
•  llGetLocalPos
•  llGetRootPosition
•  llGetObjectDetails

Articles

•  warpPos

Deep Notes

Search JIRA for related Issues

Signature

integer PRIM_POSITION = 6;