/*
  Simple, slightly functional, OBJ loading code by Jason A. Petrasko
  
  I place this code in the Public Domain.
*/

#ifndef _OBJ_UTILITY_HEADER
#define _OBJ_UTILITY_HEADER

typedef struct _ObjVertex {
     float X, Y, Z;
} ObjVertex;
typedef ObjVertex ObjNormal;

typedef struct _ObjTexCoord {
     float U, V;
} ObjTexCoord;

typedef struct _ObjTriangle {
     int Vertex[3];
     int Normal[3];
     int TexCoord[3];
} ObjTriangle;

typedef struct _ObjModel {
     int NumVertex, NumNormal, NumTexCoord, NumTriangle;

     ObjVertex *VertexArray;
     ObjNormal *NormalArray;
     ObjTexCoord *TexCoordArray;

     ObjTriangle *TriangleArray;
} ObjModel;

ObjModel* ObjLoadModel(char *mem, int sz);
int ObjLoadFile(char *fname, char **Where);

#endif

