summaryrefslogtreecommitdiffstats
path: root/obj.c
diff options
context:
space:
mode:
Diffstat (limited to 'obj.c')
-rw-r--r--obj.c32
1 files changed, 23 insertions, 9 deletions
diff --git a/obj.c b/obj.c
index 9ab4a6a..e60aa7d 100644
--- a/obj.c
+++ b/obj.c
@@ -55,17 +55,22 @@ ObjModel* ObjLoadModel(char *memory, size_t size)
&ret->VertexArray[nV].z);
nV++;
}
+ /* quad */
else if (memcmp(p, "f", 1) == 0) /* or *p == 'f' */
{
- sscanf(p, "f %d/%d/%d %d/%d/%d %d/%d/%d", &ret->FaceArray[nF].Vertex[0],
- &ret->FaceArray[nF].TexCoord[0],
- &ret->FaceArray[nF].Normal[0],
- &ret->FaceArray[nF].Vertex[1],
- &ret->FaceArray[nF].TexCoord[1],
- &ret->FaceArray[nF].Normal[1],
- &ret->FaceArray[nF].Vertex[2],
- &ret->FaceArray[nF].TexCoord[2],
- &ret->FaceArray[nF].Normal[2]);
+ sscanf(p, "f %d/%d/%d %d/%d/%d %d/%d/%d %d/%d/%d",
+ &ret->FaceArray[nF].Vertex[0],
+ &ret->FaceArray[nF].TexCoord[0],
+ &ret->FaceArray[nF].Normal[0],
+ &ret->FaceArray[nF].Vertex[1],
+ &ret->FaceArray[nF].TexCoord[1],
+ &ret->FaceArray[nF].Normal[1],
+ &ret->FaceArray[nF].Vertex[2],
+ &ret->FaceArray[nF].TexCoord[2],
+ &ret->FaceArray[nF].Normal[2],
+ &ret->FaceArray[nF].Vertex[3],
+ &ret->FaceArray[nF].TexCoord[3],
+ &ret->FaceArray[nF].Normal[3]);
nF++;
}
/* seek to a newline */
@@ -109,3 +114,12 @@ size_t ObjLoadFile(char *szFileName, char **memory)
return bytes;
}
+void ObjFree(ObjModel *model)
+{
+ free(model->NormalArray);
+ free(model->TexCoordArray);
+ free(model->FaceArray);
+ free(model->VertexArray);
+ free(model);
+}
+