Difference between revisions of "LlList2Vector"

From Second Life Wiki
Jump to: navigation, search
 
m (<lsl> tag to <source>)
 
(24 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{LSLFunctionAll|func_id=190|func_sleep=0.0|func_energy=10.0|func=llList2Vector|return_type=vector|p1_type=list|p1_name=src|p2_type=integer|p2_name=index|func_footnote=Copy the vector at index in the list|return_text|spec|caveats|examples|helpers|related|also|notes}}[[Category:LSL_Functions]][[Category:LSL_Stub]]
+
{{LSL_Function
 +
|inject-2={{Issues/SVC-798}}
 +
{{LSL_Function/list/element|src|index|vector|nc=*|return={{HoverLink|ZERO_VECTOR|{{LSL VR|0.0, 0.0, 0.0}}}}}}
 +
|func_id=190|func_sleep=0.0|func_energy=10.0
 +
|func=llList2Vector|return_type=vector|p1_type=list|p1_name=src|p2_type=integer|p2_name=index
 +
|func_footnote
 +
|func_desc
 +
|return_text=that is at {{LSLP|index}} in {{LSLP|src}}.
 +
|spec
 +
|caveats=*When used to typecast from a string it will result in a [[ZERO_VECTOR]]
 +
**A true typecast will solve this: ([[vector]])[[llList2String]](src, index);
 +
***Unfortunately, if it was already a vector type, using [[llList2String]] will cause the decimal values to be truncated to six decimal places.
 +
***In any string representation of a vector such as [[llList2String]](src, index), or (string) llList2Vector (src, index), spaces are automatically added after the commas. When received by a [[listen]], make sure NOT to parse by spaces.
 +
 
 +
|constants
 +
|examples=
 +
<source lang="lsl2">// Best viewed in Chat History (ctrl-h)
 +
default
 +
{
 +
    state_entry()
 +
    {
 +
        list my_list = ["a", 1, 2.0, <1,2,3>, <1,2,3,4>, llGetOwner()];
 +
        integer i = ~llGetListLength(my_list);
 +
        while(++i)
 +
        {
 +
            llOwnerSay("string=" + llList2String(my_list,i)
 +
                        + "\n  integer=" + (string)llList2Integer(my_list,i)
 +
                        + "\n  float=" + (string)llList2Float(my_list,i)
 +
                        + "\n  vector=" + (string)llList2Vector(my_list,i)
 +
                        + "\n  rot=" + (string)llList2Rot(my_list,i)
 +
                        + "\n  key=" + (string)llList2Key(my_list,i) );
 +
        }
 +
    }
 +
}</source>
 +
|helpers
 +
|also_functions=
 +
{{LSL DefineRow||[[llGetListEntryType]]|}}
 +
{{LSL DefineRow||[[llList2String]]|}}
 +
|also_events
 +
|also_tests
 +
|also_articles
 +
|notes
 +
|issues
 +
|cat1=List
 +
|cat2
 +
|cat3
 +
|cat4
 +
}}

Latest revision as of 10:48, 22 January 2015

Summary

Function: vector llList2Vector( list src, integer index );

Returns a vector that is at index in src.

• list src List containing the element of interest.
• integer index Index of the element of interest.

index supports negative indexes.
If index describes a location not in src then ZERO_VECTOR is returned.
If the type of the element at index in src is not a vector then ZERO_VECTOR is returned.
Here is a workaround: (vector)llList2String(src, index);

Specification

Index Positive Negative
First 0 -length
Last length - 1 -1

Indexes

  • Positive indexes count from the beginning, the first item being indexed as 0, the last as (length - 1).
  • Negative indexes count from the far end, the first item being indexed as -length, the last as -1.

Caveats

  • If index is out of bounds the script continues to execute without an error message.
  • When used to typecast from a string it will result in a ZERO_VECTOR
    • A true typecast will solve this: (vector)llList2String(src, index);
      • Unfortunately, if it was already a vector type, using llList2String will cause the decimal values to be truncated to six decimal places.
      • In any string representation of a vector such as llList2String(src, index), or (string) llList2Vector (src, index), spaces are automatically added after the commas. When received by a listen, make sure NOT to parse by spaces.
All Issues ~ Search JIRA for related Bugs

Examples

// Best viewed in Chat History (ctrl-h)
default
{
    state_entry()
    {
        list my_list = ["a", 1, 2.0, <1,2,3>, <1,2,3,4>, llGetOwner()];
        integer i = ~llGetListLength(my_list);
        while(++i)
        {
            llOwnerSay("string=" + llList2String(my_list,i)
                        + "\n   integer=" + (string)llList2Integer(my_list,i)
                        + "\n   float=" + (string)llList2Float(my_list,i)
                        + "\n   vector=" + (string)llList2Vector(my_list,i)
                        + "\n   rot=" + (string)llList2Rot(my_list,i)
                        + "\n   key=" + (string)llList2Key(my_list,i) );
        }
    }
}

See Also

Functions

•  llGetListEntryType
•  llList2String

Articles

•  Negative Index

Deep Notes

All Issues

~ Search JIRA for related Issues
   Perform typecasting with all llList2* functions

Signature

function vector llList2Vector( list src, integer index );