Skip to content

Desktop application in C++ to make sculptures in blocks represented by digital matrices. It allows the user to be able to create a plain text file that contains a sequence of steps to be followed to define properties of a three-dimensional matrix.

Notifications You must be signed in to change notification settings

ErnaneJ/qt-sculptor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qt - Sculptor

BMO - Example Model Coin - Example Model
BMO - example model Coin - example model

Desktop application print

💻 About

Desktop application in C++ to make sculptures in blocks represented by digital matrices. It allows the user to be able to create a plain text file that contains a sequence of steps to be followed to define properties of a three-dimensional matrix. The properties contain specifications for coordinates in the three-dimensional plane and color, with added transparency, for the elements. The built model can be visualized with the help of visualization software such as GeomView or Meshlab.

📑 Docs

Access the documentation for using the Sculptor class here.

📁 Features

  • Color manipulation in the RGBA model with real-time picker preview;
  • Different ways to design sculptures, among them;
    • Application and removal of a single voxel;
    • Application and removal of a box, with dynamic dimensions, of voxels composed in space;
    • Application and removal of a sphere, with dynamic dimensions, of voxels composed in space;
    • Application and removal of an ellipse, with dynamic dimensions, of voxels composed in space;
  • Selection of viewing planes:
    • XY
    • YZ
    • XZ
  • Shortcuts for opening the sculpture produced in flattened visualization systems for three-dimensional objects in off format:
  • Dynamic alteration of the sculpture's dimensions;
  • Sculpture conceptualization file loading. (its use is described in the section below);
  • Dynamic visualization on the plane by changing the depth axis;

🗃️ Conceptualization files

  • The system has a strong feature to read figures recorded in a file and draw them according to the present instructions. The file can contain the following instructions.
  • The file will contain several of these lines, each one containing an instruction orienting the type of drawing to be carried out in the sequence. At the end, the program will read this file and create an output file in OFF format containing the design conceptualized in the provided file.
Code What it does
dim largura altura profundidade Defines the dimensions of the sculpture.

Ex.: dim 60 40 55
putvoxel x y z r g b a Draw a voxel at position (x,y,z) with color r,g,b and a.

Ex.: putvoxel 5 5 10 1.0 0.8 0.4 0.3
cutvoxel x y z Deletes a voxel at position (x,y,z) with color r,g,b and a.

Ex.: cutvoxel 5 5 10
putbox xi xf yi yf zi zf r g b a Draws a parallelepiped delimited by x belonging to (xi, xf), y belonging to (yi, yf) and z belonging to (zi, z1) with the color r, g, b and a.

Ex.: putbox 10 15 12 33 1 8 0.4 0.5 0.8 1
cutbox xi xf yi yf zi zf Deletes a parallelepiped delimited by x belonging to (xi, xf), y belonging to (yi, yf) and z belonging to (zi, z1).

Ex.: cutbox 10 15 12 33 1 8
putsphere x_center y_center z_center radius r g b a Draws a sphere with center at point (x_center, y_center, z_center), specified radius and color r, g, b and a.

Ex.: putsphere 10 10 5 3 1.0 1.0 0.5 0.3
cutsphere x_center y_center z_center radius Deletes a sphere with center at the specified point (x_center, y_center, z_center), radius.

Ex.: cutsphere 10 10 5 3
putellipsoid x_center y_center z_center x_radius y_radius z_radius r g b a Draws an ellipsoid with center at point (x_center, y_center, z_center), specified radii (x_radius, y_radius, z_radius) and color r,g,b and a.

Ex.: putellipsoid 10 10 5 3 4 5 1.0 0.5 0.9 0.4
cutellipsoid x_center y_center z_center x_radius y_radius z_radius Deletes an ellipsoid with center at point (x_center, y_center, z_center) and specified radius (x_radius, y_radius, z_radius).

Ex.: cutellipsoid 10 10 5 3 4 5

⚙️ Running and/or contribute

  • Fork this repository:
  • Create a new branch:
    $ git branch -b <branch_name>
  • Run in development mode in qt Creator:
  • Develop....... 🤯🚀

After your amazing contribution is complete, open a Pull Request which I will review!

* Correctly use the configuration files to run and/or develop. You will find the models here.


Developed with ❤ by Ernane Ferreira. 👋🏻
Encouraged and idealized in semester 2022.1 by the teacher Agostinho Brito Junior.
Federal University of Rio Grande do Norte - Department of Computer Engineering and Automation.

About

Desktop application in C++ to make sculptures in blocks represented by digital matrices. It allows the user to be able to create a plain text file that contains a sequence of steps to be followed to define properties of a three-dimensional matrix.

Topics

Resources

Stars

Watchers

Forks