reckfellENGINE

Vector3I

Вектор из 3 целых компонентов int для координат и индексов.

На этой странице
struct Vector3IReckfellSharpНаследует ValueType

Структура C# с 3 компонентами int: X, Y и Z. Подходит для целочисленных координат и индексов; компоненты ограничены диапазоном Int32. Присваивание копирует значение. Это не вектор с компонентами long.

Следите за диапазоном промежуточных сумм, разностей и произведений. Преобразование в вектор float не сохраняет точность всех больших целых; смена типа не исправляет уже произошедшее переполнение.

В C# Vector3I не преобразуется в bool. Для точной проверки нулевого вектора используйте сравнение с Vector3I.Zero; ненулевой вектор сам по себе не означает допустимую координату или индекс.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

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

Vector3IКонструктор
# Vector3I
C#
public Vector3I(int x, int y, int z);

Записывает x, y, z в соответствующие int-компоненты без округления, нормализации или ограничения диапазона. default(Vector3I) содержит нули. Это структура: присваивание копирует все компоненты.

Параметры
ИмяТипПо умолчанию
xint—
yint—
zint—
x

Начальная знаковая int-компонента X.

y

Начальная знаковая int-компонента Y.

z

Начальная знаковая int-компонента Z.

Свойства11

BackСвойство
# Back
C#
public static Vector3I Back { get; }

(0, 0, 1). Назад: положительный Z. Возвращается копия значения; её изменение не меняет константу.

DownСвойство
# Down
C#
public static Vector3I Down { get; }

(0, -1, 0). Вниз: отрицательный Y. Возвращается копия значения; её изменение не меняет константу.

ForwardСвойство
# Forward
C#
public static Vector3I Forward { get; }

(0, 0, -1). Вперёд: отрицательный Z. Возвращается копия значения; её изменение не меняет константу.

ItemСвойство
# Item
C#
public int this[int index] { get; set; }

Индексы компонент: 0 = X, 1 = Y, 2 = Z. Getter и setter вне диапазона 0..2 выбрасывают ArgumentOutOfRangeException. Меняется эта переменная структуры; ранее присвоенная копия не меняется.

LeftСвойство
# Left
C#
public static Vector3I Left { get; }

(-1, 0, 0). Отрицательный X. Возвращается копия значения; её изменение не меняет константу.

MaxValueСвойство
# MaxValue
C#
public static Vector3I MaxValue { get; }

(int.MaxValue, int.MaxValue, int.MaxValue). Конечные максимальные int, а не бесконечность; арифметика может переполниться. Возвращается копия значения; её изменение не меняет константу.

MinValueСвойство
# MinValue
C#
public static Vector3I MinValue { get; }

(int.MinValue, int.MinValue, int.MinValue). Конечные минимальные int, а не отрицательная бесконечность. Abs() выбрасывает OverflowException. Возвращается копия значения; её изменение не меняет константу.

OneСвойство
# One
C#
public static Vector3I One { get; }

(1, 1, 1). Все компоненты равны 1; это не единичная длина. Возвращается копия значения; её изменение не меняет константу.

RightСвойство
# Right
C#
public static Vector3I Right { get; }

(1, 0, 0). Положительный X. Возвращается копия значения; её изменение не меняет константу.

UpСвойство
# Up
C#
public static Vector3I Up { get; }

(0, 1, 0). Вверх: положительный Y. Возвращается копия значения; её изменение не меняет константу.

ZeroСвойство
# Zero
C#
public static Vector3I Zero { get; }

(0, 0, 0). Нулевой вектор, равный default(Vector3I). Возвращается копия значения; её изменение не меняет константу.

Методы41

AbsVector3I
# Abs
C#
public Vector3I Abs();

Возвращает новую структуру с Math.Abs для каждой компоненты; исходное значение не меняется. Для int.MinValue положительный результат не помещается в int, поэтому выбрасывается OverflowException.

Возвращает Vector3I

Абсолютные значения всех компонент, если они представимы в int.

Clamp2 перегрузки
# Clamp · 1/2
C#
public Vector3I Clamp(Vector3I min, Vector3I max);

Возвращает копию с покомпонентным ограничением включительными границами. У каждой оси свои min и max. Если любая нижняя граница выше верхней, выбрасывается ArgumentException; границы не переставляются.

