Difference between revisions of "Category:LSL Vector"

From Second Life Wiki
Jump to navigation Jump to search
m
m
Line 2: Line 2:
==Vector==
==Vector==


A vector is a data [[:Category:LSL Types|type]] that contains a set of three [[LSL_float|float]] values. Each element can be accessed individually by appending .x, .y, or .z to the variable name. 
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

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.