Difference between revisions of "LlGetRegionCorner"

From Second Life Wiki
Jump to navigation Jump to search
m (<lsl> tag to <source>)
m
Line 9: Line 9:
|spec
|spec
|caveats
|caveats
|examples=<source lang="lsl2">//calculates your position relative to <0,0,0> of 'Da Boom' in meters when you touch it
|examples=<source lang="lsl2">
//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 22: Line 23:
         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': "+ (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)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 07:01, 21 February 2022

Summary

Function: vector llGetRegionCorner( );
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.

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🖈

Deep Notes

Signature

function vector llGetRegionCorner();