Skip to content

SolutionOP/3D_Viewer_C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

3DViewer v1.0

Part 1. 3DViewer

You need to develop a program to visualise 3D wireframe models:

  • The program must be developed in C language of C11 standard using gcc compiler. You can use any additional QT libraries and modules
  • The program code must be located in the src folder
  • The program must be built with Makefile which contains standard set of targets for GNU-programs: all, install, uninstall, clean, dvi, dist, tests, gcov. Installation directory could be arbitrary, except the building one
  • The program must be developed according to the principles of structured programming
  • Prepare full coverage of modules related to model loading and affine transformations with unit-tests
  • There should be only one model on the screen at a time
  • The program must provide the ability to:
    • Load a wireframe model from an obj file (vertices and surfaces list support only).
    • Translate the model by a given distance in relation to the X, Y, Z axes.
    • Rotate the model by a given angle relative to its X, Y, Z axes.
    • Scale the model by a given value.
  • GUI implementation, based on any GUI library with API for C89/C99/C11 (GTK+, Nuklear, raygui, microui, libagar, libui, IUP, LCUI, CEF, Qt, etc.)
  • The graphical user interface must contain:
    • A button to select the model file and a field to output its name.
    • A visualisation area for the wireframe model.
    • Button/buttons and input fields for translating the model.
    • Button/buttons and input fields for rotating the model.
    • Button/buttons and input fields for scaling the model.
    • Information about the uploaded model - file name, number of vertices and edges.

Part 2. Bonus. Settings

  • The program must allow customizing the type of projection (parallel and central)
  • The program must allow setting up the type (solid, dashed), color and thickness of the edges, display method (none, circle, square), color and size of the vertices
  • The program must allow choosing the background color
  • Settings must be saved between program restarts

Part 3. Bonus. Record

  • The program must allow saving the captured (rendered) images as bmp and jpeg files.
  • The program must allow recording small screencasts by a special button - the current custom affine transformation of the loaded object into gif-animation (640x480, 10fps, 5s)

About

Implementation of 3DViewer v1.0.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published