Задача B. Математика для КГ

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:10  

Условие

Дедлайн: 19.03.21

Задание1. Требуется требуется реализовать библиотеку математики.

Veci, i={2,3,4}

Методы:

Конструкторы: Veci(), Veci(float)m Veci(float, float, ...), Veci(veci)

сложение векторов

вычитание векторов

скалярное произведение

умножение на чило

деление на число

векторное произведение (для Vec3)

длина вектора

нормализация

сравнение векторов ==, !=

Mati, i={2,3,4}

Методы:

Конструкторы: Mati(), Mati(float)m Mati(float, float, ...), Mati(Mati)

сложение матриц

вычитание матриц

умножение матриц

умножение на число

деление на число

прибавления числа

вычитание числа

умножение матрицы на вектор

единичная матрица

обратная матрица

транспонированная матрица

сравнение векторов ==, !=

смещение

поворот

масштабирование

получить строку/столбец

Доп. методы

LookAt

Perspective

Ortho

+ Нужно написать тесты используя библиотеку glm.

На доп бал реализовать класс Quaternion.

Задание 2. Добавить камеру в проект.

Используя написанную библиотеку математики нужно дописать код. e4.h в папке examples.

Задание 3. Загрузку шейдера нужно переделать, превратив его в объект.

Методы

use() - использовать шейдер

setMat4(std::string id, const Mat4& data)

итд

Примеры тестов

Стандартный вход Стандартный выход
1
0
1

0.082s 0.008s 13