Binary
Binary operators accept two parameters and return a single value. Most binary operators are defined for many different types of input like
list,
float,
vector.
binary operators
Operator | Type | Meaning | Return Value | Effect |
+ | Arithmetic | Addition | Sum of inputs | None |
- | Arithmetic | Subtraction | Subtraction of inputs | None |
* | Arithmetic | Multiplication | Multiplication of inputs | None |
/ | Arithmetic | Division | Division of inputs | None |
% | Arithmetic | modulo (remainder) or vector cross product | Remainder after division | None |
> | Arithmetic | Greater than | TRUE or FALSE | None |
< | Arithmetic | Less than | TRUE or FALSE | None |
>= | Arithmetic | Greater than or Equal to | TRUE or FALSE | None |
<= | Arithmetic | Less than or Equal to | TRUE or FALSE | None |
!= | Logical | Inequality | TRUE or FALSE | None |
== | Logical | Equality | TRUE or FALSE | None |
&& | Logical | AND | TRUE or FALSE | None |
|| | Logical | OR | TRUE or FALSE | None |
& | Bitwise | AND | AND of each bit of inputs | None |
| | Bitwise | OR | OR of each bit of inputs | None |
<< | Bitwise | Left shift | Left shift | None |
>> | Bitwise | Right shift | Right shift | None |
^ | Bitwise | Exclusive OR | XOR of each bit of inputs | None |
Like many other languages, LSL supports combining the
assignment operator with binary operators.
Operator | Syntax | Description |
+= | var1 += var2 | Assigns the value var1 + var2 to the variable var1. |
-= | var1 -= var2 | Assigns the value var1 - var2 to the variable var1. |
/= | var1 /= var2 | Assigns the value var1 / var2 to the variable var1. |
*= | var1 *= var2 | Assigns the value var1 * var2 to the variable var1. |
%= | var1 %= var2 | Assigns the value var1 % var2 to the variable var1. |
The following tables can be used to calculate the output given the type of the left and right hand operands (
A and
B respectively) for each operator. Only possible operations are listed..
Operator: +
Left-A | Right-B | Output |
integer | integer | An integer, representing the arithmetic result of adding A to B. |
integer | float | A float, representing the arithmetic result of adding A to B. |
float | integer | A float, representing the arithmetic result of adding A to B. |
float | float | A float, representing the arithmetic result of adding A to B. |
vector | vector | A vector, representing the values of the three component floats of each vector added together, seperately. For example, if you give A, a value of <a, b, c>, and B a value of <x, y, z>, and add them together, you get <a + x, b + y, c + z>. |
rotation | rotation | A rotation, representing the values of the four component floats of each rotation added together, seperately. For example, if you give A a value of <a, b, c, d>, and B a value of <x, y, z, s>, and add them together, you get <a + x, b + y, c + z, d + s>. This is a meaningless operation, with respect to rotation math. |
string | string | A string, representing the value of B appended onto the end of A. For example, if A had the value "hello", and B had the value "goodbye", adding them together would give a result of "hellogoodbye". |
list | list | A list with all the elements of B, in order, appended onto the end of A. |
* | list | A list, with A prefixed to the list B. The type of A is maintained inside the new list; A can be any type (other then a list). |
list | * | A list, with B appended to the end of list A. The type of B is maintained inside the new list; B can be any type (other then a list). |
Operator: -
Left-A | Right-B | Output |
integer | integer | An integer, representing the arithmetic result of subtracting B from A. |
integer | float | A float, representing the arithmetic result of subtracting B from A. |
float | integer | A float, representing the arithmetic result of subtracting B from A. |
float | float | A float, representing the arithmetic result of subtracting B from A. |
vector | vector | A vector, representing the values of the three component floats of B and A subtracted from each other, seperately. For example, if you give A a value of <a, b, c>, and B a value of <x, y, z>, and subtract them, you get <a - x, b - y, c - z>. |
rotation | rotation | A rotation, representing the values of the four component floats of each rotation subtracted from each other, seperately. For example, if you give A a value of <a, b, c, d>, and B a value of <x, y, z, s>, and subtract them, you get <a - x, b - y, c - z, d - s>. This is a meaningless operation, with respect to rotation math. |
Operator: *
Left-A | Right-B | Output |
integer | integer | An integer, representing the arithmetic result of multiplying A with B. |
integer | float | A float, representing the arithmetic result of multiplying A with B. |
float | integer | A float, representing the arithmetic result of multiplying A with B. |
float | float | A float, representing the arithmetic result of multiplying A with B. |
vector | integer | A vector, whose direction has not changed but magnitude has. <A.x * B, A.y * B, A.z * B> |
vector | float | A vector, whose direction has not changed but magnitude has. <A.x * B, A.y * B, A.z * B> |
vector | vector | A float, representing the sum of the values of the three component floats of each vector multiplied together, separately. For example, if you give A, a value of <a, b, c>, and B, a value of <x, y, z>, and multiply them together, you get ((a * x) + (b * y) + (c * z)). This is known as the dot product of A and B. |
vector | rotation | A vector, representing the vector A rotated the amount of B. The magnitude of the vector is multiplied by the square of the magnitude of the rotation. |
rotation | rotation | A rotation, representing the combination of two rotations; rotation B applied to rotation A. |
Operator: /
Left-A | Right-B | Output |
integer | integer | An integer, representing the arithmetic result of devision of A by B. |
integer | float | A float, representing the arithmetic result of devision of A of B. |
float | integer | A float, representing the arithmetic result of devision of A of B. |
float | float | A float, representing the arithmetic result of devision of A of B. |
vector | integer | A vector, whose direction has not changed but magnitude has. <A.x / B, A.y / B, A.z / B> |
vector | float | A vector, whose direction has not changed but magnitude has. <A.x / B, A.y / B, A.z / B> |
vector | rotation | A vector, representing the vector A rotated the inverse amount of B. The magnitude of the vector is multiplied by the square of the magnitude of the rotation. Another way to think of this is that A is restated in terms of the coordinate axes represented by B. |
rotation | rotation | A rotation, representing the combination of two rotations; the inverse of rotation B applied to rotation A. |
Operator: %
Left-A | Right-B | Output |
integer | integer | The remainder of dividing A by B. |
vector | vector | Vector cross product of A and B |
Operators |
Unary |
Binary |
Bitwise |
Boolean |
Equality |
Assignment