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 🔗

Restituisce la distanza al quadrato tra questo vettore e to.

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


float distance_to(to: Vector4i) const 🔗

Restituisce la distanza tra questo vettore e 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) 🔗

Divide 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 (5.0, 10.0, 15.0, 20.0)

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.