An open API service indexing awesome lists of open source software.

https://github.com/skytecat/3dviewer

Application for viewing 3D wireframe models in C++ in the object-oriented programming paradigm
https://github.com/skytecat/3dviewer

Last synced: about 1 year ago
JSON representation

Application for viewing 3D wireframe models in C++ in the object-oriented programming paradigm

Awesome Lists containing this project

README

          

# 3DViewer

## Резюме
Данная программа предоставляет возможность просмотра 3D модели в каркасном виде.
Модели хранятся в файле формата .obj. Примеры моделей хранятся в `../msc/images`

## Содержание

- [Введение](#введение)
- [Информация о проекте](#информация-о-проекте)
- [Общая информация](#общая-информация)
- [Сборка и тестирование](#сборка-и-тестирование)

## Информация о проекте
### Общая информация

- Программа разработана на языке C++ стандарта C++17.
- Программа разработана в соответствии с принципами объектно-ориентированного программирования.
- Обеспечено полное покрытие unit-тестами модулей, связанных с загрузкой моделей и аффинными преобразованиями.
- Программа предоставляет возможность:
- Загружать каркасную модель из файла формата obj (поддержка только списка вершин и поверхностей);
- Перемещать модель на заданное расстояние относительно осей X, Y, Z;
- Поворачивать модель на заданный угол относительно своих осей X, Y, Z;
- Масштабировать модель на заданное значение.
- В программе реализован графический пользовательский интерфейс, на базе Qt.
- Программа реализована с использованием паттерна MVC
- Использованы три различных паттерна проектирования (стратегия, мост, посредник).

## Сборка и тестирование

Сборка осуществляется с помощью Makefile,который находится в директории `src`. Функции для вычислений покрыты unit-тестами.

**Цели в Makefile:**

`install` - установить и запустить приложение

`uninstall` - удалить приложение

`clean` - очистить каталог от всех файлов, полученных в результате компиляции

`brew` - установить Homebrew

`lcov` - установить lcov

`test` - запустить тесты функций

`gcov_report` - посмотреть покрытие тестами кода