Catmull-Clark Subdivision
A mesh editor in C++, Qt, and OpenGL, built on a hand-written half-edge data structure. It loads polygon meshes from OBJ files, edits vertices and faces, and smooths any closed mesh with Catmull-Clark subdivision. Each level adds face points and edge points, moves the original vertices, and rebuilds every face as quads. Four levels take the cow from 5,804 faces to 1,114,368, in about 6.2 seconds of subdivision time in a debug build, with time growing almost in step with mesh size.
Open the write-up