Global:
--- lstVerticies [x,y,z,normal,uv,...]
--- listMaterialFaces [vertID1, vertID2, vertID3] // indexes into global lstVerticies
per Object:
--- name
--- Face Count // number of elements in lstFaces
--- lstFaces [vertID1, vertID2, vertID3] // indexes into global lstVerticies
wanted per object:
--- name
--- lstVerticies [x,y,z,]
--- listFaces [vertID1, vertID2, vertID3] // indexes into local lstVerticies
--- listUVs [u,v,w]
for each object:
--- initialise a counter 'N' to 0
--- create an array 'A' size length as global lstVerticies, assign a value of 0 to each entry in array
--- for each face:
--- --- for each id:
--- --- --- look up A[id]
--- --- --- if 0:
--- --- --- --- increment N
--- --- --- --- set A[id] to N
--- --- --- --- set object's lstVert[N] to the x,y,z from global lstVerticies
--- --- --- --- set object's listUVs [N] to the u,v,w from global lstVerticies
--- --- --- --- set id to N
--- --- --- else
--- --- --- --- set id to A[id]
--- --- --- end if