ddd.matrix
-
struct
Матрица3
; -
struct
Матрица4
;Структура, представляющая матрицу размерности 4x4. Используется для афинных преобразований, т.е. задаёт поворот, сдвиг и масштаб в OpenGL.
-
float[16]
m
;16 элементов матрицы, представленные в виде одномерного массива.
-
this(float
m00
, floatm01
, floatm02
, floatm03
, floatm10
, floatm11
, floatm12
, floatm13
, floatm20
, floatm21
, floatm22
, floatm23
, floatm30
, floatm31
, floatm32
, floatm33
);Конструктор, получающий 16 чисел в качестве элементов матрицы
Параметры:
mij
элемент, находящийся в i-ой строке, j-ом столбце
-
this(const Матрица4
другая_матрица
);Конструктор копирования
-
this(const Матрица3
m3x3
);Конструктор, строящий матрицу 4x4 на основе матрицы поворота 3x3 с нулевым сдвигом.
Параметры:
Матрица3
m3x3
матрица поворота
-
void
матрица_преобразований
(const(Вектор3)сдвиг
, const(Вектор3)масштаб
, const(Кватернион)поворот
);Функция, заполняющая элементы матрицы для выполнения афинных преобразований.
Порядок применения преобразований: 1. Масштаб 2. Поворот 3. Сдвиг
Параметры:
const(Вектор3)
сдвиг
вектор, на который выполняется
сдвиг
const(Вектор3)
масштаб
вектор, элементы которого представляют коэффициенты масштаба по соответствующим осям
const(Кватернион)
поворот
кватернион, представляющий угол и ось поворота
-
Матрица4
транспонировать
();Возвращает матрицу, полученную в результате транспонирования этой матрицы
-
Матрица4
opBinary
(string операция)(const(Матрица4)m2
) if (операция == "+" || операция == "-" || операция == "*");Сложение, вычитание и умножение этой матрицы и матрицы
m2
Notes: Операция умножения не коммутативна, т.е. M1*M2 ≠ M2*M1
-
Матрица4
opBinary
(string операция)(const floatскаляр
) if (операция == "*");Умножение элементов этой матрицы на число
-
Вектор3
Позиция
();Возвращает вектор, на который производит сдвиг эта матрица
-
string
toString
();Вывод элементов матрицы в строковое представление
-
Матрица3
получить_матрицу_3x3
();Возвращает минор этой матрицы размера 3x3, представляющий матрицу вращения и масштабирования
-
const float
определитель
();Возвращает
определитель
матрицы -
const Матрица4
обратная
();Возвращает матрицу, обратную этой
Замечание: Если определитель матрицы равен 0, элементы матрицы-результата будут равны inf (бесконечность)
-