|
|
@@ -744,18 +744,10 @@ static int quaternion_forward(lua_State* L)
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-static int quaternionbox_new(lua_State* L)
|
|
|
+static int quaternion_lerp(lua_State* L)
|
|
|
{
|
|
|
LuaStack stack(L);
|
|
|
-
|
|
|
- if (stack.num_args() == 1)
|
|
|
- stack.push_quaternionbox(stack.get_quaternion(1));
|
|
|
- else
|
|
|
- stack.push_quaternionbox(quaternion(stack.get_float(1)
|
|
|
- , stack.get_float(2)
|
|
|
- , stack.get_float(3)
|
|
|
- , stack.get_float(4)));
|
|
|
-
|
|
|
+ stack.push_quaternion(lerp(stack.get_quaternion(1), stack.get_quaternion(2), stack.get_float(3)));
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
@@ -769,6 +761,21 @@ static int quaternion_to_string(lua_State* L)
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
+static int quaternionbox_new(lua_State* L)
|
|
|
+{
|
|
|
+ LuaStack stack(L);
|
|
|
+
|
|
|
+ if (stack.num_args() == 1)
|
|
|
+ stack.push_quaternionbox(stack.get_quaternion(1));
|
|
|
+ else
|
|
|
+ stack.push_quaternionbox(quaternion(stack.get_float(1)
|
|
|
+ , stack.get_float(2)
|
|
|
+ , stack.get_float(3)
|
|
|
+ , stack.get_float(4)));
|
|
|
+
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
static int quaternionbox_ctor(lua_State* L)
|
|
|
{
|
|
|
LuaStack stack(L);
|
|
|
@@ -1001,6 +1008,7 @@ void load_math(LuaEnvironment& env)
|
|
|
env.load_module_function("Quaternion", "right", quaternion_right);
|
|
|
env.load_module_function("Quaternion", "up", quaternion_up);
|
|
|
env.load_module_function("Quaternion", "forward", quaternion_forward);
|
|
|
+ env.load_module_function("Quaternion", "lerp", quaternion_lerp);
|
|
|
env.load_module_function("Quaternion", "to_string", quaternion_to_string);
|
|
|
|
|
|
env.load_module_constructor("Quaternion", quaternion_ctor);
|