The SVector struct contains a simple 3D vector of X, Y and Z floats
X axis (red axis)
local originalPos = obj.LocalPosition;
obj.SubscribeToEvents();
local onStartMethod = function()
Space.Log(originalPos.x);
-- prints the X axis position of this object as a float
originalPos.x = 100.0;
-- sets the X axis position of this object to 100.0
end
Y axis (green axis)
local originalPos = obj.LocalPosition;
obj.SubscribeToEvents();
local onStartMethod = function()
Space.Log(originalPos.y);
-- prints the Y axis position of this object as a float
originalPos.y = 100.0;
-- sets the Y axis position of this object to 100.0
end
Z axis (blue axis)
local originalPos = obj.LocalPosition;
obj.SubscribeToEvents();
local onStartMethod = function()
Space.Log(originalPos.z);
-- prints the Z axis position of this object as a float
originalPos.z = 100.0;
-- sets the Z axis position of this object to 100.0
end
Initialises vector from three floats
Note: Add/Scale/Divide are also implemented as operators (e.g. A + B, A += B)
Adds another vector to this, and returns the result
local vectorOther = Vector.New(40, 50, 6);
Space.Log(vector.Add(vectorOther));
-- prints [40, 60, 6]
Space.Log(vector + vectorOther);
Adds a float to each axis of this, and returns the result
Space.Log(vectorB.Add(5));
Multiplies another vector to this, and returns the result
local vectorOther = Vector.New(2, 5, 4);
Space.Log(vector.Scale(vectorOther));
-- prints [0, 50, 0]
Space.Log(vector * vectorOther);
Multiplies a float to each axis of this, and returns the result
Space.Log(vector.Scale(5));
-- prints [0, 50, 0]
Space.Log(vector * 5);
Divides another vector to this, and returns the result
local vectorOther = Vector.New(2, 2, 2);
Space.Log(vector.Divide(vectorOther));
-- prints [5, 5, 5]
Space.Log(vector / vectorOther);
Divides a float to each axis of this, and returns the result
Space.Log(vector.Divide(2));
-- prints [5, 5, 5]
Space.Log(vector / 2);
Returns the magnitude of this vector
Returns the normalised version of this vector
Returns the distance between this vector and other in meters
Returns the square of the distance between this vector and other in meters, considerably faster than distance()
Returns if other is within range meters of this vector, inclusive
local vectorOther = Vector.New(372, 30, 0);
Space.Log(vector.InRange(vectorOther, 2.0));
-- prints True
local vector2 = Vector.New(80, 30, 20);
local vectorOther2 = Vector.New(1, 15, 25);
Space.Log(vector2.InRange(vectorOther2, 1.0));
Returns the cross product of this vector and other
Linear interpolates between this and other based on factor t (0..1)
Spherically linear interpolates between this and other based on factor t (0..1)
Moves this vector closer to other by a maximum of maxDistance units
Returns the dot product between this and other (note - normalise your vectors first!)
Equivalent of new SVector(0,1,0)
Equivalent of new SVector(0,-1,0)
Equivalent of new SVector(-1,0,0)
Equivalent of new SVector(1,0,0)
Equivalent of new SVector(0,0,1)
Equivalent of new SVector(0,0,-1)
Equivalent of new SVector(0,0,0)
Equivalent of new SVector(1,1,1)
Contains the largest possible negative vector
Contains the largest possible vector
|