nuclear@1: #ifndef SCENE_H_ nuclear@1: #define SCENE_H_ nuclear@1: nuclear@1: struct aabb { nuclear@1: float min[3], max[3]; nuclear@1: }; nuclear@1: nuclear@1: struct material { nuclear@1: float kd[4]; nuclear@1: float ks[4]; nuclear@1: float shin; nuclear@1: unsigned int tex; nuclear@1: }; nuclear@1: nuclear@1: struct mesh { nuclear@1: unsigned int vert_buf, norm_buf, tex_buf, idx_buf; nuclear@1: int num_verts, num_faces; nuclear@1: nuclear@1: struct material mat; nuclear@1: nuclear@1: struct aabb bbox; nuclear@1: nuclear@1: struct mesh *next; nuclear@1: }; nuclear@1: nuclear@1: struct light { nuclear@1: float pos[4]; nuclear@1: float color[4]; nuclear@1: nuclear@1: struct light *next; nuclear@1: }; nuclear@1: nuclear@1: struct scene { nuclear@1: struct mesh *meshes; nuclear@1: struct light *lights; nuclear@1: nuclear@1: struct aabb bbox; nuclear@1: }; nuclear@1: nuclear@1: nuclear@1: int load_scene(struct scene *scn, const char *fname); nuclear@1: nuclear@1: void render_scene(struct scene *scn); nuclear@1: void render_mesh(struct mesh *m); nuclear@1: nuclear@1: #endif /* SCENE_H_ */