view3d

annotate src/scene.h @ 3:7e982a61852a

lights and shit
author John Tsiombikas <nuclear@mutantstargoat.com>
date Thu, 19 Jan 2012 06:15:10 +0200
parents 7650e941805c
children 5562a637e5aa
rev   line source
nuclear@1 1 #ifndef SCENE_H_
nuclear@1 2 #define SCENE_H_
nuclear@1 3
nuclear@1 4 struct aabb {
nuclear@1 5 float min[3], max[3];
nuclear@1 6 };
nuclear@1 7
nuclear@1 8 struct material {
nuclear@1 9 float kd[4];
nuclear@1 10 float ks[4];
nuclear@1 11 float shin;
nuclear@1 12 unsigned int tex;
nuclear@1 13 };
nuclear@1 14
nuclear@1 15 struct mesh {
nuclear@1 16 unsigned int vert_buf, norm_buf, tex_buf, idx_buf;
nuclear@1 17 int num_verts, num_faces;
nuclear@1 18
nuclear@1 19 struct material mat;
nuclear@1 20
nuclear@1 21 struct aabb bbox;
nuclear@1 22
nuclear@1 23 struct mesh *next;
nuclear@1 24 };
nuclear@1 25
nuclear@1 26 struct light {
nuclear@1 27 float pos[4];
nuclear@1 28 float color[4];
nuclear@1 29
nuclear@3 30 float cone_inner, cone_outer;
nuclear@3 31
nuclear@3 32 float att[3];
nuclear@3 33
nuclear@1 34 struct light *next;
nuclear@1 35 };
nuclear@1 36
nuclear@1 37 struct scene {
nuclear@1 38 struct mesh *meshes;
nuclear@1 39 struct light *lights;
nuclear@1 40
nuclear@1 41 struct aabb bbox;
nuclear@1 42 };
nuclear@1 43
nuclear@1 44
nuclear@1 45 int load_scene(struct scene *scn, const char *fname);
nuclear@1 46
nuclear@1 47 void render_scene(struct scene *scn);
nuclear@3 48 void render_mesh(struct mesh *m, int pass);
nuclear@1 49
nuclear@1 50 #endif /* SCENE_H_ */