Difference between revisions of "Talk:LlSetRegionPos"

From Second Life Wiki
Jump to navigation Jump to search
(Woot!)
 
m (→‎Woot!: Replaced deprecated <lsl> tag with <syntaxhighlight>)
 
(6 intermediate revisions by 3 users not shown)
Line 2: Line 2:


Woot!  :)  [[User:Dale Innis|Dale Innis]] 10:33, 8 February 2012 (PST)
Woot!  :)  [[User:Dale Innis|Dale Innis]] 10:33, 8 February 2012 (PST)
Does the "success tolerance" of 0.1m hint that the function is for some reason prone to hitting with that wide an error, or is it just a very, very, very safe margin for a floating point roundoff of the requested location?
[[User:Tali Rosca|Tali Rosca]] 10:10, 3 March 2012 (PST)
The comment about warpPos is wrong
The error is <= 1e-6 .
( except of course if you try to go under the ground )
Tested on Linden Sandbox Magnum RC :
5000 llSetregionpos with random values ;
for z values < ground , we raise z;
Result : the 5000 llsetregionpos go to a correct position
<syntaxhighlight lang="lsl2">
default
{
    touch_start(integer total_number)
    {
        integer numberTests = 5000 ;
        integer n = 1;
        vector d;
        float h;
        vector posTouched = llGetPos();
        do
        {
            d = <llFrand(256.0), llFrand(256.0), llFrand(4096.0)>;
            h = llGround(d-llGetPos());
            if ( d.z <= h )
                d.z = h + 1.0;
            llSetRegionPos(d);
            llOwnerSay(llList2CSV([ "test #", n, "error", llGetPos()-d, "pos",llGetPos(), "dest", d ]));
            n++;
        } while ( ((llGetPos()-d) == ZERO_VECTOR ) && ( n <= numberTests) ) ;
        llSetRegionPos(posTouched);
    }
}
</syntaxhighlight> [[User:Miranda Umino|Miranda Umino]] 08:02, 6 March 2013 (PST)
In fact , i guess the function doeesn t try to move an object with 0.1 meters :
it moves an object EXACTLY to the position . But it can t move an object under the ground . And the function returns a value to inform succes or failure , it exists a test  "if within 0.1 meters" to know if the object was high and has been capped by the ground , or if the object was already near the ground before the call of the function
[[User:Miranda Umino|Miranda Umino]] 08:30, 6 March 2013 (PST)
== Going (just) off-sim? ==
The writeup says that the target can be up to ten meters off-sim (basically), but when I try to do that terrible things happen, at least when it's an object I am sitting on.  The usual terrible things associated with a failed sim-handoff: standing in mid-air, unable to move, unable to interact with visible objects if any, minimap and location-bar having different opinions about where you are, etc.
Has anyone been using the just-off-sim abilities of llSetRegionPos successfully at all?
(Where, just to be clear, I mean just-off-sim into another adjacent sim, not into a place where no sim exists.)
[[User:Dale Innis|Dale Innis]] 20:13, 19 July 2013 (PDT)

Latest revision as of 12:45, 24 October 2022

Woot!

Woot!  :) Dale Innis 10:33, 8 February 2012 (PST)

Does the "success tolerance" of 0.1m hint that the function is for some reason prone to hitting with that wide an error, or is it just a very, very, very safe margin for a floating point roundoff of the requested location? Tali Rosca 10:10, 3 March 2012 (PST)


The comment about warpPos is wrong The error is <= 1e-6 . ( except of course if you try to go under the ground ) Tested on Linden Sandbox Magnum RC : 5000 llSetregionpos with random values ; for z values < ground , we raise z; Result : the 5000 llsetregionpos go to a correct position

default
{

    touch_start(integer total_number)
    {

        integer numberTests = 5000 ;
        integer n = 1;
        vector d;
        float h;
        vector posTouched = llGetPos();
        do
        { 
            d = <llFrand(256.0), llFrand(256.0), llFrand(4096.0)>;
            h = llGround(d-llGetPos());
            if ( d.z <= h )
                d.z = h + 1.0;
            llSetRegionPos(d);
            llOwnerSay(llList2CSV([ "test #", n, "error", llGetPos()-d, "pos",llGetPos(), "dest", d ]));
            n++;
        } while ( ((llGetPos()-d) == ZERO_VECTOR ) && ( n <= numberTests) ) ;
        llSetRegionPos(posTouched);
    }
}

Miranda Umino 08:02, 6 March 2013 (PST)

In fact , i guess the function doeesn t try to move an object with 0.1 meters : it moves an object EXACTLY to the position . But it can t move an object under the ground . And the function returns a value to inform succes or failure , it exists a test "if within 0.1 meters" to know if the object was high and has been capped by the ground , or if the object was already near the ground before the call of the function Miranda Umino 08:30, 6 March 2013 (PST)

Going (just) off-sim?

The writeup says that the target can be up to ten meters off-sim (basically), but when I try to do that terrible things happen, at least when it's an object I am sitting on. The usual terrible things associated with a failed sim-handoff: standing in mid-air, unable to move, unable to interact with visible objects if any, minimap and location-bar having different opinions about where you are, etc.

Has anyone been using the just-off-sim abilities of llSetRegionPos successfully at all?

(Where, just to be clear, I mean just-off-sim into another adjacent sim, not into a place where no sim exists.)

Dale Innis 20:13, 19 July 2013 (PDT)