Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Vector4i

Un vecteur 4D utilisant des coordonnés entières.

Description

Une structure de 4 éléments qui peut être utilisée pour représenter des coordonnées de grille 4D ou tout autre quadruplet d'entiers.

Elle utilise des coordonnées entières et elle est donc préférable à Vector4 quand une précision exacte est nécessaire. Par défaut, ces valeurs sont limitées à 32 bits, et contrairement à Vector4, elle ne peut être configurée avec une option de compilation du moteur. Utilisez int ou PackedInt64Array si des valeurs 64 bits sont nécessaires.

Note : Avec des booléens, un Vector4i sera évalué à false s'il est égal à Vector4i(0, 0, 0,0). Sinon, un Vector4i sera toujours évalué à true.

Propriétés

int

w

0

int

x

0

int

y

0

int

z

0

Constructeurs

Vector4i

Vector4i()

Vector4i

Vector4i(from: Vector4i)

Vector4i

Vector4i(from: Vector4)

Vector4i

Vector4i(x: int, y: int, z: int, w: int)

Méthodes

Vector4i

abs() const

Vector4i

clamp(min: Vector4i, max: Vector4i) const

Vector4i

clampi(min: int, max: int) const

int

distance_squared_to(to: Vector4i) const

float

distance_to(to: Vector4i) const

float

length() const

int

length_squared() const

Vector4i

max(with: Vector4i) const

int

max_axis_index() const

Vector4i

maxi(with: int) const

Vector4i

min(with: Vector4i) const

int

min_axis_index() const

Vector4i

mini(with: int) const

Vector4i

sign() const

Vector4i

snapped(step: Vector4i) const

Vector4i

snappedi(step: int) const

Opérateurs

bool

operator !=(right: Vector4i)

Vector4i

operator %(right: Vector4i)

Vector4i

operator %(right: int)

Vector4i

operator *(right: Vector4i)

Vector4

operator *(right: float)

Vector4i

operator *(right: int)

Vector4i

operator +(right: Vector4i)

Vector4i

operator -(right: Vector4i)

Vector4i

operator /(right: Vector4i)

Vector4

operator /(right: float)

Vector4i

operator /(right: int)

bool

operator <(right: Vector4i)

bool

operator <=(right: Vector4i)

bool

operator ==(right: Vector4i)

bool

operator >(right: Vector4i)

bool

operator >=(right: Vector4i)

int

operator [](index: int)

Vector4i

operator unary+()

Vector4i

operator unary-()


Énumérations

enum Axis: 🔗

Axis AXIS_X = 0

La valeur de l'énumération pour l'axe X. Renvoyé par max_axis_index() et min_axis_index().

Axis AXIS_Y = 1

La valeur de l'énumération pour l'axe Y. Retourné par max_axis_index() et min_axis_index().

Axis AXIS_Z = 2

La valeur de l'énumération pour l'axe Z. Renvoyé par max_axis_index() et min_axis_index().

Axis AXIS_W = 3

La valeur de l'énumération pour l'axe W. Renvoyé par max_axis_index() et min_axis_index().


Constantes

ZERO = Vector4i(0, 0, 0, 0) 🔗

Le vecteur zéro, un vecteur avec tous ses composants définis 0.

ONE = Vector4i(1, 1, 1, 1) 🔗

Le vecteur unitaire, un vecteur avec tous ses composants définis à 1.

MIN = Vector4i(-2147483648, -2147483648, -2147483648, -2147483648) 🔗

Vecteur minimum, un vecteur avec toutes ses composantes égales à INT32_MIN. Peut être utilisé comme un équivalent entier négatif de Vector4.INF.

MAX = Vector4i(2147483647, 2147483647, 2147483647, 2147483647) 🔗

Vecteur maximum, un vecteur avec toutes ses composantes égales à INT32_MAX. Peut être utilisé comme un équivalent entier de Vector4.INF.


Descriptions des propriétés

int w = 0 🔗

La composante W du vecteur. Aussi accessible en utilisant la position d'index [3].


int x = 0 🔗

La composante vectorielle X. Également accessible en utilisant le code de position index [0].


int y = 0 🔗

La composante vectorielle X. Également accessible en utilisant le code de position index [1].


int z = 0 🔗

Le composant vectoriel Z. Également accessible en utilisant l'index [2].


Descriptions des constructeurs

Vector4i Vector4i() 🔗

Construit un Vector4i initialisé par défaut, avec toutes ses composantes définies à 0.


Vector4i Vector4i(from: Vector4i)

Construit un Vector4i comme copie du Vector4i donné.