Параметры
ИмяТипПо умолчанию
minVector3I—
maxVector3I—
min

Включительная нижняя граница, не выше соответствующей верхней.

max

Включительная верхняя граница, не ниже соответствующей нижней.

Возвращает Vector3I

Вектор с каждой компонентой в заданном диапазоне.

# Clamp · 2/2
C#
public Vector3I Clamp(int min, int max);

Возвращает копию с покомпонентным ограничением включительными границами. Одни min и max применяются ко всем осям. Если любая нижняя граница выше верхней, выбрасывается ArgumentException; границы не переставляются.

Параметры
ИмяТипПо умолчанию
minint—
maxint—
min

Включительная нижняя граница, не выше соответствующей верхней.

max

Включительная верхняя граница, не ниже соответствующей нижней.

Возвращает Vector3I

Вектор с каждой компонентой в заданном диапазоне.

Deconstructvoid
# Deconstruct
C#
public void Deconstruct(out int x, out int y, out int z);

Копирует компоненты в выходные аргументы в порядке X, Y, Z. Позволяет записать var (x, y, z) = vector; исходный вектор не меняется.

Параметры
ИмяТипПо умолчанию
xint—
yint—
zint—
x

Выходная копия компоненты X.

y

Выходная копия компоненты Y.

z

Выходная копия компоненты Z.

DistanceSquaredToint
# DistanceSquaredTo
C#
public int DistanceSquaredTo(Vector3I to);

Вычисляет (to - this).LengthSquared() в int. Переполнение возможно уже при вычитании, затем при возведении в квадрат и сложении; результат может быть отрицательным или ошибочно малым. Не используйте для больших координат без проверки диапазона. Для широкого диапазона переводите компоненты в double до вычитания — пример приведён у DistanceTo.

Параметры
ИмяТипПо умолчанию
toVector3I—
to

Координаты второй точки; разность с текущей точкой сначала вычисляется в int.

Возвращает int

Квадрат расстояния, только если все промежуточные целочисленные операции укладываются в int.

DistanceTofloat
# DistanceTo
C#
public float DistanceTo(Vector3I to);

Вычисляет (to - this).Length(). Float-результат не защищает от переполнения int при вычитании и возведении в квадрат. От (int.MinValue, 0, 0) до (int.MaxValue, 0, 0) установленный SDK возвращает 1 вместо 4294967295.

WideDistance переводит каждую компоненту в double до вычитания. CellAt использует Floor: (-1, 33, -17) при шаге 16 даёт (-1, 2, -2); неположительный шаг и непредставимые координаты отвергаются.

C#
using System;
using Reckfell;

public static class IntegerSpaceExamples
{
    public static Vector3I CellAt(Vector3 position, int cellSize)
    {
        if (cellSize <= 0) throw new ArgumentOutOfRangeException(nameof(cellSize));
        Vector3 cell = (position / cellSize).Floor();
        for (int axis = 0; axis < 3; axis++)
            if (!float.IsFinite(cell[axis]) || (double)cell[axis] < int.MinValue || (double)cell[axis] > int.MaxValue)
                throw new ArgumentOutOfRangeException(nameof(position));
        return (Vector3I)cell;
    }

    public static double WideDistance(Vector3I from, Vector3I to)
    {
        double dx = (double)to.X - from.X;
        double dy = (double)to.Y - from.Y;
        double dz = (double)to.Z - from.Z;
        return Math.Sqrt(dx * dx + dy * dy + dz * dz);
    }

    public static double WideDistance(Vector4I from, Vector4I to)
    {
        double dx = (double)to.X - from.X;
        double dy = (double)to.Y - from.Y;
        double dz = (double)to.Z - from.Z;
        double dw = (double)to.W - from.W;
        return Math.Sqrt(dx * dx + dy * dy + dz * dz + dw * dw);
    }
}
Параметры
ИмяТипПо умолчанию
toVector3I—
to

Координаты второй точки; разность с текущей точкой сначала вычисляется в int.

Возвращает float

Евклидово расстояние как float при отсутствии промежуточного переполнения; иначе значение может быть ошибочным или NaN.

Equals2 перегрузки
# Equals · 1/2
C#
public bool Equals(Vector3I other);

Точно сравнивает X, Y, Z. Приближённого сравнения и сравнения длин нет.

Параметры
ИмяТипПо умолчанию
otherVector3I—
other

