Difference between revisions of "LlGetRegionCorner"
Jump to navigation
Jump to search
m |
m |
||
Line 9: | Line 9: | ||
|spec | |spec | ||
|caveats | |caveats | ||
|examples=<source lang="lsl2"> | |examples= | ||
<source lang="lsl2"> | |||
//calculates your position relative to <0,0,0> of 'Da Boom' in meters when you touch it | //calculates your position relative to <0,0,0> of 'Da Boom' in meters when you touch it | ||
vector vecrel; //a sum of llgetpos and llgetregioncorner (and another vector). Saving time doing vector math. | vector vecrel; //a sum of llgetpos and llgetregioncorner (and another vector). Saving time doing vector math. | ||
Line 19: | Line 20: | ||
llSetText("Touch me to get your position", <1,1,1>, 2.0); | llSetText("Touch me to get your position", <1,1,1>, 2.0); | ||
} | } | ||
touch_start(integer total_number) | touch_start(integer total_number) | ||
{ | { | ||
vecrel = llGetRegionCorner() + llDetectedPos(0); | vecrel = llGetRegionCorner() + llDetectedPos(0); | ||
llWhisper(0, "llGetRegionCorner() is:"+(string)vecrel ); //for debugging before vector addition | llWhisper(0, "llGetRegionCorner() is:"+(string)vecrel); //for debugging before vector addition | ||
vecrel -= <256000.0, 256000.0, 0.0>;//Da Boom's region corner is at <256000.0, 256000.0, 0.0> | vecrel -= <256000.0, 256000.0, 0.0>;//Da Boom's region corner is at <256000.0, 256000.0, 0.0> | ||
llWhisper (0, "Position relative to <0,0,0> of 'Da Boom': "+ | llWhisper (0, "Position relative to <0,0,0> of 'Da Boom': " + | ||
(string)llRound(vecrel.x) +",\t\t\t"+ (string)llRound(vecrel.y) +",\t\t\t"+ (string)llRound(vecrel.z) + "."); | (string)llRound(vecrel.x) + ",\t\t\t" + (string)llRound(vecrel.y) + ",\t\t\t" + (string)llRound(vecrel.z) + "."); | ||
llWhisper(0, "Position relative to <0,0,0> of 'Da Boom':"+(string)vecrel ); //faster but unformatted output | llWhisper(0, "Position relative to <0,0,0> of 'Da Boom':" +(string)vecrel); //faster but unformatted output | ||
} | } | ||
}</source> | } | ||
</source> | |||
|helpers | |helpers | ||
|also_header | |also_header |
Revision as of 10:58, 21 February 2022
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: vector llGetRegionCorner( );199 | Function ID |
0.0 | Forced Delay |
10.0 | Energy |
Returns a vector in meters that is the global location of the south-west corner of the region the object is in. The z component is 0.0
Divide the returned value by 256 to get the region offset.
Caveats
Examples
//calculates your position relative to <0,0,0> of 'Da Boom' in meters when you touch it
vector vecrel; //a sum of llgetpos and llgetregioncorner (and another vector). Saving time doing vector math.
default
{
state_entry()
{
llSetText("Touch me to get your position", <1,1,1>, 2.0);
}
touch_start(integer total_number)
{
vecrel = llGetRegionCorner() + llDetectedPos(0);
llWhisper(0, "llGetRegionCorner() is:"+(string)vecrel); //for debugging before vector addition
vecrel -= <256000.0, 256000.0, 0.0>;//Da Boom's region corner is at <256000.0, 256000.0, 0.0>
llWhisper (0, "Position relative to <0,0,0> of 'Da Boom': " +
(string)llRound(vecrel.x) + ",\t\t\t" + (string)llRound(vecrel.y) + ",\t\t\t" + (string)llRound(vecrel.z) + ".");
llWhisper(0, "Position relative to <0,0,0> of 'Da Boom':" +(string)vecrel); //faster but unformatted output
}
}
Notes
The great zero is at region offset <1000,1000>, Great Zero🖈