#ifndef OBJ_LOADER_H #define OBJ_LOADER_H #include "obj_parser.h" class objLoader { public: objLoader() {} ~objLoader() { delete_obj_data(&data); } obj_vector **vertexList; obj_vector **normalList; obj_vector **textureList; obj_face **faceList; obj_sphere **sphereList; obj_plane **planeList; obj_light_point **lightPointList; obj_light_quad **lightQuadList; obj_light_disc **lightDiscList; obj_material **materialList; int vertexCount; int normalCount; int textureCount; int faceCount; int sphereCount; int planeCount; int lightPointCount; int lightQuadCount; int lightDiscCount; int materialCount; obj_camera *camera; int load(const char *filename) { int no_error = 1; no_error = parse_obj_scene(&data, filename); if(no_error) { this->vertexCount = data.vertex_count; this->normalCount = data.vertex_normal_count; this->textureCount = data.vertex_texture_count; this->faceCount = data.face_count; this->sphereCount = data.sphere_count; this->planeCount = data.plane_count; this->lightPointCount = data.light_point_count; this->lightDiscCount = data.light_disc_count; this->lightQuadCount = data.light_quad_count; this->materialCount = data.material_count; this->vertexList = data.vertex_list; this->normalList = data.vertex_normal_list; this->textureList = data.vertex_texture_list; this->faceList = data.face_list; this->sphereList = data.sphere_list; this->planeList = data.plane_list; this->lightPointList = data.light_point_list; this->lightDiscList = data.light_disc_list; this->lightQuadList = data.light_quad_list; this->materialList = data.material_list; this->camera = data.camera; } return no_error; } private: obj_scene_data data; }; #endif