update model format
[carveJwlIkooP6JGAAIwe30JlM.git] / common.h
index cc272027b2ce284739915aa51720ebe0ec283bee..afa32fd9fb3e71b488b649fb3ec153ccc49ba744 100644 (file)
--- a/common.h
+++ b/common.h
@@ -5,6 +5,45 @@
 #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
+};
+
+/* 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 */