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
|
||
|
||
|
||
|
Constructores
Vector4i() |
|
Métodos
abs() const |
|
distance_squared_to(to: Vector4i) const |
|
distance_to(to: Vector4i) const |
|
length() const |
|
length_squared() const |
|
max_axis_index() const |
|
min_axis_index() const |
|
sign() const |
|
Operadores
operator !=(right: Vector4i) |
|
operator %(right: Vector4i) |
|
operator %(right: int) |
|
operator *(right: Vector4i) |
|
operator *(right: float) |
|
operator *(right: int) |
|
operator +(right: Vector4i) |
|
operator -(right: Vector4i) |
|
operator /(right: Vector4i) |
|
operator /(right: float) |
|
operator /(right: int) |
|
operator <(right: Vector4i) |
|
operator <=(right: Vector4i) |
|
operator ==(right: Vector4i) |
|
operator >(right: Vector4i) |
|
operator >=(right: Vector4i) |
|
operator [](index: int) |
|
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
El componente W del vector. También se puede acceder utilizando la posición del índice [3].
El componente X del vector. También se puede acceder utilizando la posición del índice [0].
El componente Y del vector. También se puede acceder usando la posición del índice [1].
El componente Z del vector. También se puede acceder usando la posición del índice [2].
Descripciones de Constructores
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
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.
Devuelve la longitud (magnitud) de este vector.
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)).
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)).
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)).
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.
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.
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.
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.