Второй Vector3I для точного сравнения X, Y, Z.

Возвращает bool

true только при совпадении всех компонент и подходящем типе.

# Equals · 2/2
C#
public override bool Equals(object? obj);

Точно сравнивает X, Y, Z. object должен содержать Vector3I: Vector3 с теми же координатами, null и другие типы дают false.

Параметры
ИмяТипПо умолчанию
objobject—
obj

Объект для проверки; совпасть может только упакованный Vector3I с теми же X, Y, Z.

Возвращает bool

true только при совпадении всех компонент и подходящем типе.

GetHashCodeint
# GetHashCode
C#
public override int GetHashCode();

Использует HashCode.Combine(X, Y, Z). Равные векторы имеют одинаковый хеш, но совпадение хеша не доказывает равенство. Подходит для ключей Dictionary<Vector3I, T>; не сохраняйте хеш как постоянный идентификатор между запусками.

Возвращает int

Хеш обеих целочисленных компонент.

Lengthfloat
# Length
C#
public float Length();

Вычисляет XX + YY + Z*Z в int, затем извлекает float-корень. Переполнение возможно в квадратах и сумме: (50000, 0, 0) даёт NaN, а (65536, 0, 0) — 0. Для широкого диапазона переводите компоненты в double до умножения.

Возвращает float

Длина при допустимом диапазоне промежуточных значений; переполнение делает результат ненадёжным.

LengthSquaredint
# LengthSquared
C#
public int LengthSquared();

Вычисляет XX + YY + Z*Z в int, без корня. Переполнение возможно в квадратах и сумме: (50000, 0, 0) даёт отрицательный квадрат длины, а (65536, 0, 0) — 0. Для широкого диапазона переводите компоненты в double до умножения.

Возвращает int

Квадрат длины, если произведения и сумма представимы в int.

Max2 перегрузки
# Max · 1/2
C#
public Vector3I Max(Vector3I with);

Большая из двух величин выбирается отдельно для X, Y, Z; возвращается копия. Аргумент задаёт отдельные значения по осям. Это не выбор одного целого вектора по операторам < или >.

Параметры
ИмяТипПо умолчанию
withVector3I—
with

Компоненты или одно общее значение для покомпонентного сравнения.

Возвращает Vector3I

Покомпонентные максимумы.

# Max · 2/2
C#
public Vector3I Max(int with);

Большая из двух величин выбирается отдельно для X, Y, Z; возвращается копия. Одно значение сравнивается с обеими компонентами. Это не выбор одного целого вектора по операторам < или >.

Параметры
ИмяТипПо умолчанию
withint—
with

Компоненты или одно общее значение для покомпонентного сравнения.

Возвращает Vector3I

Покомпонентные максимумы.

MaxAxisIndexVector3I.Axis
# MaxAxisIndex
C#
public Vector3I.Axis MaxAxisIndex();

Большая знаковая компонента определяет ось; абсолютные величины не сравниваются. При равенстве выбирается первая ось в порядке X, Y, Z. У равных компонент результат Axis.X.

Возвращает Vector3I.Axis

Первая ось максимальной знаковой компоненты.

Min2 перегрузки
# Min · 1/2
C#
public Vector3I Min(Vector3I with);

Меньшая из двух величин выбирается отдельно для X, Y, Z; возвращается копия. Аргумент задаёт отдельные значения по осям. Это не выбор одного целого вектора по операторам < или >.

Параметры
ИмяТипПо умолчанию
withVector3I—
with

Компоненты или одно общее значение для покомпонентного сравнения.

Возвращает Vector3I

Покомпонентные минимумы.

# Min · 2/2
C#
public Vector3I Min(int with);

Меньшая из двух величин выбирается отдельно для X, Y, Z; возвращается копия. Одно значение сравнивается с обеими компонентами. Это не выбор одного целого вектора по операторам < или >.

Параметры
ИмяТипПо умолчанию
withint—
with

Компоненты или одно общее значение для покомпонентного сравнения.

Возвращает Vector3I

Покомпонентные минимумы.

MinAxisIndexVector3I.Axis
# MinAxisIndex
C#
public Vector3I.Axis MinAxisIndex();

Меньшая знаковая компонента определяет ось; абсолютные величины не сравниваются. При равенстве выбирается последняя ось в порядке X, Y, Z. У равных компонент результат Axis.Z.

