LuaManual Vectors - Gambini/libRocket GitHub Wiki
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.
--Lua code
local vecA = Vector2f.new(1.2,3.1)
local vecB = Vecotr2f.new(0.0,1.7)
local vecC = vecA + vecB
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.