Difference between revisions of "LlList2Rot"

From Second Life Wiki
Jump to navigation Jump to search
m (added LSL Tip)
m (<lsl> tag to <source>)
 
Line 16: Line 16:
|constants
|constants
|examples=
|examples=
<lsl>// Best viewed in Chat History (ctrl-h)
<source lang="lsl2">// Best viewed in Chat History (ctrl-h)
default
default
{
{
Line 33: Line 33:
         }
         }
     }
     }
}</lsl>
}</source>
|helpers
|helpers
|also_functions=
|also_functions=

Latest revision as of 10:46, 22 January 2015

Summary

Function: rotation llList2Rot( list src, integer index );
0.0 Forced Delay
10.0 Energy

Returns a rotation 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_ROTATION is returned.
If the type of the element at index in src is not a rotation then ZERO_ROTATION is returned.
Here is a workaround: (rotation)llList2String(src, index);

KBcaution.png Important: Please read this intro of how to iterate over a list in LSL.

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_ROTATION
    • A true typecast will solve this: (rotation)llList2String(src, index);
      • Unfortunately, if it was already a rotation type, using llList2String will cause the decimal values to be truncated to six decimal places.

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

Signature

function rotation llList2Rot( list src, integer index );