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 vettore 4D che utilizza coordinate intere.

Descrizione

Una struttura a 4 elementi che può essere utilizzata per rappresentare coordinate di griglia 4D o qualsiasi altro insieme di 4 numeri interi.

Utilizza coordinate intere ed è quindi preferibile a Vector4 quando è necessaria una precisione esatta. Nota che i valori sono limitati a 32 bit e, a differenza di Vector4, questo non può essere configurato con un'opzione di build del motore. Utilizza int o PackedInt64Array se sono necessari valori a 64 bit.

Nota: In un contesto booleano, un Vector4i sarà valutato come false se è uguale a Vector4i(0, 0). Altrimenti, un Vector4i sarà sempre valutato come true.

Proprietà

int

w

0

int

x

0

int

y

0

int

z

0

Costruttori

Vector4i

Vector4i()

Vector4i

Vector4i(from: Vector4i)

Vector4i

Vector4i(from: Vector4)

Vector4i

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

Metodi

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

Operatori

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-()


Enumerazioni

enum Axis: 🔗

Axis AXIS_X = 0

Valore enumerato per l'asse X. Restituito da max_axis_index() e min_axis_index().

Axis AXIS_Y = 1

Valore enumerato per l'asse Y. Restituito da max_axis_index() e min_axis_index().

Axis AXIS_Z = 2

Valore enumerato per l'asse Z. Restituito da max_axis_index() e min_axis_index().

Axis AXIS_W = 3

Valore enumerato per l'asse W. Restituito da max_axis_index() e min_axis_index().


Costanti

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

Il vettore zero, un vettore con tutti i suoi componenti impostati su 0.

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

Il vettore unitario, un vettore con tutti i suoi componenti impostati su 1.

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

Il vettore minimo, un vettore con tutti i componenti uguali a INT32_MIN. Può essere utilizzato come equivalente negativo di Vector4.INF per gli interi.

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

Il vettore massimo, un vettore con tutti i componenti uguali a INT32_MAX. Può essere utilizzato come equivalente di Vector4.INF per gli interi.


Descrizioni delle proprietà

int w = 0 🔗

Il componente W del vettore. Accessibile anche tramite la posizione di indice [3].


int x = 0 🔗

Il componente X del vettore. Accessibile anche tramite la posizione di indice [0].


int y = 0 🔗

Il componente Y del vettore. Accessibile anche tramite la posizione di indice [1].


int z = 0 🔗

Il componente Z del vettore. Accessibile anche tramite la posizione di indice [2].


Descrizioni dei costruttori

Vector4i Vector4i() 🔗

Costruisce un Vector4i predefinito con tutti i componenti impostati su 0.


Vector4i Vector4i(from: Vector4i)

Costruisce un Vector4i come copia del Vector4i specificato.


Vector4i Vector4i(from: Vector4)

Costruisce un nuovo Vector4i dal Vector4 fornito, troncando le parti frazionarie dei componenti (arrotondando verso zero). Per un comportamento diverso, considera di passare il risultato di Vector4.ceil(), Vector4.floor() o Vector4.round() a questo costruttore.


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

Restituisce un Vector4i con i componenti forniti.


Descrizioni dei metodi

Vector4i abs() const 🔗

Restituisce un nuovo vettore con tutti i componenti in valori assoluti (ovvero positivi).


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

Restituisce un nuovo vettore con tutti i suoi componenti limitati tra i componenti di min e max, eseguendo @GlobalScope.clamp() su ciascun componente.


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

Restituisce un nuovo vettore con tutti i suoi componenti limitati tra min e max, eseguendo @GlobalScope.clamp() su ciascun componente.


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 🔗

Restituisce la lunghezza (magnitudine) di questo vettore.


int length_squared() const 🔗

Restituisce la lunghezza (magnitudine) al quadrato di questo vettore.

Questo metodo è più veloce di length(), quindi è preferibile se è necessario confrontare vettori o se è necessaria la distanza al quadrato per una formula.


Vector4i max(with: Vector4i) const 🔗

Restituisce il massimo, componente per componente, di questo vettore e with, equivalente a Vector4i(maxi(x, with.x), maxi(y, with.y), maxi(z, with.z), maxi(w, with.w)).


int max_axis_index() const 🔗

Restituisce l'asse del valore più alto del vettore. Vedi le costanti AXIS_*. Se tutti i componenti sono uguali, questo metodo restituisce AXIS_X.


Vector4i maxi(with: int) const 🔗

Restituisce il massimo, componente per componente, di questo vettore e with, equivalente a Vector4i(maxi(x, with), maxi(y, with), maxi(z, with), maxi(w, with)).


Vector4i min(with: Vector4i) const 🔗

