Difference between revisions of "User:Ugleh Ulrik/Vector2List"

From Second Life Wiki
Jump to navigation Jump to search
(this is sooooo wrong.)
Line 1: Line 1:
With many requests on how to easily store a vector to a list, mainly for purposes in storing a [b]llGetPos()[/b] only to capture the x and y cords, this is a simple way.
With many requests on how to easily store a vector to a list, mainly for purposes in storing a [[llGetPos]]() only to capture the x and y cords, this is a simple way.


For Example  
For Example  
<lsl>list thislist = Vector2List(llGetPos());</lsl>
As a list, would output
<lsl>list thislist = [x, y, z];</lsl>
'''Function'''
<lsl>
list Vector2List(vector v){
    return [v.x, v.y, v.z];
}
</lsl>
===A Bad Example===
'''Do Not Do This'''
<lsl>
list Vector2List(vector v){
    return [v.x, v.y, v.z];
}


list thislist =  Vector2List(llGetPos());
default
{


As a list, would output
    touch_start(integer total_number)
    {
        vector pos = llGetPos();
        list thislist =  Vector2List(pos);
 
        string x = llList2String(thislist,0);
        string y = llList2String(thislist,1);
        string z = llList2String(thislist,2);
        llOwnerSay("X Axis: " + x);
        llOwnerSay("Y Axis: " + y);
        llOwnerSay("Z Axis: " + z);
    }
}
</lsl>


list thislist =  [x,y,z];
'''Here is the correct way to do this'''


'''Function'''
<lsl>
<pre>
list Vector2List(vector v){  
list Vector2List(vector v){  
     list alist = llParseString2List((string)v,[",", ">", "<"],[]);
     return [v.x, v.y, v.z];
return alist;
}
}
</pre>


'''An Example'''
default
<pre>
{
 
    touch_start(integer total_number)
    {
        vector pos = llGetPos();
        llOwnerSay("X Axis: " + pos.x);
        llOwnerSay("Y Axis: " + pos.y);
        llOwnerSay("Z Axis: " + pos.z);
    }
}
</lsl>
 
===A Good Example===
<lsl>
list Vector2List(vector v){  
list Vector2List(vector v){  
     list alist = llParseString2List((string)v,[",", ">", "<"],[]);
     return [v.x, v.y, v.z];
return alist;
}
}
default
default
{
{
Line 28: Line 69:
     touch_start(integer total_number)
     touch_start(integer total_number)
     {
     {
      list thislist = Vector2List(llGetPos());
        list size = Vector2List(llGetScale());
 
        list sorted_size = llListSort(size, 1, 0);
    string x = llList2String(thislist,0);
        llOwnerSay("<"+llList2CSV(sorted_size)+">");
    string y = llList2String(thislist,1);
    string z = llList2String(thislist,2);
llOwnerSay("X Axis: " + x);
llOwnerSay("Y Axis: " + y);
llOwnerSay("Z Axis: " + z);
     }
     }
}
}
</pre>
</lsl>

Revision as of 19:36, 21 April 2010

With many requests on how to easily store a vector to a list, mainly for purposes in storing a llGetPos() only to capture the x and y cords, this is a simple way.

For Example <lsl>list thislist = Vector2List(llGetPos());</lsl> As a list, would output <lsl>list thislist = [x, y, z];</lsl>

Function <lsl> list Vector2List(vector v){

   return [v.x, v.y, v.z];

} </lsl>

A Bad Example

Do Not Do This <lsl> list Vector2List(vector v){

   return [v.x, v.y, v.z];

}

default {

   touch_start(integer total_number)
   {
       vector pos = llGetPos();
       list thislist =  Vector2List(pos);
       string x = llList2String(thislist,0);
       string y = llList2String(thislist,1);
       string z = llList2String(thislist,2);
       llOwnerSay("X Axis: " + x);
       llOwnerSay("Y Axis: " + y);
       llOwnerSay("Z Axis: " + z);
   }

} </lsl>

Here is the correct way to do this

<lsl> list Vector2List(vector v){

   return [v.x, v.y, v.z];

}

default {

   touch_start(integer total_number)
   {
       vector pos = llGetPos();
       llOwnerSay("X Axis: " + pos.x);
       llOwnerSay("Y Axis: " + pos.y);
       llOwnerSay("Z Axis: " + pos.z);
   }

} </lsl>

A Good Example

<lsl> list Vector2List(vector v){

   return [v.x, v.y, v.z];

}

default {

   touch_start(integer total_number)
   {
       list size = Vector2List(llGetScale());
       list sorted_size = llListSort(size, 1, 0);
       llOwnerSay("<"+llList2CSV(sorted_size)+">");
   }

} </lsl>