2 - Triangulation

This one is going to require some time, and visualization skills, so keep that in mind before you get into things too heavily.
One of the cooler things that i ever did was my OBJ 2 SMD converter. it is pretty much only string parsing and outputting in a different format, but the devil is in the details. When i first created the application i was in the middle of HL2 development so i didnt want to waste too much time on one part - triangulation. In creating the application i realized that there was a requirement for the input obj model to have been triangulated. If the user did not provide a triangulated model the application could obviously triangulate the model, and in a few situations i did, but there were some situations that just did not work.
I challenge you, given a 3d model in obj format (i will provide a few) to triangulate it in a methodical approach, allowing for the fact that this is going to be read back in to the application. You can of course put your own spin on things but i did this originally in C, and the application & source code is .
One of the cooler things that i ever did was my OBJ 2 SMD converter. it is pretty much only string parsing and outputting in a different format, but the devil is in the details. When i first created the application i was in the middle of HL2 development so i didnt want to waste too much time on one part - triangulation. In creating the application i realized that there was a requirement for the input obj model to have been triangulated. If the user did not provide a triangulated model the application could obviously triangulate the model, and in a few situations i did, but there were some situations that just did not work.
I challenge you, given a 3d model in obj format (i will provide a few) to triangulate it in a methodical approach, allowing for the fact that this is going to be read back in to the application. You can of course put your own spin on things but i did this originally in C, and the application & source code is .