Differences

This shows you the differences between two versions of the page.

Link to this comparison view

wiki:scripting_portal:lsl_types:vector [2018/11/17 13:56] (current)
Royale Mobian created
Line 1: Line 1:
 +====== 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.
 +<code ossl>
 +vector vec;
 +float x = vec.x;
 +float y = vec.y;
 +float z = vec.z;
 +</​code>​
 +
 +===== 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 =====
 +<code ossl>
 +vector test=<​1.0,​ 2.0, 3.0>;
 +llOwnerSay((string)test.z);​ // Outputs 3.0
 +</​code>​
 +===== Useful Snippets =====
 +<code ossl>
 +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 FALSE;
 +    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 @ Second Life
 +</​code>​
QR Code
QR Code wiki:scripting_portal:lsl_types:vector (generated for current page)