Archimedean Solid Builder
summary

This is an interactive program to build Platonic solids ans Archimedean solids.
You can spawn regular polygons and drag them to make constrains on their vertices. When there is enough vertices, they will automatically become a structure in Platonic solids or Archimedean Solid.
The program was written using C++. OpenGL is used.
This is a class project of CS 434 - advanced computer graphics.

operation

You need to compile the program. You need to open the "OpenGLFramework.sln" using Visual Studio 2017 and compile and run.

Spawm and Delete items
Press "3", "4", "5" to spawn regular polygons. "5" means a pentagon, and "0" means 10 sided shape.
Press "D" to delete selected item.

Select
Left click on an item to select a polygon. Click on a selected polygon will select all polygons connected to it.
When holding "Ctrl", you can select/unselect a single polygon.

Move and Rotate
Drag a polygon with left mouse button to move. All connected polygons will move with it.
Drag with right mouse button to rotate the selected item. All connected polygons will rotate with it.

Change camera
Drag with right mouse button with no item selected to rotate the camera.
Besides, scroll mouse middle button to change camera distance to origin. The distance changes exponentially, and has a minimum value of 1.
Notice that the camera movement is not really "change the camera". Instead, it rotate/translate every item. That means if you did some operation, then change camera distance to origin, then undo, the scene will restore to a state where the camera was not changed, but the distance to origin will not be modified by undo. This sometimes cause trouble.

Make Connection
Every vertex have a small white circle. Drag a circle to another makes a connection.
When you try to make a rigid structure, hold "F" will change the orientation. Without holding "F", the green faces will be outside. Holding "F", the red faces will be outside.

Break Connection
If you selected a whole group of connected polygons, all connections will be removed.
If you selected parts of a group of connected polygons, they will split from the whole group, and keep their internal connection.

Undo and Redo
Press "Z" to undo and "W" to redo.
Sometimes it crashes the program.

Copy and paste
Press "C" to copy and press "V" to paste.
Note: When you paste, the pasted things will have exactly the same location as before, and they will overlap with the copied things. You need to mvoe to see the difference.

Save and Load
press "A" to load, "S" to save. The file name is "\OpenGLFramework\scene.txt".
The first line must be the distance between origin and camera.

Below are a list of files of Platonic solids ans Archimedean solids. Click on the image to download the "scene.txt". Replace "\OpenGLFramework\scene.txt" with your downloaded file, then use "Load" to view these objects.