![]() |
3D Model Viewer
3D Model Viewer from Group 3
|
A 3D model viewer designed to run on Windows, MacOS and Linux able to render and perform basic manipulation to .stl files and custom .mod files.
Project Documentation and GitHub
The aim of this project is described below. As stated in the task sheet. Your team has been asked by a client to develop and 3D model viewer that will form part of a larger CAD system
The repository was set up during the lab sessions, and contains 3 branches:
The first branch is the Main branch, which contains:
This “Main” version of the program is the release-ready model viewer program. It has error prevention built in to prevent crashes, and has Doxgen and other comments built in. It allows full functionality to render, filter and edit both built in models and STL files, in multiple tabs. The MOD file is built as part of the project, however it is not implemented in the program as there was not enough time. The “main” program uses hard-coded methods to run the program, meaning adding new types of models to the program can be difficult. This is why the version two prototype was made, and is in the “Version2” branch, nearly complete.
The second branch is the “Version2” branch. This branch contains:
This version is a much better solution to the problem, with object oriented programming providing a solution to making the program scalable. This version of the program, however, is less stable as it was achieved late into the process and there was not enough time to fully work out bugs in the code and to add doxygen documentation for it. The decision was therefore made to use the stable version as the “Main program”, however the OOP program was given its own branch so it could be demonstrated that the group understood and made considerable progress towards making the program scalable. The OOP program had begun to solve having an unlimited number of tabs, an unlimited number of rendered objects of all types (within reason) and keeping track of the filters applied to objects without using the hardcoding methods employed in the “Main program”. This was done with classes, using arrays of these classes and member functions to remove the reliance on the hard-coded methods which limited the “Main program”.
The third branch is the “gh-pages” branch which contains: