5e2f48298dbdafcb43c784d532b87b799f3c794e
[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 };
25
26 /* TODO: he needs a home somewhere */
27 typedef struct ray_hit ray_hit;
28 struct ray_hit
29 {
30 float dist;
31 u32 *tri;
32 v3f pos, normal;
33 };
34
35 /* TODO: he needs a home somewhere */
36 static void eval_bezier_time( v3f p0, v3f p1, v3f h0, v3f h1, float t, v3f p )
37 {
38 float tt = t*t,
39 ttt = tt*t;
40
41 v3_muls( p1, ttt, p );
42 v3_muladds( p, h1, 3.0f*tt -3.0f*ttt, p );
43 v3_muladds( p, h0, 3.0f*ttt -6.0f*tt +3.0f*t, p );
44 v3_muladds( p, p0, 3.0f*tt -ttt -3.0f*t +1.0f, p );
45 }
46
47 #endif /* COMMON_H */