Тестовое задание от ЗАО «Топ Системы» на вакансию C++ разработчик
Клавиша | Действие |
---|---|
Стрелка вверх | Поднять камеру |
Стрелка вниз | Опустить камеру |
Стрелка влево | Повернуть камеру левее |
Стрелка вправо | Повернуть камеру правее |
- Задать параметры для Color в формате RGB в диапазоне от 0 до 1. При использовании других значений они будут сброшены до значений по умолчанию.
- Задать параметры x и y для Location в любом видимом диапозоне.
- Выбрать интересующую фигуру (Shape/Figure) из списка.
- Нажать на кнопку Create Shape.
Ниже представлена диаграмма, показывающая взаимосвязь между классами:
Программа разработана по паттерну MVC, в котором есть разделение на интерфейс (view) и бизнес-логику (model), которая хранит текущее состояние приложения. Связь и обработку входящих значений между model и view обрабатывает controller.
Для работы с объектами, которые в будущем должны будут отрисовываться, есть интерфейс Object. От него наследуются класс Grid (адаптивная сетка) и класс Figure, который является общим предком для всех остальных конкретных фигур, таких как круг, треугольник и квадрат.
Окно создаётся через библиотеку GLFW, отрисовка графики происходит через OpenGL, создание и отрисовка пользовательского интерфейса через ImGUI. Предкомпилированные библиотеки GLFW для Windows64 и ImGUI (кроссплатформенная) находятся в директории src/third_party.
. Для Linux GLFW необходимо предустановить глобально через sudo apt-get install libglfw3
и sudo apt-get install libglfw3-dev
. CMakeList поддерживает сборку для обеих систем.
Система | Поддержка |
---|---|
Windows x64 | Работает |
Linux (Ubuntu) | Работает |
MacOS | Не проверено |
Windows x86 | Нет поддержки |
В зависимости от способа сборки и платформы могут быть возникать ошибки. Если ваша сборка на Windows прошла успешно, но .exe файл не запускается, вариантом решения проблемы может стать добавление set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libstdc++ -static-libgcc")
. Если библиотека GLFW на Windows не запускается, то вероятнее всего вы используете x86 систему. Также, в случае с Windows, вы можете скачать готовый .exe файл в релизах