X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=common.h;h=587c31b551011c3e60f2b1d100bbfdb72b20a8a3;hb=b0a4fb814d794157c55212191df200915ab99515;hp=cc272027b2ce284739915aa51720ebe0ec283bee;hpb=afa80c76d03f5e983092e9d7be33a9102a7ab25e;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/common.h b/common.h index cc27202..587c31b 100644 --- a/common.h +++ b/common.h @@ -5,6 +5,46 @@ #define VG_FRAMEBUFFER_RESIZE 1 #include "vg/vg.h" +/* TODO: he needs a home somewhere */ static float ktimestep = 1.0f/60.0f; +/* TODO: he needs a home somewhere */ +enum classtype +{ + k_classtype_none = 0, + k_classtype_gate = 1, + k_classtype_block = 2, + k_classtype_spawn = 3, + k_classtype_water = 4, + k_classtype_car_path = 5, + k_classtype_instance = 6, + k_classtype_capsule = 7, + k_classtype_route_node = 8, + k_classtype_route = 9, + k_classtype_bone = 10, + k_classtype_skeleton = 11, + k_classtype_skin = 12 +}; + +/* TODO: he needs a home somewhere */ +typedef struct ray_hit ray_hit; +struct ray_hit +{ + float dist; + u32 *tri; + v3f pos, normal; +}; + +/* TODO: he needs a home somewhere */ +static void eval_bezier_time( v3f p0, v3f p1, v3f h0, v3f h1, float t, v3f p ) +{ + float tt = t*t, + ttt = tt*t; + + v3_muls( p1, ttt, p ); + v3_muladds( p, h1, 3.0f*tt -3.0f*ttt, p ); + v3_muladds( p, h0, 3.0f*ttt -6.0f*tt +3.0f*t, p ); + v3_muladds( p, p0, 3.0f*tt -ttt -3.0f*t +1.0f, p ); +} + #endif /* COMMON_H */