A simple graphical user interface for displaying simple mesh files (.smf). The interface uses GLUI, which has the advantage of being window-system independent. This is great because I generally program in a Windows environment, but my professors and teacher assistants will require submitted programs to also run in a Linux environment. Along with opening mesh files and saving them, the program also allows for displaying meshes to be flat shaded, smooth shaded, wireframe, shaded with mesh edges displayed and points. Additionally the user can rotate, zoom and translate the mesh.
The other part of this program is the quadric-based mesh decimation via multiple choice algorithm. The algorithm is based on Surface Simplification Using Quadric Error Metrics, but has a slight alteration to the selection of which vertex pair to collapse. Instead of maintaining a min-heap data structure to find the edge with the minimum cost as described in the paper, I use a multiple choice scheme which simplifies implementation, reduces memory overhead and provides better performance with little loss in quality. More about the multiple choice scheme can be found in this paper. In my implementation I assume that the input mesh is a connected, closed manifold triangle mesh. For the user interface, the user simply selects how many edges they want decimated, and hits the decimate button.