Vectors - mattbichay/test GitHub Wiki

Table of Contents

Vectors

Vectors (Vector2i and Vector2f) are basic types. They have a few methods and properties, and overloaded operators. Vector2i has properties x and y of type `int`, and Vector2f has properties x and y of type `float`.

Overloaded operators

These operators are overloaded using the Lua metamethods. Both Vector2i and Vector2f share these operator overloads, of course specialized for their type. Operators are binary operators, meaning they have two operands. This is transparent in Lua, so an example below is given to show which parameter is which.

If, while looking in the documentation, you want to understand the example above, vecA will be the lhs (left-hand side) parameter, vecB will be the rhs (right-hand side) parameter to the below overloaded operators, and vecC will be of the type to the left of the word "operator".

Below, `type` will be float for Vector2f and int for Vector2i. `Vector` will be Vector2i or Vector2f depending on the type of the object being used.

 `Vector `operator '''*'''(`Vector` ''lhs'', `type` ''rhs'')::
   Multiplication
 `Vector `operator '''/'''(`Vector` ''lhs'', `type` ''rhs'')::
   Division
 `Vector `operator '''+'''(`Vector` ''lhs'', `Vector` ''rhs'')::
   Addition
 `Vector `operator '''-'''(`Vector` ''lhs'', `Vector` ''rhs'')::
   Subtraction
 `bool `operator '''=='''(`Vector` ''lhs'', `Vector` ''rhs'')::
   Equality

Vector2f

 `Vector2f `'''new'''(`float` ''x'',`float` ''y'')::
   Creates a new Vector2f for use in Lua.
 `float `'''DotProduct'''(`Vector2f` ''other'')::
   Does a dot product between this object and ''other''.
 `Vector2f `'''Normalise'''()::
   Returns a new vector that has the value of this vector if it were normalized.
 `Vector2f `'''Rotate'''(`float` ''theta'')::
   Returns a new vector that has the value of this vector if it were rotated by ''theta'' around the origin.
 '''x'''`   `(`float`)::
   ''x'' property. Read & write.
 '''y'''`   `(`float`)::
   ''y'' property. Read & write.
 '''magnitude'''`   `(`float`)::
   sqrt(''x''^2^ + ''y''^2^)  . Read-only.

Vector2i

 `Vector2i `'''new'''(`int` ''x'',`int` ''y'')::
   Creates a new Vector2i for use in Lua.
 '''x'''`   `(`int`)::
   ''x'' property. Read & write.
 '''y'''`   `(`int`)::
   ''y'' property. Read & write.
 '''magnitude'''`   `(`float`)::
   sqrt(''x''^2^ + ''y''^2^)  . Read-only.
⚠️ **GitHub.com Fallback** ⚠️