Vector4i Vector4i(from: Vector4)

Construit un nouveau Vector4i depuis le Vector4 donné en tronquant les parties fractionnelles des composantes (arrondissant vers 0). Pour un comportement différent, envisagez de passer le résultat de Vector4.ceil(), Vector4.floor() ou Vector4.round() à ce constructeur à la place.


Vector4i Vector4i(x: int, y: int, z: int, w: int)

Renvoie un Vector4i avec les coordonnées spécifiées.


Descriptions des méthodes

Vector4i abs() const 🔗

Renvoie un nouveau vecteur avec tous ses composantes en valeurs absolues (c'est-à-dire toujours positives).


Vector4i clamp(min: Vector4i, max: Vector4i) const 🔗

Renvoie un nouveau vecteur avec toutes les composantes bornées entre les composantes de min et max, en exécutant @GlobalScope.clamp() sur chaque composante.


Vector4i clampi(min: int, max: int) const 🔗

Renvoie un nouveau vecteur avec toutes les composantes bornées entre min et max, en exécutant @GlobalScope.clamp() sur chaque composante.


int distance_squared_to(to: Vector4i) const 🔗

Returns the squared Euclidean distance between this vector and to.

This method runs faster than distance_to(), so prefer it if you need to compare vectors or need the squared distance for some formula.


float distance_to(to: Vector4i) const 🔗

Returns the Euclidean distance between this vector and to.


float length() const 🔗

Renvoie la longueur (magnitude) de ce vecteur.


int length_squared() const 🔗

Renvoie la longeur (magnitude) au carré de ce vecteur.

Cette méthode est plus rapide que length() donc préférez-le si vous devez comparer des vecteurs ou avoir besoin de la distance carrée pour certaines formules.


Vector4i max(with: Vector4i) const 🔗

Renvoie le maximum par composante de ceci et with, équivalent à Vector4i(maxf(x, with.x), maxf(y, with.y), maxf(z, with.z), maxf(w,with.w)).


int max_axis_index() const 🔗

Renvoie l'axe de la valeur la plus importante du vecteur. Voir les constantesAXIS_*. Si tous les composants sont égaux, cette méthode renvoie AXIS_X.


Vector4i maxi(with: int) const 🔗

Renvoie le maximum par composante de ceci et with, équivalent à Vector4i(maxf(x, with), maxf(y, with), maxf(z, with), maxf(w,with)).


Vector4i min(with: Vector4i) const 🔗

Renvoie le minimum par composante de ceci et with, équivalent à Vector4i(mini(x, with.x), mini(y, with.y),mini(z,with.z),mini(w,with.w)).


int min_axis_index() const 🔗

Renvoie l'axe de la valeur la moins importante du vecteur. Voir les constantes AXIS_*. Si tous les composantes sont égales, cette méthode renvoie AXIS_W.


Vector4i mini(with: int) const 🔗

Renvoie le minimum par composante de ceci et with, équivalent à Vector4i(mini(x, with), mini(y, with),mini(z,with),mini(w,with)).


Vector4i sign() const 🔗

Renvoie un nouveau vecteur avec chaque composante définie à 1 si elle est positive, -1 si elle est négative, et 0 si elle est nulle. Le résultat est identique à celui d'appeler @GlobalScope.sign() sur chaque composante.


Vector4i snapped(step: Vector4i) const 🔗

Renvoie un nouveau vecteur avec chaque composante arrondie au multiple le plus proche de la composante correspondante dans step.


Vector4i snappedi(step: int) const 🔗

Renvoie un nouveau vecteur avec chaque composante arrondie au multiple le plus proche de step.


Descriptions des opérateurs

bool operator !=(right: Vector4i) 🔗

Renvoie true si les vecteurs ne sont pas égaux.


Vector4i operator %(right: Vector4i) 🔗

Obtient le reste de la division euclidienne de chaque composante du Vector4i avec les composantes du Vector4i donné. Cette opération utilise une division tronquée, ce qui n'est souvent pas souhaité car elle ne fonctionne pas bien avec des nombres négatifs. Considérez d'utiliser @GlobalScope.posmod() plutôt si vous voulez gérer les nombres négatifs.

print(Vector4i(10, -20, 30, -40) % Vector4i(7, 8, 9, 10) # Affiche (3, -4, 3, 0)

Vector4i operator %(right: int) 🔗

Obtient le reste de la division euclidienne de chaque composante du Vector4i avec l'entier int donné. Cette opération utilise une division tronquée, ce qui n'est souvent pas souhaité car elle ne fonctionne pas bien avec des nombres négatifs. Considérez d'utiliser @GlobalScope.posmod() plutôt si vous voulez gérer les nombres négatifs.

print(Vector4i(10, -20, 30, -40) % 7) # Affiche (3, -6, 2, -5)

Vector4i operator *(right: Vector4i) 🔗

Multiplie chaque composante du Vector4i par les composantes du Vector4i donné.

print(Vector4i(10, 20, 30, 40) * Vector4i(3, 4, 5, 6)) # Affiche (30, 80, 150, 240)

Vector4 operator *(right: float) 🔗

Multiplie chaque composante du Vector4i par le flottant float donné.

Renvoie une valeur Vector4 à cause des opérations de virgule flottante.

print(Vector4i(10, 20, 30, 40) * 2) # Affiche (20.0, 40.0, 60.0, 80.0)

Vector4i operator *(right: int) 🔗

Multiplie chaque composante du Vector4i par l'entier int donné.


Vector4i operator +(right: Vector4i) 🔗

Ajoute chaque composante du Vector4i aux composantes du Vector4i donné.

print(Vector4i(10, 20, 30, 40) + Vector4i(3, 4, 5, 6)) # Affiche (13, 24, 35, 46)

Vector4i operator -(right: Vector4i) 🔗

Soustrait chaque composant du Vector4i par les composantes du Vector4i donné.

print(Vector4i(10, 20, 30, 40) - Vector4i(3, 4, 5, 6)) # Affiche (7, 16, 25, 34)

Vector4i operator /(right: Vector4i) 🔗

Divise chaque composante du Vector4i par les composantes du Vector4i donné.

print(Vector4i(10, 20, 30, 40) / Vector4i(2, 5, 3, 4)) # Affiche (5, 4, 10, 10)

Vector4 operator /(right: float) 🔗

Divides each component of the Vector4i by the given float.

Returns a Vector4 value due to floating-point operations.

print(Vector4i(1, 2, 3, 4) / 2.5) # Prints (0.4, 0.8, 1.2, 1.6)

Vector4i operator /(right: int) 🔗

Divise chaque composante du Vector4i par l'entier int donné.


bool operator <(right: Vector4i) 🔗

Compare deux Vector4i en vérifiant en premier si la valeur en X du vecteur de gauche est inférieure à la valeur en X du vecteur right. Si les deux valeurs en X sont exactement égales, alors il répète la vérification sur les valeurs en Y des deux vecteurs, sur les valeurs en Z des deux vecteurs, puis sur les valeurs en W. Cet opérateur est utile pour trier des vecteurs.


bool operator <=(right: Vector4i) 🔗

Compare deux Vector4i en vérifiant en premier si la valeur en X du vecteur de gauche est inférieure ou égale à la valeur en X du vecteur right. Si les deux valeurs en X sont exactement égales, alors il répète la vérification sur les valeurs en Y des deux vecteurs, sur les valeurs en Z des deux vecteurs, puis sur les valeurs en W. Cet opérateur est utile pour trier des vecteurs.


bool operator ==(right: Vector4i) 🔗

Renvoie true si les vecteurs sont exactement égaux.


bool operator >(right: Vector4i) 🔗

Compare deux Vector4i en vérifiant en premier si la valeur en X du vecteur de gauche est supérieure à la valeur en X du vecteur right. Si les deux valeurs en X sont exactement égales, alors il répète la vérification sur les valeurs en Y des deux vecteurs, sur les valeurs en Z des deux vecteurs, puis sur les valeurs en W. Cet opérateur est utile pour trier des vecteurs.


bool operator >=(right: Vector4i) 🔗

Compare deux Vector4i en vérifiant en premier si la valeur en X du vecteur de gauche est supérieure ou égale à la valeur en X du vecteur right. Si les deux valeurs en X sont exactement égales, alors il répète la vérification sur les valeurs en Y des deux vecteurs, sur les valeurs en Z des deux vecteurs, puis sur les valeurs en W. Cet opérateur est utile pour trier des vecteurs.


int operator [](index: int) 🔗

Accède aux composantes du vecteur par leur index. v[0] est équivalent à v.x, v[1] est équivalent à v.y, v[2] est équivalent à v.z, et v[3] est équivalent à v.w.


Vector4i operator unary+() 🔗

Renvoie la même valeur comme si + n'était pas là. Le + unaire ne fait rien, mais peut parfois rendre votre code plus lisible.


Vector4i operator unary-() 🔗

Renvoie la valeur négative du Vector4i. Revient à écrire Vector4i(-v.x, -v.y,-v.z,-v.w). Cette opération retourne la direction du vecteur tout en gardant la même magnitude.