Passer au contenu principal
Version: latest - a1.148.0 ⚖️

📐 Vector

A Vector composed of components (X, Y, Z) with floating point precision. Used mainly for entity position.


info

Les vecteurs sont compressés en interne et automatiquement, ce qui réduit leur taille dans le réseau jusqu'à 90 %. Des détails intéressants :

  • Les paramètres des vecteurs dans les méthodes des classes sont généralement compressés avec une précision de 1 décimale (avec quelques exceptions où nous avons besoin de plus de précision).
  • Les vecteurs transmis dans les événements distants sont compressés avec une précision de 2 décimales. If you need more precision, we recommend passing them as raw number instead.

🎒 Examples

local new_vector = Vector(1452.5, 512, 943.1)

🛠 Constructors

Default Constructor

No description provided

local my_vector = Vector(X?, Y?, Z?)

Parameters

TypeNameDefaultDescription
numberX0Coordonnée X
numberYXCoordonnée Y
numberZXCoordonnée Z

🧽 Properties

TypeNameDescription
numberXCoordonnée X
numberYCoordonnée Y
numberZCoordonnée Z

🦠 Functions

info

This structure supports +, -, *, /, ^, ==, and tostring operations.

ReturnsNameDescription
booleanEqualsVérifie l'égalité avec un autre vecteur, dans les limites d'erreur spécifiées
numberDistanceDistance entre deux points
numberDistanceSquaredDistance au carré entre deux points
VectorGetUnsafeNormalCalcule la version normalisée du vecteur sans vérifier si la longueur est nulle
VectorGetSafeNormalObtient une copie normalisée du vecteur, en vérifiant qu'il est possible de le faire en fonction de la longueur
booleanIsNearEfficiently checks whether vector is near to another vector within a specified radius
booleanIsNearlyZeroVérifie si le vecteur est proche de zéro dans une tolérance spécifiée
booleanIsZeroVérifie si tous les composants du vecteur sont exactement égales à zéro
booleanNormalizeNormalize this vector in-place if it is larger than a given tolerance. Leaves it unchanged if not
numberSizeObtient la longueur (magnitude) de ce vecteur
numberSizeSquaredObtenir la longueur au carré de ce vecteur
RotatorToOrientationRotatorReturn the Rotator orientation corresponding to the direction in which the vector points
QuatToOrientationQuatReturn the Quaternion orientation corresponding to the direction in which the vector points
numberDotDot product of two vectors
VectorCrossCross product of two vectors

Equals

Check if the vector is equal to another vector, within specified error limits
local ret = my_vector:Equals(other, tolerance?)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter The vector to compare to
numbertolerance?0.000001
The error limits

Returns

TypeDescription
booleanAre the vectors equal or not

Distance

Returns the distance of 2 vectors
local ret = my_vector:Distance(other)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter The vector to get the distance to

Returns

TypeDescription
numberThe distance between the vectors

DistanceSquared

Return the squared distance of 2 vectors
local ret = my_vector:DistanceSquared(other)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter The vector to get the squared distance to

Returns

TypeDescription
numberThe squared distance between the vectors

GetUnsafeNormal

Returns the normalized version of vector without checking for zero length
local ret = my_vector:GetUnsafeNormal()

Returns

TypeDescription
VectorThe unsafe normal

GetSafeNormal

Returns a normalized copy of the vector, checking it is safe to do so based on the length
local ret = my_vector:GetSafeNormal()

Returns

TypeDescription
VectorThe safe normal

IsNear

Efficiently checks whether vector is near to another vector within a specified radius
local ret = my_vector:IsNear(other, radius)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter The vector to compare to
numberradius Required parameter The radius to check

Returns

TypeDescription
booleanIf the vector is near to the other vector

IsNearlyZero

Vérifie si le vecteur est proche de zéro dans une tolérance spécifiée
local ret = my_vector:IsNearlyZero(tolerance?)

Parameters

TypeParameterDefaultDescription
numbertolerance?0.000001
The error limits

Returns

TypeDescription
booleanIf the bool is near to zero

IsZero

Vérifie si tous les composants du vecteur sont exactement égales à zéro
local ret = my_vector:IsZero()

Returns

TypeDescription
booleanIf all components of the vector are exactly zero

Normalize

Normalize this vector in-place if it is larger than a given tolerance. Leaves it unchanged if not
local ret = my_vector:Normalize()

Returns

TypeDescription
booleanIf the vector has been modified

Size

Obtient la longueur (magnitude) de ce vecteur
local ret = my_vector:Size()

Returns

TypeDescription
numberThe length of the vector

SizeSquared

Obtenir la longueur au carré de ce vecteur
local ret = my_vector:SizeSquared()

Returns

TypeDescription
numberThe squared length of the vector

ToOrientationRotator

Return the Rotator orientation corresponding to the direction in which the vector points
local ret = my_vector:ToOrientationRotator()

Returns

TypeDescription
RotatorThe orientation of the vector

ToOrientationQuat

Return the Quaternion orientation corresponding to the direction in which the vector points
local ret = my_vector:ToOrientationQuat()

Returns

TypeDescription
QuatThe orientation of the vector

Dot

Returns the dot product between this vector and another vector
local ret = my_vector:Dot(other)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter The vector to dot with

Returns

TypeDescription
numberthe dot product

Cross

Returns the cross product between this vector and another vector
local ret = my_vector:Cross(other)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter The vector to cross with

Returns

TypeDescription
Vectorthe cross product vector