Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Vector4i

Четырехмерный вектор, использующий целочисленные координаты.

Описание

Структура из 4 элементов, которая может использоваться для представления координат сетки 4D или любой другой четверки целых чисел.

Она использует целочисленные координаты и поэтому предпочтительнее Vector4, когда требуется точная точность. Обратите внимание, что значения ограничены 32 битами, и в отличие от Vector4 это нельзя настроить с помощью опции сборки движка. Используйте int или PackedInt64Array, если требуются 64-битные значения.

Примечание: В булевом контексте Vector4i будет оцениваться как false, если он равен Vector4i(0, 0, 0, 0). В противном случае Vector4i всегда будет оцениваться как true.

Свойства

int

w

0

int

x

0

int

y

0

int

z

0

Конструкторы

Vector4i

Vector4i()

Vector4i

Vector4i(from: Vector4i)

Vector4i

Vector4i(from: Vector4)

Vector4i

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

Методы

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

Операторы

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


Перечисления

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

Вектор Max - вектор, все компоненты которого равны 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)

Создает новый Vector4i из заданного Vector4 путем усечения дробных частей компонентов (округление в сторону нуля). Для другого поведения рассмотрите возможность передачи результата 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 🔗

Возвращает новый вектор со всеми компонентами, зажатыми между компонентами min и max, путем запуска @GlobalScope.clamp() для каждого компонента.


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

Возвращает новый вектор со всеми компонентами, зажатыми между min и max, путем запуска @GlobalScope.clamp() для каждого компонента.


int distance_squared_to(to: Vector4i) const 🔗

Returns the squared Euclidean distance between this vector and to.

This method runs faster than distance_to(), so prefer it if you need to compare vectors or need the squared distance for some formula.


float distance_to(to: Vector4i) const 🔗

Returns the Euclidean distance between this vector and to.


float length() const 🔗

Возвращает длину (величину) данного вектора.


int length_squared() const 🔗

Возвращает длину данного вектора в квадрате.

Этот метод выполняется быстрее, чем length(), поэтому он предпочтительнее если вам нужно сравнить векторы или нужно расстояние в квадрате для какой-либо формулы.


Vector4i max(with: Vector4i) const 🔗

Возвращает покомпонентный максимум этого и 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 🔗

Возвращает покомпонентный максимум этого и with, что эквивалентно Vector4i(maxi(x, with), maxi(y, with), maxi(z, with), maxi(w, with)).


Vector4i min(with: Vector4i) const 🔗

Возвращает покомпонентный минимум этого и 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 🔗

Возвращает покомпонентный минимум этого и 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)) # Выводит (30, 80, 150, 240)

Vector4 operator *(right: float) 🔗

Умножает каждый компонент Vector4i на заданный float.

Возвращает значение Vector4 из-за операций с плавающей точкой.

print(Vector4i(10, 20, 30, 40) * 2) # Выводит (20.0, 40.0, 60.0, 80.0)

Vector4i operator *(right: int) 🔗

Умножает каждый компонент Vector4i на заданное int.


Vector4i operator +(right: Vector4i) 🔗

Добавляет каждый компонент Vector4i к компонентам указанного Vector4i.

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(1, 2, 3, 4) / 2.5) # Выводит (0.4, 0.8, 1.2, 1.6)

Vector4i operator /(right: int) 🔗

Делит каждый компонент Vector4i на заданное int.


bool operator <(right: Vector4i) 🔗

Сравнивает два вектора Vector4i, сначала проверяя, меньше ли значение X левого вектора, чем значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов, значениями Z двух векторов, а затем со значениями W. Этот оператор полезен для сортировки векторов.


bool operator <=(right: Vector4i) 🔗

Сравнивает два вектора Vector4i, сначала проверяя, меньше ли значение X левого вектора или равно ли ему значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов, значениями Z двух векторов, а затем со значениями W. Этот оператор полезен для сортировки векторов.


bool operator ==(right: Vector4i) 🔗

Возвращает true, если векторы точно равны.


bool operator >(right: Vector4i) 🔗

Сравнивает два вектора Vector4i, сначала проверяя, больше ли значение X левого вектора, чем значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов, значениями Z двух векторов, а затем со значениями W. Этот оператор полезен для сортировки векторов.


bool operator >=(right: Vector4i) 🔗

Сравнивает два вектора Vector4i, сначала проверяя, больше ли значение X левого вектора или равно ли ему значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов, значениями Z двух векторов, а затем со значениями W. Этот оператор полезен для сортировки векторов.


int operator [](index: int) 🔗

Доступ к компонентам вектора осуществляется с помощью их index. v[0] эквивалентно v.x, v[1] эквивалентно v.y, v[2] эквивалентно v.z, а v[3] эквивалентно v.w.


Vector4i operator unary+() 🔗

Возвращает то же значение, как если бы + не было. Унарный + ничего не делает, но иногда он может сделать ваш код более читаемым.


Vector4i operator unary-() 🔗

Возвращает отрицательное значение Vector4i. Это то же самое, что и запись Vector4i(-v.x, -v.y, -v.z, -v.w). Эта операция меняет направление вектора, сохраняя ту же величину.