Vector4i

4D вектор з цілочисельними координатами.

Опис

4-елементна структура, яка може бути використана для представлення координат 4D сітки або будь-якого іншого квадроцикла цілих чисел.

Він використовує цілі координати і тому бажано Vector4, коли потрібна точність. Зауважте, що значення обмежені 32 бітами, і на відміну від Vector4 це не можна налаштувати варіантом побудови двигуна. Використовуйте int або PackedInt64Array, якщо потрібні значення 64-бітних.

Примітка: У булевому контексті Vector4i оцінюватиме false, якщо це дорівнює Vector4i(0, 0, 0). Вектор4i завжди оцінять 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) 🔗

Мінімальний вектор, вектор з усіма компонентами, що дорівнює 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 🔗

Повертає квадрат відстані між цим вектором і to.

Цей метод працює швидше, ніж distance_to(), тому надавайте йому перевагу, якщо потрібно порівнювати вектори або використовувати квадрат відстані у формулі.


float distance_to(to: Vector4i) const 🔗

Повертає відстань між цим вектором і до.


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)) # Друк (3, -4, 3, 0)

Vector4i operator %(right: int) 🔗

Отримує залишок кожного компонента Vector4i із заданим int. У цій операції використовується скорочене ділення, яке часто небажано, оскільки воно погано працює з від’ємними числами. Розгляньте можливість використання @GlobalScope.posmod() натомість, якщо ви хочете обробляти від’ємні числа.

print(Vector4i(10, -20, 30, -40) % 7) # Друк (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)) # Виводить (13, 24, 35, 46)

Vector4i operator -(right: Vector4i) 🔗

Віднімає кожен компонент Vector4i на компоненти заданого Vector4i.

print(Vector4i(10, 20, 30, 40) - Vector4i(3, 4, 5, 6)) # Виводить (7, 16, 25, 34)

Vector4i operator /(right: Vector4i) 🔗

Розділяє кожен компонент Vector4i на компоненти заданого Vector4i.

print(Vector4i(10, 20, 30, 40) / Vector4i(2, 5, 3, 4)) # Виводить (5, 4, 10, 10)

Vector4 operator /(right: float) 🔗

Розділяє кожен компонент Vector4i на заданий float.

Повертає значення Vector4 через операції з плаваючою комою.

print(Vector4i(10, 20, 30, 40) / 2) # Виводить (5.0, 10.0, 15.0, 20.0)

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

Доступ до векторних компонентів за допомогою їх параметр. v[0] еквівалент v.x, v еквівалент v.y, v еквівалент v.z, і v128 еквівалент v.w.w[/code].


Vector4i operator unary+() 🔗

Повертає однакову вартість, якщо + не було. `` +`` нічого не робить, але іноді це може зробити ваш код більш читабельним.


Vector4i operator unary-() 🔗

Повертає негативне значення Vector4i. Vector4i(-v.x, -v.y, -v.z, -v.w). Ця операція закріплює напрямок вектора, зберігаючи однакову величину.