Vector4i

Un vector 4D que utiliza coordenadas enteras.

Descripción

Estructura de 4 elementos que puede ser usada para representar coordenadas de cuadrícula 4D o cualquier otro cuarteto de enteros.

Utiliza coordenadas enteras y por lo tanto es preferible a Vector4 cuando se requiere precisión exacta. Ten en cuenta que los valores están limitados a 32 bits, y a diferencia de Vector4 esto no se puede configurar con una opción de compilación del motor. Usa int o PackedInt64Array si se necesitan valores de 64 bits.

Nota: En un contexto booleano, un Vector4i evaluará a false si es igual a Vector4i(0, 0, 0, 0). De lo contrario, un Vector4i siempre evaluará a true.

Propiedades

int

w

0

int

x

0

int

y

0

int

z

0

Constructores

Vector4i

Vector4i()

Vector4i

Vector4i(from: Vector4i)

Vector4i

Vector4i(from: Vector4)

Vector4i

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

Métodos

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

Operadores

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


Enumeraciones

enum Axis: 🔗

Axis AXIS_X = 0

Valor enumerado para el eje X. Devuelto por max_axis_index() y min_axis_index().

Axis AXIS_Y = 1

Valor enumerado para el eje Y. Devuelto por max_axis_index() y min_axis_index().

Axis AXIS_Z = 2

Valor enumerado para el eje Z. Devuelto por max_axis_index() y min_axis_index().

Axis AXIS_W = 3

Valor enumerado para el eje W. Devuelto por max_axis_index() y min_axis_index().


Constantes

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

Vector cero, un vector con todos los componentes ajustados a 0.

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

Un vector, un vector con todos los componentes ajustados a 1.

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

Vector mínimo, un vector con todos los componentes iguales a INT32_MIN. Se puede utilizar como un entero negativo equivalente a Vector4.INF.

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

Vector máximo, un vector con todos los componentes iguales a INT32_MAX. Se puede usar como un equivalente entero de Vector4.INF.


Descripciones de Propiedades

int w = 0 🔗

El componente W del vector. También se puede acceder utilizando la posición del índice [3].


int x = 0 🔗

El componente X del vector. También se puede acceder utilizando la posición del índice [0].


int y = 0 🔗

El componente Y del vector. También se puede acceder usando la posición del índice [1].


int z = 0 🔗

El componente Z del vector. También se puede acceder usando la posición del índice [2].


Descripciones de Constructores

Vector4i Vector4i() 🔗

Construye un Vector4i inicializado por defecto con todos los componentes a 0.


Vector4i Vector4i(from: Vector4i)

Construye un Vector4i a partir del Vector4i dado.


Vector4i Vector4i(from: Vector4)

Construye un nuevo Vector4i a partir del Vector4 dado truncando las fracciones de los componentes (redondeando hacia cero). Para un comportamiento diferente, considera pasar el resultado de Vector4.ceil(), Vector4.floor() o Vector4.round() a este constructor.


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

Devuelve un Vector4i con los componentes dados.


Descripciones de Métodos

Vector4i abs() const 🔗

Devuelve un nuevo vector con todos los componentes en valores absolutos (es decir, positivos).


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

Devuelve un nuevo vector con todos los componentes limitados entre los componentes de min y max, ejecutando @GlobalScope.clamp() en cada componente.


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

Devuelve un nuevo vector con todos los componentes restringidos entre min y max, ejecutando @GlobalScope.clamp() en cada componente.


int distance_squared_to(to: Vector4i) const 🔗

Devuelve la distancia al cuadrado entre este vector y to.

Este método se ejecuta más rápido que distance_to(), así que es preferible si necesitas comparar vectores o necesitas la distancia al cuadrado para alguna fórmula.


float distance_to(to: Vector4i) const 🔗

Devuelve la distancia entre este vector y to.


float length() const 🔗

Devuelve la longitud (magnitud) de este vector.


int length_squared() const 🔗

Devuelve la longitud cuadrada (magnitud cuadrada) de este vector.

Este método funciona más rápido que el length(), por lo que es preferible si necesitas comparar vectores o necesitas la distancia al cuadrado para alguna fórmula.


Vector4i max(with: Vector4i) const 🔗

Devuelve el máximo por componente de este y 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 🔗

Devuelve el eje del valor más alto del vector. Consulta las constantes AXIS_*. Si todos los componentes son iguales, este método devuelve AXIS_X.


Vector4i maxi(with: int) const 🔗

Devuelve el máximo por componente de este y with, equivalente a Vector4i(maxi(x, with), maxi(y, with), maxi(z, with), maxi(w, with)).


Vector4i min(with: Vector4i) const 🔗

Devuelve el mínimo componente por componente de este y 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 🔗

Devuelve el eje del valor más bajo del vector. Ver las constantes AXIS_*. Si todos los componentes son iguales, este método devuelve AXIS_W.


