Difference between revisions of "Category:LSL Vector"
Jump to navigation
Jump to search
m |
m |
||
Line 2: | Line 2: | ||
==Vector== | ==Vector== | ||
A vector is a data | A vector is a data {{LSLGC|Types|type}} that contains a set of three {{LSLGC|Float|float}} values. | ||
===Components=== | |||
Each element can be accessed individually by appending .x, .y, or .z to the variable name. | |||
<lsl>vector vec; | |||
float x = vec.x; | |||
float y = vec.y; | |||
float z = vec.z;</lsl> | |||
===Uses=== | |||
Vectors can be used to hold the following: | Vectors can be used to hold the following: | ||
* Position: x, y and z are in metres. | * Position: x, y and z are in metres. | ||
Line 9: | Line 18: | ||
* {{LSLGC|Color|Colour}}: Red is x, Green is y and Blue is z. | * {{LSLGC|Color|Colour}}: Red is x, Green is y and Blue is z. | ||
===Operators=== | |||
Vectors support the following operations: | Vectors support the following operations: | ||
* Addition, Operator "+" | * Addition, Operator "+" |
Revision as of 19:46, 21 April 2010
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Vector
A vector is a data type that contains a set of three float values.
Components
Each element can be accessed individually by appending .x, .y, or .z to the variable name.
<lsl>vector vec; float x = vec.x; float y = vec.y; float z = vec.z;</lsl>
Uses
Vectors can be used to hold the following:
- Position: x, y and z are in metres.
- Velocity: x, y and z represent speeds.
- Colour: Red is x, Green is y and Blue is z.
Operators
Vectors support the following operations:
- Addition, Operator "+"
- Subtraction, Operator "-"
- Multiplication (Dot Product), Operator "*"
- Cross Product, Operator "%"
A vector can be multiplied or divided by a Quaternion to rotate it.
Example
<lsl>vector test=<1.0, 2.0, 3.0>; llOwnerSay((string)test.z); // Outputs 3.0</lsl>
Useful Snippets
<lsl>integer IsVector(string s) {
list split = llParseString2List(s, [" "], ["<", ">", ","]); if(llGetListLength(split) != 7)//we must check the list length, or the next test won't work properly. return 0; return !((string)((vector)s) == (string)((vector)((string)llListInsertList(split, ["-"], 5)))); //it works by trying to flip the sign on the Z element of the vector, //if it works or breaks the vector then the values won't match. //if the vector was already broken then the sign flip will have no affect and the values will match //we cast back to string so we can catch negative zero which allows for support of ZERO_VECTOR
}//Strife Onizuka</lsl>
Subcategories
This category has the following 2 subcategories, out of 2 total.
Pages in category "LSL Vector"
The following 6 pages are in this category, out of 6 total.