I agree totally, it's pointless to copy the same vertices to specific triangles when you can easily just index into the vertex array. In fact this entire model loading routine consists of hierarchies of data structures indexing in to other data structures. I've already got the loading portion working (spent an hour at least debugging and making sure it loads correctly, did this by writing data items to disk over and over and checking and double checking). It gets kind of confusing but I've also finished writing the drawing routine (everything I've done is similar to tutorials, but honest to goodness I didn't copy
All you want is an array of vertices and an array of triangles -- where each vertex is a class with an x, y, and z coordinate and each triangle is a class with the INDICES of three vertices. You say you want to copy the vertex data to each triangle because it's "easier," but it's really just as simple (if not, more simple) to just use an index and you'll save yourself the trouble of having to go back later and changing everything to indices (because it's really pretty important that you do so, 1/3 the memory usage for triangles is pretty big and you get the added efect of being able to translate a vertex in the array and therefor changing the associated vertex in all the triangles. Besides, if you don't index the vertices from within the triangle, then there's really no sense at all in keeping an array of vertices in memory in the first place.