Vector4i mini(with: int) const 🔗

Devuelve el mínimo componente por componente de este y with, equivalente a Vector4i(mini(x, with), mini(y, with), mini(z, with), mini(w, with)).


Vector4i sign() const 🔗

Devuelve un nuevo vector con cada componente establecido en 1 si es positivo, -1 si es negativo y 0 si es cero. El resultado es idéntico a llamar a @GlobalScope.sign() en cada componente.


Vector4i snapped(step: Vector4i) const 🔗

Devuelve un nuevo vector con cada componente ajustado al múltiplo más cercano del componente correspondiente en step.


Vector4i snappedi(step: int) const 🔗

Devuelve un nuevo vector con cada componente ajustado al múltiplo más cercano de step.


Descripciones de Operadores

bool operator !=(right: Vector4i) 🔗

Devuelve true si los vectores no son iguales.


Vector4i operator %(right: Vector4i) 🔗

Obtiene el resto de cada componente del Vector4i con los componentes del Vector4i dado. Esta operación usa división truncada, que a menudo no es deseada ya que no funciona bien con números negativos. Considera usar @GlobalScope.posmod() en su lugar si quieres manejar números negativos.

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

Vector4i operator %(right: int) 🔗

Obtiene el resto de cada componente del Vector4i con el int dado. Esta operación usa división truncada, que a menudo no es deseada ya que no funciona bien con números negativos. Considera usar @GlobalScope.posmod() en su lugar si quieres manejar números negativos.

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

Vector4i operator *(right: Vector4i) 🔗

Multiplica cada componente de Vector4i por los componentes de Vector4i dado.

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

Vector4 operator *(right: float) 🔗

Multiplica cada componente de Vector4i por el float dado.

Devuelve un valor de Vector4 debido a operaciones de punto flotante.

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

Vector4i operator *(right: int) 🔗

Multiplica cada componente del Vector4i por el int dado.


Vector4i operator +(right: Vector4i) 🔗

Suma cada componente del Vector4i con los componentes del Vector4i dado.

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

Vector4i operator -(right: Vector4i) 🔗

Resta cada componente del Vector4i por los componentes del Vector4i dado.

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

Vector4i operator /(right: Vector4i) 🔗

Divide cada componente del Vector4i por los componentes del Vector4i dado.

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

Vector4 operator /(right: float) 🔗

Divide cada componente del Vector4i por el float dado.

Devuelve un valor Vector4 debido a las operaciones de punto flotante.

print(Vector4i(10, 20, 30, 40) / 2) # Imprime (5.0, 10.0, 15.0, 20.0)

Vector4i operator /(right: int) 🔗

Divide cada componente del Vector4i por el int dado.


bool operator <(right: Vector4i) 🔗

Compara dos vectores Vector4i comprobando primero si el valor X del vector izquierdo es menor que el valor X del vector right. Si los valores X son exactamente iguales, repite esta comprobación con los valores Y de los dos vectores, los valores Z de los dos vectores y, a continuación, con los valores W. Este operador es útil para ordenar vectores.


bool operator <=(right: Vector4i) 🔗

Compara dos vectores Vector4i comprobando primero si el valor X del vector izquierdo es menor o igual que el valor X del vector right. Si los valores X son exactamente iguales, repite esta comprobación con los valores Y de los dos vectores, los valores Z de los dos vectores y, a continuación, con los valores W. Este operador es útil para ordenar vectores.


bool operator ==(right: Vector4i) 🔗

Devuelve true si los vectores son exactamente iguales.


bool operator >(right: Vector4i) 🔗

Compara dos vectores Vector4i comprobando primero si el valor X del vector izquierdo es mayor que el valor X del vector right. Si los valores X son exactamente iguales, repite esta comprobación con los valores Y de los dos vectores, los valores Z de los dos vectores y, a continuación, con los valores W. Este operador es útil para ordenar vectores.


bool operator >=(right: Vector4i) 🔗

Compara dos vectores Vector4i comprobando primero si el valor X del vector izquierdo es mayor o igual que el valor X del vector right. Si los valores X son exactamente iguales, repite esta comprobación con los valores Y de los dos vectores, los valores Z de los dos vectores y, a continuación, con los valores W. Este operador es útil para ordenar vectores.


int operator [](index: int) 🔗

Accede a los componentes del vector usando su index. v[0] es equivalente a v.x, v[1] es equivalente a v.y, v[2] es equivalente a v.z, y v[3] es equivalente a v.w.


Vector4i operator unary+() 🔗

Devuelve el mismo valor como si el + no estuviera ahí. El + unario no hace nada, pero a veces puede hacer que tu código sea más legible.


Vector4i operator unary-() 🔗

Devuelve el valor negativo del Vector4i. Esto es lo mismo que escribir Vector4i(-v.x, -v.y, -v.z, -v.w). Esta operación invierte la dirección del vector manteniendo la misma magnitud.