////////////////////////// // HOW TO RUN // ////////////////////////// 1. EXTRACT the project folder 'SubdivisionSurfaces' 2. COMPILE the program using the command line 'make' 3. RUN the program using the command line 'boilerplate.out' ////////////////////////// // HOW TO USE // ////////////////////////// mouse: Right_Click + drag Pan camera up/down/left/right centered on mesh Left_Click Selects/Unselects a face Left_Click + drag Multiple face selection (adjacest faces) Left_Click + shift + (drag) Multiple face selection (seperate faces) Scroll Wheel Zooms in to and away from the mesh keyboard: [space] apply adaptive incremental catmull-clark subdivision on selected faces [up/down] stretch selected faces outwards/inwards [left/right] pull selected faces upwards/downwards [o] opens a .obj file (requires command line input) [p] saves current mesh to a .obj file (requires command line input) ////////////////////////// // WARNINGS // ////////////////////////// - Boundary selection is not accounted for, operations on selected faces that are on boundary will segfault - There is an edge case we could not find: - after subdividing several faces several times, if you select another region that has new faces that have been subdivided, there is a really small chance of seg fault. and we were unable to consistantly replicate this seg fault to find what the edge case is