| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- #include "MathUtils.h"
- #include "LuaStack.h"
- #include "LuaEnvironment.h"
- namespace crown
- {
- extern "C"
- {
- int32_t math_deg_to_rad(lua_State* L)
- {
- LuaStack stack(L);
- float deg = stack.get_float(1);
- stack.push_float(math::deg_to_rad(deg));
- return 1;
- }
- int32_t math_rad_to_deg(lua_State* L)
- {
- LuaStack stack(L);
- float rad = stack.get_float(1);
- stack.push_float(math::rad_to_deg(rad));
- return 1;
- }
- int32_t math_next_pow_2(lua_State* L)
- {
- LuaStack stack(L);
- uint32_t x = stack.get_int(1);
- stack.push_int(math::next_pow_2(x));
- return 1;
- }
- int32_t math_is_pow_2(lua_State* L)
- {
- LuaStack stack(L);
- uint32_t x = stack.get_int(1);
- stack.push_bool(math::is_pow_2(x));
- return 1;
- }
- int32_t math_ceil(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- stack.push_float(math::ceil(x));
- return 1;
- }
- int32_t math_floor(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- stack.push_float(math::floor(x));
- return 1;
- }
- int32_t math_sqrt(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- stack.push_float(math::sqrt(x));
- return 1;
- }
- int32_t math_inv_sqrt(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- stack.push_float(math::inv_sqrt(x));
- return 1;
- }
- int32_t math_sin(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- stack.push_float(math::sin(x));
- return 1;
- }
- int32_t math_cos(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- stack.push_float(math::cos(x));
- return 1;
- }
- int32_t math_asin(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- stack.push_float(math::asin(x));
- return 1;
- }
- int32_t math_acos(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- stack.push_float(math::acos(x));
- return 1;
- }
- int32_t math_tan(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- stack.push_float(math::tan(x));
- return 1;
- }
- int32_t math_atan2(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- float y = stack.get_float(2);
- stack.push_float(math::atan2(x, y));
- return 1;
- }
- int32_t math_abs(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- stack.push_float(math::abs(x));
- return 1;
- }
- int32_t math_fmod(lua_State* L)
- {
- LuaStack stack(L);
- float x = stack.get_float(1);
- float y = stack.get_float(2);
- stack.push_float(math::fmod(x, y));
- return 1;
- }
- } // extern "C"
- void load_math(LuaEnvironment& env)
- {
- env.load_module_function("Math", "deg_to_rad", math_deg_to_rad);
- env.load_module_function("Math", "rad_to_deg", math_rad_to_deg);
- env.load_module_function("Math", "next_pow_2", math_next_pow_2);
- env.load_module_function("Math", "is_pow_2", math_is_pow_2);
- env.load_module_function("Math", "ceil", math_ceil);
- env.load_module_function("Math", "floor", math_floor);
- env.load_module_function("Math", "sqrt", math_sqrt);
- env.load_module_function("Math", "inv_sqrt", math_inv_sqrt);
- env.load_module_function("Math", "sin", math_sin);
- env.load_module_function("Math", "cos", math_cos);
- env.load_module_function("Math", "asin", math_asin);
- env.load_module_function("Math", "acos", math_acos);
- env.load_module_function("Math", "tan", math_tan);
- env.load_module_function("Math", "atan2", math_atan2);
- env.load_module_function("Math", "abs", math_abs);
- env.load_module_function("Math", "fmod", math_fmod);
- }
- } // namespace crown
|