summaryrefslogtreecommitdiff
path: root/src/glm/glm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/glm/glm.h')
-rw-r--r--src/glm/glm.h92
1 files changed, 83 insertions, 9 deletions
diff --git a/src/glm/glm.h b/src/glm/glm.h
index 8bcf7cc..b331d37 100644
--- a/src/glm/glm.h
+++ b/src/glm/glm.h
@@ -4,17 +4,91 @@
#include <lua.h>
-extern const char *vec3_tname;
-extern const char *mat4_tname;
+extern const char *glm_mat2_tname;
+extern const char *glm_mat3_tname;
+extern const char *glm_mat4_tname;
+extern const char *glm_vec2_tname;
+extern const char *glm_vec3_tname;
+extern const char *glm_vec4_tname;
-void setup_glm(lua_State *L, int honey_index);
-void setup_vec3(lua_State *L, int glm_tbl);
-void setup_mat4(lua_State *L, int glm_tbl);
-void setup_transform(lua_State *L, int glm_tbl);
-void setup_camera(lua_State *L, int glm_tbl);
+#define GLM_FUNCTIONS \
+ /* 3d affine transforms */ \
+ X("decompose", glm_decompose_bind) \
+ X("decompose_rs", glm_decompose_rs_bind) \
+ X("decompose_scalev", glm_decompose_scalev_bind) \
+ X("rotate", glm_rotate_bind) \
+ X("rotate_at", glm_rotate_at_bind) \
+ X("rotate_atm", glm_rotate_atm_bind) \
+ X("rotate_make", glm_rotate_make_bind) \
+ X("rotate_x", glm_rotate_x_bind) \
+ X("rotate_y", glm_rotate_y_bind) \
+ X("rotate_z", glm_rotate_z_bind) \
+ X("scale", glm_scale_bind) \
+ X("scale_make", glm_scale_make_bind) \
+ X("scale_to", glm_scale_to_bind) \
+ X("scale_uni", glm_scale_uni_bind) \
+ X("translate", glm_translate_bind) \
+ X("translate_make", glm_translate_make_bind) \
+ X("translate_to", glm_translate_to_bind) \
+ X("translate_x", glm_translate_x_bind) \
+ X("translate_y", glm_translate_y_bind) \
+ X("translate_z", glm_translate_z_bind) \
+ X("uniscaled", glm_uniscaled_bind) \
+\
+ /* vec3 */ \
+ X("vec3_create", glm_vec3_create) \
+ X("vec3_set", glm_vec3_set) \
+ X("vec3_get", glm_vec3_get) \
+ X("vec3", glm_vec3_bind) \
+ X("vec3_copy", glm_vec3_copy_bind) \
+ X("vec3_zero", glm_vec3_zero_bind) \
+ X("vec3_one", glm_vec3_one_bind) \
+ X("vec3_dot", glm_vec3_dot_bind) \
+ X("vec3_norm2", glm_vec3_norm2_bind) \
+ X("vec3_norm", glm_vec3_norm_bind) \
+ X("vec3_add", glm_vec3_add_bind) \
+ X("vec3_adds", glm_vec3_adds_bind) \
+ X("vec3_sub", glm_vec3_sub_bind) \
+ X("vec3_subs", glm_vec3_subs_bind) \
+ X("vec3_mul", glm_vec3_mul_bind) \
+ X("vec3_scale", glm_vec3_scale_bind) \
+ X("vec3_scale_as", glm_vec3_scale_as_bind) \
+ X("vec3_div", glm_vec3_div_bind) \
+ X("vec3_divs", glm_vec3_divs_bind) \
+ X("vec3_addadd", glm_vec3_addadd_bind) \
+ X("vec3_subadd", glm_vec3_subadd_bind) \
+ X("vec3_muladd", glm_vec3_muladd_bind) \
+ X("vec3_muladds", glm_vec3_muladds_bind) \
+ X("vec3_maxadd", glm_vec3_maxadd_bind) \
+ X("vec3_minadd", glm_vec3_minadd_bind) \
+ X("vec3_flipsign", glm_vec3_flipsign_bind) \
+ X("vec3_flipsign_to", glm_vec3_flipsign_to_bind) \
+ X("vec3_inv", glm_vec3_inv_bind) \
+ X("vec3_inv_to", glm_vec3_inv_to_bind) \
+ X("vec3_negate", glm_vec3_negate_bind) \
+ X("vec3_negate_to", glm_vec3_negate_to_bind) \
+ X("vec3_normalize", glm_vec3_normalize_bind) \
+ X("vec3_normalize_to", glm_vec3_normalize_to_bind) \
+ X("vec3_cross", glm_vec3_cross_bind) \
+ X("vec3_crossn", glm_vec3_crossn_bind) \
+ X("vec3_distance2", glm_vec3_distance2_bind) \
+ X("vec3_distance", glm_vec3_distance_bind) \
+ X("vec3_angle", glm_vec3_angle_bind) \
+ X("vec3_rotate", glm_vec3_rotate_bind) \
+ X("vec3_rotate_m4", glm_vec3_rotate_m4_bind) \
+ X("vec3_rotate_m3", glm_vec3_rotate_m3_bind) \
+ X("vec3_proj", glm_vec3_proj_bind) \
+ X("vec3_center", glm_vec3_center_bind) \
+ X("vec3_maxv", glm_vec3_maxv_bind) \
+ X("vec3_minv", glm_vec3_minv_bind) \
+ X("vec3_ortho", glm_vec3_ortho_bind) \
+ X("vec3_clamp", glm_vec3_clamp_bind) \
+ X("vec3_lerp", glm_vec3_lerp_bind) \
-void array_get(lua_State *L, int max, float *array, int index);
-void array_set(lua_State *L, int max, float *array, int index, float value);
+
+#define X(name, func) int func(lua_State *L);
+GLM_FUNCTIONS
+#undef X
#endif