Vector3i
Un vector 3D que utiliza coordenadas enteras.
Descripción
Una estructura de 3 elementos que puede usarse para representar coordenadas de cuadrícula 3D o cualquier otro triplete de enteros.
Utiliza coordenadas enteras y, por lo tanto, es preferible a Vector3 cuando se requiere precisión exacta. Ten en cuenta que los valores están limitados a 32 bits y, a diferencia de Vector3, esto no se puede configurar con una opción de compilación del motor. Utiliza int o PackedInt64Array si necesitan valores de 64 bits.
Nota: En un contexto booleano, un Vector3i se evaluará como false si es igual a Vector3i(0, 0, 0). De lo contrario, un Vector3i siempre se evaluará como true.
Tutoriales
Propiedades
|
||
|
||
|
Constructores
Vector3i() |
|
Métodos
abs() const |
|
distance_squared_to(to: Vector3i) const |
|
distance_to(to: Vector3i) const |
|
length() const |
|
length_squared() const |
|
max_axis_index() const |
|
min_axis_index() const |
|
sign() const |
|
Operadores
operator !=(right: Vector3i) |
|
operator %(right: Vector3i) |
|
operator %(right: int) |
|
operator *(right: Vector3i) |
|
operator *(right: float) |
|
operator *(right: int) |
|
operator +(right: Vector3i) |
|
operator -(right: Vector3i) |
|
operator /(right: Vector3i) |
|
operator /(right: float) |
|
operator /(right: int) |
|
operator <(right: Vector3i) |
|
operator <=(right: Vector3i) |
|
operator ==(right: Vector3i) |
|
operator >(right: Vector3i) |
|
operator >=(right: Vector3i) |
|
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().
Constantes
ZERO = Vector3i(0, 0, 0) 🔗
Vector cero, un vector con todos los componentes ajustados a 0.
ONE = Vector3i(1, 1, 1) 🔗
Un vector, un vector con todos los componentes ajustados a 1.
MIN = Vector3i(-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 Vector3.INF.
MAX = Vector3i(2147483647, 2147483647, 2147483647) 🔗
Vector máximo, un vector con todos los componentes iguales a INT32_MAX. Se puede utilizar como un entero equivalente a Vector3.INF.
LEFT = Vector3i(-1, 0, 0) 🔗
Vector de la unidad izquierda. Representa la dirección local de la izquierda y la dirección global del oeste.
RIGHT = Vector3i(1, 0, 0) 🔗
Vector de la unidad derecha. Representa la dirección local de la derecha, y la dirección global del este.
UP = Vector3i(0, 1, 0) 🔗
Vector de la unidad superior.
DOWN = Vector3i(0, -1, 0) 🔗
Vector de la unidad inferior.
FORWARD = Vector3i(0, 0, -1) 🔗
Vector de la unidad de adelante. Representa la dirección local de avance, y la dirección global del norte.
BACK = Vector3i(0, 0, 1) 🔗
Vector de la unidad trasera. Representa la dirección local de la espalda, y la dirección global del sur.
Descripciones de Propiedades
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 Vector3i inicializado por defecto con todos los componentes establecidos en 0.
Vector3i Vector3i(from: Vector3i)
Construye un Vector3i como una copia del Vector3i dado.
Vector3i Vector3i(from: Vector3)
Construye un nuevo Vector3i a partir del Vector3 dado truncando las fracciones de los componentes (redondeando hacia cero). Para un comportamiento diferente, considera pasar el resultado de Vector3.ceil(), Vector3.floor() o Vector3.round() a este constructor.
Vector3i Vector3i(x: int, y: int, z: int)
Devuelve un Vector3i con los componentes dados.
Descripciones de Métodos
Devuelve un nuevo vector con todos los componentes en valores absolutos (es decir, positivos).
Vector3i clamp(min: Vector3i, max: Vector3i) const 🔗
Devuelve un nuevo vector con todos los componentes limitados entre los componentes de min y max, ejecutando @GlobalScope.clamp() en cada componente.
Vector3i 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: Vector3i) 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: Vector3i) 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.
Vector3i max(with: Vector3i) const 🔗
Devuelve el máximo por componente de este y with, equivalente a Vector3i(maxi(x, with.x), maxi(y, with.y), maxi(z, with.z)).
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.
Vector3i maxi(with: int) const 🔗
Devuelve el máximo por componente de este y with, equivalente a Vector3i(maxi(x, with), maxi(y, with), maxi(z, with)).
Vector3i min(with: Vector3i) const 🔗
Devuelve el mínimo componente por componente de este y with, equivalente a Vector3i(mini(x, with.x), mini(y, with.y), mini(z, with.z)).
Devuelve el eje del valor más bajo del vector. Consulta las constantes AXIS_*. Si todos los componentes son iguales, este método devuelve la constante AXIS_Z.
Vector3i mini(with: int) const 🔗
Devuelve el mínimo componente por componente de este y with, equivalente a Vector3i(mini(x, with), mini(y, with), mini(z, 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.
Vector3i snapped(step: Vector3i) const 🔗
Devuelve un nuevo vector con cada componente ajustado al múltiplo más cercano del componente correspondiente en step.
Vector3i 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: Vector3i) 🔗
Devuelve true si los vectores no son iguales.
Vector3i operator %(right: Vector3i) 🔗
Obtiene el resto de cada componente del Vector3i con los componentes del Vector3i dado. Esta operación utiliza la 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(Vector3i(10, -20, 30) % Vector3i(7, 8, 9)) # Imprime (3, -4, 3)
Vector3i operator %(right: int) 🔗
Obtiene el resto de cada componente del Vector3i con el int dado. Esta operación utiliza la 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(Vector3i(10, -20, 30) % 7) # Imprime (3, -6, 2)
Vector3i operator *(right: Vector3i) 🔗
Multiplica cada componente del Vector3i por los componentes del Vector3i dado.
print(Vector3i(10, 20, 30) * Vector3i(3, 4, 5)) # Imprime (30, 80, 150)
Vector3 operator *(right: float) 🔗
Multiplica cada componente del Vector3i por el float dado. Devuelve un Vector3.
print(Vector3i(10, 15, 20) * 0.9) # Imprime (9.0, 13.5, 18.0)
Vector3i operator *(right: int) 🔗
Multiplica cada componente del Vector3i por el int dado.
Vector3i operator +(right: Vector3i) 🔗
Suma cada componente del Vector3i por los componentes del Vector3i dado.
print(Vector3i(10, 20, 30) + Vector3i(3, 4, 5)) # Imprime (13, 24, 35)
Vector3i operator -(right: Vector3i) 🔗
Resta cada componente del Vector3i por los componentes del Vector3i dado.
print(Vector3i(10, 20, 30) - Vector3i(3, 4, 5)) # Imprime (7, 16, 25)
Vector3i operator /(right: Vector3i) 🔗
Divide cada componente del Vector3i por los componentes del Vector3i dado.
print(Vector3i(10, 20, 30) / Vector3i(2, 5, 3)) # Imprime (5, 4, 10)
Vector3 operator /(right: float) 🔗
Divide cada componente del Vector3i por el float dado. Devuelve un Vector3.
print(Vector3i(10, 20, 30) / 2.9) # Imprime (5.0, 10.0, 15.0)
Vector3i operator /(right: int) 🔗
Divide cada componente de Vector3i por el int dado.
bool operator <(right: Vector3i) 🔗
Compara dos vectores Vector3i comprobando primero si el valor X del vector de la izquierda es menor que el valor X del vector right. Si los valores X son exactamente iguales, entonces repite esta comprobación con los valores Y de los dos vectores, y luego con los valores Z. Este operador es útil para ordenar vectores.
bool operator <=(right: Vector3i) 🔗
Compara dos vectores Vector3i comprobando primero si el valor X del vector de la izquierda es menor o igual que el valor X del vector right. Si los valores X son exactamente iguales, entonces repite esta comprobación con los valores Y de los dos vectores, y luego con los valores Z. Este operador es útil para ordenar vectores.
bool operator ==(right: Vector3i) 🔗
Devuelve true si los vectores son iguales.
bool operator >(right: Vector3i) 🔗
Compara dos vectores Vector3i comprobando primero si el valor X del vector de la izquierda es mayor que el valor X del vector right. Si los valores X son exactamente iguales, entonces repite esta comprobación con los valores Y de los dos vectores, y luego con los valores Z. Este operador es útil para ordenar vectores.
bool operator >=(right: Vector3i) 🔗
Compara dos vectores Vector3i comprobando primero si el valor X del vector de la izquierda es mayor o igual que el valor X del vector right. Si los valores X son exactamente iguales, entonces repite esta comprobación con los valores Y de los dos vectores, y luego con los valores Z. Este operador es útil para ordenar vectores.
Accede a los componentes del vector utilizando su index. v[0] es equivalente a v.x, v[1] es equivalente a v.y, y v[2] es equivalente a v.z.
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 Vector3i. Esto es lo mismo que escribir Vector3i(-v.x, -v.y, -v.z). Esta operación invierte la dirección del vector manteniendo la misma magnitud.