(submit by 31/08/2005)
Your third and final assignment is to experiment with mesh parameterization: you will read a polygonal (you may assume triangular) mesh and compute a conformal planar embedding of the mesh inside the unit square [0,1][0,1]. You may assume that the mesh is a 2-manifold (either closed or with a single boundary loop) with genus 0. For closed meshes you will need to come up with a way to introduce a seam that will enable the embedding. You will also need to come up with an algorithm for assigning the parametric coordinates of the boundary points. To visually demonstrate the parameterization you computed, your program should be able to display the flattened mesh, as well as show the object texture-mapped with a checkerboard pattern.
To aid you in this assignment you are provided with code that solves a sparse symmetric linear system. The code is available under ~danix/public/atcg2005/ex3. The actual solving is done using the TAUCS library. To make this library easier to use for you, I wrote a simple C++ wrapper that makes it very easy to construct and solve symmetric linear systems. The interface file is symLinSystem.h; it's fairly self-explanatory, and there's an example in mytest.cpp. The only thing to note is that the interface enforces symmetry in the matrix: thus, whenever you refer to the (i,j)-th or the (j,i)-th element, you refer to the same location.
You will also need code for reading in the mesh, performing various operations on it, and displaying it. You may use the code that you wrote for your assignments in the basic CG course, or you may use the code in main.cpp instead (however, it's fairly crude, and does not provide everything you need: for example, there's currently no support for boundaries in it).
Good Luck!