Vector4i
Четырехмерный вектор, использующий целочисленные координаты.
Описание
Структура из 4 элементов, которая может использоваться для представления координат сетки 4D или любой другой четверки целых чисел.
Она использует целочисленные координаты и поэтому предпочтительнее Vector4, когда требуется точная точность. Обратите внимание, что значения ограничены 32 битами, и в отличие от Vector4 это нельзя настроить с помощью опции сборки движка. Используйте int или PackedInt64Array, если требуются 64-битные значения.
Примечание: В булевом контексте Vector4i будет оцениваться как false, если он равен Vector4i(0, 0, 0, 0). В противном случае Vector4i всегда будет оцениваться как true.
Свойства
|
||
|
||
|
||
|
Конструкторы
Vector4i() |
|
Методы
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 |
|
Операторы
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) |
|
Перечисления
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.
Описания свойств
Компонент вектора W. Также доступен с помощью индексной позиции [3].
X компонент вектора. Может быть доступен через индекс [0].
Y компонент вектора. Может быть доступен через индекс [1].
Z компонент вектора. Также может быть доступен по индексу [2].
Описания конструктора
Создает инициализированный по умолчанию 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 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 🔗
Возвращает квадрат расстояния между этим вектором и to.
Этот метод работает быстрее, чем distance_to(), поэтому предпочитайте его, если вам нужно сравнить векторы или вам нужен квадрат расстояния для какой-то формулы.
float distance_to(to: Vector4i) const 🔗
Возвращает расстояние между данным вектором и to.
Возвращает длину (величину) данного вектора.
Возвращает длину данного вектора в квадрате.
Этот метод выполняется быстрее, чем length(), поэтому он предпочтительнее если вам нужно сравнить векторы или нужно расстояние в квадрате для какой-либо формулы.
Vector4i max(with: Vector4i) const 🔗
Возвращает покомпонентный максимум этого и with, что эквивалентно Vector4i(maxi(x, with.x), maxi(y, with.y), maxi(z, with.z), maxi(w, with.w)).
Возвращает ось наибольшего значения вектора. См. константы 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)).
Возвращает ось наименьшего значения вектора. См. константы AXIS_*. Если все компоненты равны, этот метод возвращает AXIS_W.
Vector4i mini(with: int) const 🔗
Возвращает покомпонентный минимум этого и with, эквивалентный Vector4i(mini(x, with), mini(y, with), mini(z, with), mini(w, with)).
Возвращает новый вектор, в котором каждый компонент установлен на 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. Этот оператор полезен для сортировки векторов.
Доступ к компонентам вектора осуществляется с помощью их index. v[0] эквивалентно v.x, v[1] эквивалентно v.y, v[2] эквивалентно v.z, а v[3] эквивалентно v.w.
Возвращает то же значение, как если бы + не было. Унарный + ничего не делает, но иногда он может сделать ваш код более читаемым.
Возвращает отрицательное значение Vector4i. Это то же самое, что и запись Vector4i(-v.x, -v.y, -v.z, -v.w). Эта операция меняет направление вектора, сохраняя ту же величину.