Restituisce il minimo, componente per componente, di questo vettore e with, equivalente a Vector4i(mini(x, with.x), mini(y, with.y), mini(z, with.z), mini(w, with.w)).


int min_axis_index() const 🔗

Restituisce l'asse del valore più basso del vettore. Vedi le costanti AXIS_*. Se tutti i componenti sono uguali, questo metodo restituisce AXIS_W.


Vector4i mini(with: int) const 🔗

Restituisce il minimo, componente per componente, di questo vettore e with, equivalente a Vector4i(mini(x, with), mini(y, with), mini(z, with), mini(w, with)).


Vector4i sign() const 🔗

Restituisce un nuovo vettore con ogni componente impostato su 1 se è positivo, -1 se è negativo e 0 se è zero. Il risultato è identico alla chiamata di @GlobalScope.sign() su ogni componente.


Vector4i snapped(step: Vector4i) const 🔗

Restituisce un nuovo vettore con ogni componente arrotondato al multiplo più vicino del componente corrispondente in step.


Vector4i snappedi(step: int) const 🔗

Restituisce un nuovo vettore con ogni componente arrotondato al multiplo più vicino di step.


Descrizioni degli operatori

bool operator !=(right: Vector4i) 🔗

Restituisce true se i vettori non sono uguali.


Vector4i operator %(right: Vector4i) 🔗

Ottiene il resto di ogni componente di Vector4i con i componenti del Vector4i fornito. Questa operazione usa la divisione troncata, che spesso non è desiderata in quanto non funziona bene con i numeri negativi. Considera di usare @GlobalScope.posmod() se vuoi gestire i numeri negativi.

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

Vector4i operator %(right: int) 🔗

Ottiene il resto di ogni componente di Vector4i con l'int fornito. Questa operazione usa la divisione troncata, che spesso non è desiderata in quanto non funziona bene con i numeri negativi. Considera di usare @GlobalScope.posmod() se vuoi gestire i numeri negativi.

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

Vector4i operator *(right: Vector4i) 🔗

Moltiplica ogni componente del Vector4i per i componenti del Vector4i fornito.

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

Vector4 operator *(right: float) 🔗

Moltiplica ogni componente del Vector4i per il float fornito.

Restituisce un Vector4 a causa di operazioni in virgola mobile.

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

Vector4i operator *(right: int) 🔗

Moltiplica ogni componente del Vector4i per l'int fornito.


Vector4i operator +(right: Vector4i) 🔗

Aggiunge ogni componente del Vector4i con i componenti del Vector4i fornito.

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

Vector4i operator -(right: Vector4i) 🔗

Sottrae ogni componente del Vector4i dai componenti del Vector4i fornito.

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

Vector4i operator /(right: Vector4i) 🔗

Divide ogni componente del Vector4i per i componenti del Vector4i fornito.

print(Vector4i(10, 20, 30, 40) / Vector4i(2, 5, 3, 4)) # Stampa (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) 🔗

Divide ogni componente del Vector4i per l'int fornito.


bool operator <(right: Vector4i) 🔗

Confronta due vettori Vector4i verificando prima se il valore X del vettore di sinistra è minore del valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori, i valori Z dei due vettori e poi con i valori W. Questo operatore è utile per ordinare i vettori.


bool operator <=(right: Vector4i) 🔗

Confronta due vettori Vector4i verificando prima se il valore X del vettore di sinistra è minore o uguale al valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori, i valori Z dei due vettori e poi con i valori W. Questo operatore è utile per ordinare i vettori.


bool operator ==(right: Vector4i) 🔗

Restituisce true se i vettori sono esattamente uguali.


bool operator >(right: Vector4i) 🔗

Confronta due vettori Vector4i verificando prima se il valore X del vettore di sinistra è maggiore del valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori, i valori Z dei due vettori e poi con i valori W. Questo operatore è utile per ordinare i vettori.


bool operator >=(right: Vector4i) 🔗

Confronta due vettori Vector4i verificando prima se il valore X del vettore di sinistra è maggiore o uguale al valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori, i valori Z dei due vettori e poi con i valori W. Questo operatore è utile per ordinare i vettori.


int operator [](index: int) 🔗

Accede ai componenti del vettore attraverso il loro indice (index). v[0] è equivalente a v.x, v[1] è equivalente a v.y, v[2] è equivalente a v.z, v[3] è equivalente a v.w.


Vector4i operator unary+() 🔗

Restituisce lo stesso valore come se + non ci fosse. Il + unario non fa nulla, ma a volte può rendere il tuo codice più leggibile.


Vector4i operator unary-() 🔗

Restituisce il valore negativo del Vector4i. Equivale a scrivere Vector4(-v.x, -v.y, -v.z, -v.w). Questa operazione inverte la direzione del vettore mantenendo la stessa magnitudine.