Возвращает Vector3I.Axis

Последняя ось минимальной знаковой компоненты.

SignVector3I
# Sign
C#
public Vector3I Sign();

Возвращает новую структуру: отрицательная компонента становится -1, нулевая — 0, положительная — 1. int.MinValue даёт -1 без взятия абсолютной величины. Это не нормализация длины: (1, 1, 1) остаётся (1, 1, 1).

Возвращает Vector3I

Вектор знаков из -1, 0 и 1.

Snapped2 перегрузки
# Snapped · 1/2
C#
public Vector3I Snapped(Vector3I step);

Привязывает каждую компоненту к шагу через double-формулу floor(value / step + 0.5) * step с последующим приведением к int. Положительный шаг округляет половины к большему значению: (6, -6, 2).Snapped(4) даёт (8, -4, 4). Нулевой шаг сохраняет компоненту; отрицательный меняет правило половин, поэтому используйте положительный шаг. Результат должен помещаться в int; ограничение диапазона не выполняется.

Параметры
ИмяТипПо умолчанию
stepVector3I—
step

Шаг каждой оси или один общий шаг. Рекомендуется положительный; 0 оставляет соответствующую компоненту без изменения.

Возвращает Vector3I

Новая структура с привязанными компонентами; исходная не меняется.

# Snapped · 2/2
C#
public Vector3I Snapped(int step);

Привязывает каждую компоненту к шагу через double-формулу floor(value / step + 0.5) * step с последующим приведением к int. Положительный шаг округляет половины к большему значению: (6, -6, 2).Snapped(4) даёт (8, -4, 4). Нулевой шаг сохраняет компоненту; отрицательный меняет правило половин, поэтому используйте положительный шаг. Результат должен помещаться в int; ограничение диапазона не выполняется.

Параметры
ИмяТипПо умолчанию
stepint—
step

Шаг каждой оси или один общий шаг. Рекомендуется положительный; 0 оставляет соответствующую компоненту без изменения.

Возвращает Vector3I

Новая структура с привязанными компонентами; исходная не меняется.

ToString2 перегрузки
# ToString · 1/2
C#
public override string ToString();

Использует CultureInfo.InvariantCulture независимо от текущей культуры; вектор (3, -4, 2) возвращает "(3, -4, 2)". Эквивалентно ToString(null).

Возвращает string

Строка всех компонент в указанном числовом формате.

# ToString · 2/2
C#
public string ToString(string? format);

Использует CultureInfo.InvariantCulture независимо от текущей культуры; вектор (3, -4, 2) возвращает "(3, -4, 2)". format применяется отдельно к каждому int: "D4" даёт "(0003, -0004, 0002)". Неверный формат вызывает FormatException.

Параметры
ИмяТипПо умолчанию
formatstring—
format

Числовой формат int для всех компонент, например "D4"; null использует обычный формат. Неверный формат вызывает FormatException.

Возвращает string

Строка всех компонент в указанном числовом формате.

op_AdditionVector3I
# op_Addition
C#
public static Vector3I operator +(Vector3I left, Vector3I right);

Возвращает (left.X + right.X, left.Y + right.Y, left.Z + right.Z) как новую структуру. В установленном SDK переполнение int оборачивается без насыщения; checked вокруг вызова не меняет уже скомпилированный оператор.

Параметры
ИмяТипПо умолчанию
leftVector3I—
rightVector3I—
left

Левый вектор; операция не изменяет переменную вызывающего кода.

right

Правый вектор; операция не изменяет переменную вызывающего кода.

Возвращает Vector3I

Результат покомпонентной операции; исходные переменные не меняются.

op_Division2 перегрузки
# op_Division · 1/2
C#
public static Vector3I operator /(Vector3I vec, Vector3I divisorv);

Целочисленно делит каждую компоненту с усечением к нулю: (-7, 7, 0) / (2, 2, 2) даёт (-3, 3, 0). Нулевой делитель вызывает DivideByZeroException. Сочетание int.MinValue и -1 для соответствующей компоненты в установленном SDK вызывает OverflowException. Делители заданы отдельно по осям.

Параметры
ИмяТипПо умолчанию
vecVector3I—
divisorvVector3I—
vec

Вектор-операнд; возвращается новое значение структуры.

