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
- Host: GitHub
- URL: https://github.com/skytecat/3dviewer
- Owner: skytecat
- Created: 2024-09-09T17:56:47.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-02T13:39:35.000Z (about 1 year ago)
- Last Synced: 2025-04-02T14:34:20.249Z (about 1 year ago)
- Language: C++
- Homepage:
- Size: 4.89 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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` - посмотреть покрытие тестами кода