Vector4i

使用整数坐标的4D向量。

描述

一种4元素结构,可用于表示4D网格坐标或任何其他整数四元组。

它使用整数坐标,因此在需要精确精度时比Vector4更可取。请注意,这些值限制为32位,与Vector4不同,这不能配置为引擎构建选项。如果需要64位值,请使用intPackedInt64Array

注意:在布尔上下文中,如果Vector4i等于Vector4i(0,0,0,0),它将评估为false。否则,Vector4i将始终评估为true

属性

int

w

0

int

x

0

int

y

0

int

z

0

构造函数

方法

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

运算符


枚举

enum Axis: 🔗

Axis AXIS_X = 0

X轴的枚举值。由max_axis_index()min_axis_index()返回。

Axis AXIS_Y = 1

Y轴的枚举值。由max_axis_index()min_axis_index()返回。

Axis AXIS_Z = 2

Z轴的枚举值。由max_axis_index()min_axis_index()返回。

Axis AXIS_W = 3

W轴的枚举值。由max_axis_index()min_axis_index()返回。


常量

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

零向量,所有分量都设置为0的向量。

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

一个向量,所有分量都设置为1的向量。

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

min向量,所有分量等于INT32_MIN的向量。可以用作Vector4.INF的负整数等价物。

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

最大向量,所有分量等于INT32_MAX的向量。可以用作Vector4.INF的整数等价物。


属性说明

int w = 0 🔗

向量的W分量。也可以使用索引位置[3]访问。


int x = 0 🔗

向量的X分量。也可以使用索引位置[0]访问。


int y = 0 🔗

向量的Y分量。也可以使用索引位置[1]访问。


int z = 0 🔗

向量的Z分量。也可以使用索引位置[2]访问。


构造函数说明

Vector4i Vector4i() 🔗

构造一个默认初始化的Vector4i,所有组件都设置为0


Vector4i Vector4i(from: Vector4i)

构造一个Vector4i作为给定Vector4i的副本。


Vector4i Vector4i(from: Vector4)

通过截断组件的小数部分(四舍五入为零)从给定的Vector4构造一个新的Vector4i。对于不同的行为,请考虑将Vector4.ceil()Vector4.floor()Vector4.round()的结果传递给此构造函数。


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

返回具有给定组件的Vector4i


方法说明

Vector4i abs() const 🔗

返回一个新向量,其中所有分量都为绝对值(即正)。


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

通过在每个组件上运行@GlobalScope.clamp(),返回一个新向量,其中所有组件都夹在minmax的组件之间。


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

通过在每个组件上运行@GlobalScope.clamp(),返回一个新向量,其中所有组件都夹在minmax之间。


int distance_squared_to(to: Vector4i) const 🔗

返回此向量与to之间的平方距离。

此方法比distance_to()运行得更快,因此如果您需要比较向量或需要某些公式的平方距离,则更喜欢它。


float distance_to(to: Vector4i) const 🔗

返回此向量与to之间的距离。


float length() const 🔗

返回此向量的长度(大小)。


int length_squared() const 🔗

返回此向量的平方长度(平方幅度)。

此方法比length()运行得更快,因此如果您需要比较向量或需要某些公式的平方距离,则更喜欢它。


Vector4i max(with: Vector4i) const 🔗

返回this和with的组件最大值,相当于Vector4i(maxi(x, with.x),maxi(y,with.y),maxi(z,with.z),maxi(w,with.w))


int max_axis_index() const 🔗

返回向量最高值的轴。请参见AXIS_*常量。如果所有分量相等,则此方法返回AXIS_X


Vector4i maxi(with: int) const 🔗

返回this和with的组件最大值,相当于Vector4i(maxi(x, with),maxi(y,with),maxi(z,with),maxi(w,with))


Vector4i min(with: Vector4i) const 🔗

返回this和with的组件最小值,相当于Vector4i(mini(x, with.x),mini(y,with.y),mini(z,with.z),mini(w,with.w))


int min_axis_index() const 🔗

返回向量最低值的轴。请参见AXIS_*常量。如果所有分量相等,则此方法返回AXIS_W