divisorv

Ненулевые делители для соответствующих компонент X, Y, Z.

Возвращает Vector3I

Целочисленные частные X, Y, Z.

# op_Division · 2/2
C#
public static Vector3I operator /(Vector3I vec, int divisor);

Целочисленно делит каждую компоненту с усечением к нулю: (-7, 7, 0) / 2 даёт (-3, 3, 0). Нулевой делитель вызывает DivideByZeroException. Сочетание int.MinValue и -1 для соответствующей компоненты в установленном SDK вызывает OverflowException. Один делитель применяется ко всем осям.

Параметры
ИмяТипПо умолчанию
vecVector3I—
divisorint—
vec

Вектор-операнд; возвращается новое значение структуры.

divisor

Общий ненулевой делитель для X, Y, Z.

Возвращает Vector3I

Целочисленные частные X, Y, Z.

op_Equalitybool
# op_Equality
C#
public static bool operator ==(Vector3I left, Vector3I right);

Точно сравнивает все целочисленные компоненты. Значения не сравниваются по длине; приближённый допуск не используется.

Параметры
ИмяТипПо умолчанию
leftVector3I—
rightVector3I—
left

Левый вектор; операция не изменяет переменную вызывающего кода.

right

Правый вектор; операция не изменяет переменную вызывающего кода.

Возвращает bool

true, если X, Y, Z совпадают.

op_ExplicitVector3I
# op_Explicit
C#
public static explicit operator Vector3I(Vector3 value);

Приводит каждую компоненту Vector3 к int с усечением к нулю: (-1.9, 1.9, -2.9) даёт (-1, 1, -2). Для отрицательных координат клеток сначала используйте Floor. До приведения проверяйте конечность и диапазон int; переносимый результат для NaN, Infinity и выхода за диапазон не гарантируется.

Параметры
ИмяТипПо умолчанию
valueVector3—
value

Исходный вектор для преобразования; ограничения точности и диапазона описаны у операции.

Возвращает Vector3I

Вектор целочисленных компонент с усечением к нулю для входов в допустимом диапазоне.

op_GreaterThanbool
# op_GreaterThan
C#
public static bool operator >(Vector3I left, Vector3I right);

Лексикографическое сравнение в порядке X, Y, Z: следующая компонента проверяется только при равенстве предыдущих. Это порядок сортировки, а не покомпонентная проверка границ и не сравнение длин. (1, 100, 0) < (2, -100, 0) — true, несмотря на больший Y слева. Для проверки области сравнивайте оси явно.

Параметры
ИмяТипПо умолчанию
leftVector3I—
rightVector3I—
left

Левый вектор; операция не изменяет переменную вызывающего кода.

right

Правый вектор; операция не изменяет переменную вызывающего кода.

Возвращает bool

true при выполнении отношения left > right в указанном порядке.

op_GreaterThanOrEqualbool
# op_GreaterThanOrEqual
C#
public static bool operator >=(Vector3I left, Vector3I right);

Лексикографическое сравнение в порядке X, Y, Z: следующая компонента проверяется только при равенстве предыдущих. Это порядок сортировки, а не покомпонентная проверка границ и не сравнение длин. (1, 100, 0) < (2, -100, 0) — true, несмотря на больший Y слева. Для проверки области сравнивайте оси явно.

Параметры
ИмяТипПо умолчанию
leftVector3I—
rightVector3I—
left

Левый вектор; операция не изменяет переменную вызывающего кода.

right

Правый вектор; операция не изменяет переменную вызывающего кода.

Возвращает bool

true при выполнении отношения left >= right в указанном порядке.

op_ImplicitVector3
# op_Implicit
C#
public static implicit operator Vector3(Vector3I value);

Преобразует каждую int-компоненту во float-компоненту Vector3 установленного SDK. Большие целые могут потерять точность: 16777217 превращается в 16777216. Для точной арифметики сетки сохраняйте Vector3I до этапа отображения.

Параметры
ИмяТипПо умолчанию
valueVector3I—
value

Исходный вектор для преобразования; ограничения точности и диапазона описаны у операции.

Возвращает Vector3

Vector3 с преобразованными компонентами; точность больших int не гарантируется.

op_Inequalitybool
# op_Inequality
C#
public static bool operator !=(Vector3I left, Vector3I right);

