Vector3
Element category: Vector
Represents a 3D Vector. Used for storing and manipulating three-dimensional coordinates (x, y, z).
OOP-Only Methods
create
Default constructor for the Vector3 class. Returns a Vector3 object.
Vector3(mixed vectorOrX[, float y, float z])
- vectorOrX:
float | table | vector3
– Vector3, table, or floats indicating vector's coordinates - y:
float
– If vectorOrX is a float, this is the Y coordinate - z:
float
– If vectorOrX is a float, this is the Z coordinate
cross
Calculates the cross product of two vectors. The result is a vector orthogonal to both.
vector3 Vector3:cross ( vector3 vector )
- vector:
Vector3
– Vector to calculate the cross product with.
dot
Calculates the dot (scalar) product of two vectors.
float Vector3:dot ( vector3 vector )
- vector:
Vector3
– Vector to calculate the dot product with.
getX
Returns the X component of the vector.
float Vector3:getX ( )
setX
Sets the X component of the vector.
void Vector3:setX ( float x )
- x:
float
– The new X value.
getY
Returns the Y component of the vector.
float Vector3:getY ( )
setY
Sets the Y component of the vector.
void Vector3:setY ( float y )
- y:
float
– The new Y value.
getZ
Returns the Z component of the vector.
float Vector3:getZ ( )
setZ
Sets the Z component of the vector.
void Vector3:setZ ( float z )
- z:
float
– The new Z value.
normalize
Normalizes the vector to a unit vector (length of 1). Modifies the original vector.
bool Vector3:normalize ( )
getNormalized
Returns a normalized version of the vector without modifying the original.
vector3 Vector3:getNormalized ( )
getLength
Returns the length (magnitude) of the vector.
float Vector3:getLength ( )
getSquaredLength
Returns the squared length of the vector (useful to avoid square root operations).
float Vector3:getSquaredLength ( )
intersectsSegmentTriangle
Determines if a line segment intersects with a triangle.
vector3 Vector3:intersectsSegmentTriangle ( vector3 segmentDir, vector3 triVert0, vector3 triVert1, vector3 triVert2 )
- segmentDir:
Vector3
– The direction vector of the segment. - triVert0:
Vector3
– First vertex of the triangle. - triVert1:
Vector3
– Second vertex of the triangle. - triVert2:
Vector3
– Third vertex of the triangle.
intersectsSegmentTriangle (static)
Static version of the segment-triangle intersection method.
vector3 Vector3.intersectsSegmentTriangle ( vector3 origin, vector3 segmentDir, vector3 triVert0, vector3 triVert1, vector3 triVert2 )
- origin:
Vector3
– Origin point of the segment. - segmentDir:
Vector3
– Direction of the segment. - triVert0:
Vector3
– First triangle vertex. - triVert1:
Vector3
– Second triangle vertex. - triVert2:
Vector3
– Third triangle vertex.
Code Examples
This example sorts all players in a nice line on the center of the map.
local players = getElementsByType("player")local newPlayerPosition = Vector3(-#players - 1, 0, 10) -- Initialize the position vector for the first player in the listfor _, player in ipairs(players) do -- Move each player 1 unit forward in X from the previous one newPlayerPosition.x = newPlayerPosition.x + 1 setElementPosition(player, newPlayerPosition)end