update model format
[carveJwlIkooP6JGAAIwe30JlM.git] / common.h
1 #ifndef COMMON_H
2 #define COMMON_H
3
4 #define VG_3D
5 #define VG_FRAMEBUFFER_RESIZE 1
6 #include "vg/vg.h"
7
8 /* TODO: he needs a home somewhere */
9 static float ktimestep = 1.0f/60.0f;
10
11 /* TODO: he needs a home somewhere */
12 enum classtype
13 {
14 k_classtype_none = 0,
15 k_classtype_gate = 1,
16 k_classtype_block = 2,
17 k_classtype_spawn = 3,
18 k_classtype_water = 4,
19 k_classtype_car_path = 5,
20 k_classtype_instance = 6,
21 k_classtype_capsule = 7,
22 k_classtype_route_node = 8,
23 k_classtype_route = 9,
24 k_classtype_bone = 10,
25 k_classtype_skeleton = 11
26 };
27
28 /* TODO: he needs a home somewhere */
29 typedef struct ray_hit ray_hit;
30 struct ray_hit
31 {
32 float dist;
33 u32 *tri;
34 v3f pos, normal;
35 };
36
37 /* TODO: he needs a home somewhere */
38 static void eval_bezier_time( v3f p0, v3f p1, v3f h0, v3f h1, float t, v3f p )
39 {
40 float tt = t*t,
41 ttt = tt*t;
42
43 v3_muls( p1, ttt, p );
44 v3_muladds( p, h1, 3.0f*tt -3.0f*ttt, p );
45 v3_muladds( p, h0, 3.0f*ttt -6.0f*tt +3.0f*t, p );
46 v3_muladds( p, p0, 3.0f*tt -ttt -3.0f*t +1.0f, p );
47 }
48
49 #endif /* COMMON_H */