Отрицает ==. Значения не сравниваются по длине; приближённый допуск не используется.

Параметры
ИмяТипПо умолчанию
leftVector3I—
rightVector3I—
left

Левый вектор; операция не изменяет переменную вызывающего кода.

right

Правый вектор; операция не изменяет переменную вызывающего кода.

Возвращает bool

true, если хотя бы одна компонента различается.

op_LessThanbool
# op_LessThan
C#
public static bool operator <(Vector3I left, Vector3I right);

Лексикографическое сравнение в порядке X, Y, Z: следующая компонента проверяется только при равенстве предыдущих. Это порядок сортировки, а не покомпонентная проверка границ и не сравнение длин. (1, 100, 0) < (2, -100, 0) — true, несмотря на больший Y слева. Для проверки области сравнивайте оси явно.

Параметры
ИмяТипПо умолчанию
leftVector3I—
rightVector3I—
left

Левый вектор; операция не изменяет переменную вызывающего кода.

right

Правый вектор; операция не изменяет переменную вызывающего кода.

Возвращает bool

true при выполнении отношения left < right в указанном порядке.

op_LessThanOrEqualbool
# op_LessThanOrEqual
C#
public static bool operator <=(Vector3I left, Vector3I right);

Лексикографическое сравнение в порядке X, Y, Z: следующая компонента проверяется только при равенстве предыдущих. Это порядок сортировки, а не покомпонентная проверка границ и не сравнение длин. (1, 100, 0) < (2, -100, 0) — true, несмотря на больший Y слева. Для проверки области сравнивайте оси явно.

Параметры
ИмяТипПо умолчанию
leftVector3I—
rightVector3I—
left

Левый вектор; операция не изменяет переменную вызывающего кода.

right

Правый вектор; операция не изменяет переменную вызывающего кода.

Возвращает bool

true при выполнении отношения left <= right в указанном порядке.

op_Modulus2 перегрузки
# op_Modulus · 1/2
C#
public static Vector3I operator %(Vector3I vec, Vector3I divisorv);

Вычисляет остатки C# от усечённого деления: (10, -20, 0) % (7, 7, 7) даёт (3, -6, 0). Это не положительное циклическое оборачивание; для него используйте Mathf.PosMod с положительным модулем. Нулевой делитель вызывает DivideByZeroException. Сочетание int.MinValue и -1 для соответствующей компоненты в установленном SDK вызывает OverflowException. Делители заданы отдельно по осям.

Параметры
ИмяТипПо умолчанию
vecVector3I—
divisorvVector3I—
vec

Вектор-операнд; возвращается новое значение структуры.

divisorv

Ненулевые делители для соответствующих компонент X, Y, Z.

Возвращает Vector3I

Остатки X, Y, Z со знаком делимого либо 0.

# op_Modulus · 2/2
C#
public static Vector3I operator %(Vector3I vec, int divisor);

Вычисляет остатки C# от усечённого деления: (10, -20, 0) % 7 даёт (3, -6, 0). Это не положительное циклическое оборачивание; для него используйте Mathf.PosMod с положительным модулем. Нулевой делитель вызывает DivideByZeroException. Сочетание int.MinValue и -1 для соответствующей компоненты в установленном SDK вызывает OverflowException. Один делитель применяется ко всем осям.

Параметры
ИмяТипПо умолчанию
vecVector3I—
divisorint—
vec

Вектор-операнд; возвращается новое значение структуры.

divisor

Общий ненулевой делитель для X, Y, Z.

Возвращает Vector3I

Остатки X, Y, Z со знаком делимого либо 0.

op_Multiply3 перегрузки
# op_Multiply · 1/3
C#
public static Vector3I operator *(Vector3I left, Vector3I right);

Возвращает (left.X * right.X, left.Y * right.Y, left.Z * right.Z) как новую структуру. Для int используется один множитель всех осей; два вектора умножаются покомпонентно, не как скалярное произведение. В установленном SDK переполнение int оборачивается без насыщения; checked вокруг вызова не меняет уже скомпилированный оператор.

Параметры
ИмяТипПо умолчанию
leftVector3I—
rightVector3I—
left

Левый вектор; операция не изменяет переменную вызывающего кода.

right

Правый вектор; операция не изменяет переменную вызывающего кода.

Возвращает Vector3I

Результат покомпонентной операции; исходные переменные не меняются.