Vector4i mini(with: int) const 🔗

返回this和with的组件最小值,相当于Vector4i(mini(x, with),mini(y,with),mini(z,with),mini(w,with))


Vector4i sign() const 🔗

返回一个新向量,如果每个组件为正,则将每个组件设置为1,如果为负,则将-1,如果为零,则将0。结果与在每个组件上调用@GlobalScope.sign()相同。


Vector4i snapped(step: Vector4i) const 🔗

返回一个新向量,每个组件都捕捉到step中相应组件的最接近倍数。


Vector4i snappedi(step: int) const 🔗

返回一个新向量,每个分量都被捕捉到step的最接近倍数。


运算符说明

bool operator !=(right: Vector4i) 🔗

如果向量不相等,则返回true


Vector4i operator %(right: Vector4i) 🔗

获取 Vector4i 的每个分量与给定 Vector4i 的分量相除的余数。此操作使用截断除法,由于它对负数处理不佳,通常不是理想的选择。如果要处理负数,建议使用 @GlobalScope.posmod()

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

Vector4i operator %(right: int) 🔗

获取 Vector4i 的每个分量与给定 int 的余数。此操作使用截断除法,这通常不是理想的选择,因为它对负数处理效果不佳。如果要处理负数,建议改用 @GlobalScope.posmod()

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

Vector4i operator *(right: Vector4i) 🔗

Vector4i 的每个分量与给定的 Vector4i 的分量相乘。

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

Vector4 operator *(right: float) 🔗

Vector4i 的每个分量乘以给定的 float。由于浮点运算,返回一个 Vector4 值。

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

Vector4i operator *(right: int) 🔗

Vector4i的每个组件乘以给定的int


Vector4i operator +(right: Vector4i) 🔗

Vector4i 的每个分量中减去给定 Vector4i 的分量。

t

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


Vector4i operator -(right: Vector4i) 🔗

Vector4i 的每个分量中减去给定 Vector4i 的分量。

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

Vector4i operator /(right: Vector4i) 🔗

Vector4i 的每个分量除以给定 Vector4i 的分量。

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

Vector4 operator /(right: float) 🔗

Vector4i 的每个分量除以给定的 float

由于浮点运算,返回一个 Vector4 值。

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

Vector4i operator /(right: int) 🔗

Vector4i的每个组件除以给定的int


bool operator <(right: Vector4i) 🔗

通过首先检查左向量的X值是否小于right向量的X值来比较两个Vector4i向量。如果X值完全相等,则它使用两个向量的Y值、两个向量的Z值重复此检查,然后使用W值。此运算符对于排序向量很有用。


bool operator <=(right: Vector4i) 🔗

通过首先检查左向量的X值是否小于或等于right向量的X值来比较两个Vector4i向量。如果X值完全相等,则它使用两个向量的Y值、两个向量的Z值重复此检查,然后使用W值。此运算符对于排序向量很有用。


bool operator ==(right: Vector4i) 🔗

如果向量完全相等,则返回true


bool operator >(right: Vector4i) 🔗

通过首先检查左向量的X值是否大于right向量的X值来比较两个Vector4i向量。如果X值完全相等,则它使用两个向量的Y值、两个向量的Z值重复此检查,然后使用W值。此运算符对于排序向量很有用。


bool operator >=(right: Vector4i) 🔗

通过首先检查左向量的X值是否大于或等于right向量的X值来比较两个Vector4i向量。如果X值完全相等,则它使用两个向量的Y值、两个向量的Z值重复此检查,然后使用W值。此运算符对于排序向量很有用。


int operator [](index: int) 🔗

v[0]等价于v. xv[1]等价于v.yv[2]等价于v.zv[3]等价于v.w


Vector4i operator unary+() 🔗

返回与+不存在相同的值。一元+什么也不做,但有时它可以使您的代码更具可读性。


Vector4i operator unary-() 🔗

返回Vector4i的负值。这与编写Vector4i(-v. x,-v.y,-v.z,-v.w)相同。此操作在保持相同大小的同时翻转向量的方向。