Implemented in order to study the QT framework, pattern design, reading 3D objects from a file, rendering in OpenGL.
The 3D viewer implements an application data separation scheme - MVC
Implemented only for linux and macOS systems.
The norms of [Google style c++] have been observed(https://google.github.io/styleguide/cppguide.html )
Implemented by Marcus
It is represented by inherited classes from the QT
libraries for processing button signals and displaying information and QOpenGLWidget for displaying an object
The model is represented by various files, the main of which is - model.cc
. This file is needed to pull polygons with vertices from the file and link between all other files.
The reading model from the file is broken according to the [facade] pattern(https://refactoring.guru/ru/design-patterns/facade )
model_afine_transfer.cc
- is divided into files, where inside itself, it uses the [strategy] pattern to rotate objects in space(#https://refactoring.guru/ru/design-patterns/strategy )
Implemented as a class calculator_controller.cc
, according to the pattern singleton. It is needed to link the code between the view and the model, it also catches exceptions from polish_notation.cc
.
The assembly is carried out using the Makefile
, it is enough to be in this directory and write make install
in the terminal, it will create a folder build
and it will contain an application ready to run.