# op_Multiply · 2/3
C#
public static Vector3I operator *(Vector3I vec, int scale);

Возвращает (vec.X * scale, vec.Y * scale, vec.Z * scale) как новую структуру. Для int используется один множитель всех осей; два вектора умножаются покомпонентно, не как скалярное произведение. В установленном SDK переполнение int оборачивается без насыщения; checked вокруг вызова не меняет уже скомпилированный оператор.

Параметры
ИмяТипПо умолчанию
vecVector3I—
scaleint—
vec

Вектор-операнд; возвращается новое значение структуры.

scale

Целочисленный множитель всех компонент; произведение должно помещаться в int.

Возвращает Vector3I

Результат покомпонентной операции; исходные переменные не меняются.

# op_Multiply · 3/3
C#
public static Vector3I operator *(int scale, Vector3I vec);

Возвращает (vec.X * scale, vec.Y * scale, vec.Z * scale) как новую структуру. Для int используется один множитель всех осей; два вектора умножаются покомпонентно, не как скалярное произведение. В установленном SDK переполнение int оборачивается без насыщения; checked вокруг вызова не меняет уже скомпилированный оператор.

Параметры
ИмяТипПо умолчанию
scaleint—
vecVector3I—
scale

Целочисленный множитель всех компонент; произведение должно помещаться в int.

vec

Вектор-операнд; возвращается новое значение структуры.

Возвращает Vector3I

Результат покомпонентной операции; исходные переменные не меняются.

op_SubtractionVector3I
# op_Subtraction
C#
public static Vector3I operator -(Vector3I left, Vector3I right);

Возвращает (left.X - right.X, left.Y - right.Y, left.Z - right.Z) как новую структуру. В установленном SDK переполнение int оборачивается без насыщения; checked вокруг вызова не меняет уже скомпилированный оператор.

Параметры
ИмяТипПо умолчанию
leftVector3I—
rightVector3I—
left

Левый вектор; операция не изменяет переменную вызывающего кода.

right

Правый вектор; операция не изменяет переменную вызывающего кода.

Возвращает Vector3I

Результат покомпонентной операции; исходные переменные не меняются.

op_UnaryNegationVector3I
# op_UnaryNegation
C#
public static Vector3I operator -(Vector3I vec);

Возвращает (-X, -Y, -Z) как новую структуру. В установленном SDK переполнение int оборачивается без насыщения; checked вокруг вызова не меняет уже скомпилированный оператор. Для -int.MinValue остаётся int.MinValue.

Параметры
ИмяТипПо умолчанию
vecVector3I—
vec

Вектор-операнд; возвращается новое значение структуры.

Возвращает Vector3I

Результат покомпонентной операции; исходные переменные не меняются.

op_UnaryPlusVector3I
# op_UnaryPlus
C#
public static Vector3I operator +(Vector3I vec);

Возвращает (X, Y, Z) как новую структуру. Унарный плюс не меняет значение.

Параметры
ИмяТипПо умолчанию
vecVector3I—
vec

Вектор-операнд; возвращается новое значение структуры.

Возвращает Vector3I

Результат покомпонентной операции; исходные переменные не меняются.

Поля и константы3

XПоле
# X
C#
public int X;

Изменяемая знаковая 32-битная компонента X, также доступная через [0]. Присваивание не меняет другие компоненты и не ограничивает диапазон.

YПоле
# Y
C#
public int Y;

Изменяемая знаковая 32-битная компонента Y, также доступная через [1]. Присваивание не меняет другие компоненты и не ограничивает диапазон. В 3D положительный Y направлен вверх.

ZПоле
# Z
C#
public int Z;

Изменяемая знаковая 32-битная компонента Z, также доступная через [2]. Присваивание не меняет другие компоненты и не ограничивает диапазон. Forward направлен по отрицательному Z.

Vector3I.Axis

ЗначениеОписание
X = 0

Перечисленное значение для оси X. Возвращается Vector3I.MaxAxisIndex и Vector3I.MinAxisIndex.

Y = 1

Перечисленное значение для оси Y. Возвращается Vector3I.MaxAxisIndex и Vector3I.MinAxisIndex.

Z = 2

Перечисленное значение для оси Z. Возвращается Vector3I.MaxAxisIndex и Vector3I.MinAxisIndex.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.