updated lua bindings

This commit is contained in:
turanszkij
2015-08-30 21:59:34 +02:00
parent 5fbb1b7f0e
commit 33290dd1b7
2 changed files with 39 additions and 0 deletions
+37
View File
@@ -140,6 +140,7 @@ int Vector_BindLua::Transform(lua_State* L)
}
int Vector_BindLua::Dot(lua_State* L)
{
int argc = wiLua::SGetArgCount(L);
@@ -220,6 +221,40 @@ int Vector_BindLua::Subtract(lua_State* L)
wiLua::SError(L, "VectorSubtract(Vector v1,v2) not enough arguments!");
return 0;
}
int Vector_BindLua::Lerp(lua_State* L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 2)
{
Vector_BindLua* v1 = Luna<Vector_BindLua>::lightcheck(L, 1);
Vector_BindLua* v2 = Luna<Vector_BindLua>::lightcheck(L, 2);
float t = wiLua::SGetFloat(L, 3);
if (v1 && v2)
{
Luna<Vector_BindLua>::push(L, new Vector_BindLua(XMVectorLerp(v1->vector, v2->vector, t)));
return 1;
}
}
wiLua::SError(L, "VectorLerp(Vector v1,v2, float t) not enough arguments!");
return 0;
}
int Vector_BindLua::Slerp(lua_State* L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 2)
{
Vector_BindLua* v1 = Luna<Vector_BindLua>::lightcheck(L, 1);
Vector_BindLua* v2 = Luna<Vector_BindLua>::lightcheck(L, 2);
float t = wiLua::SGetFloat(L, 3);
if (v1 && v2)
{
Luna<Vector_BindLua>::push(L, new Vector_BindLua(XMQuaternionSlerp(v1->vector, v2->vector, t)));
return 1;
}
}
wiLua::SError(L, "QuaternionSlerp(Vector v1,v2, float t) not enough arguments!");
return 0;
}
void Vector_BindLua::Bind()
{
@@ -233,6 +268,8 @@ void Vector_BindLua::Bind()
wiLua::GetGlobal()->RegisterFunc("VectorMultiply", Multiply);
wiLua::GetGlobal()->RegisterFunc("VectorDot", Dot);
wiLua::GetGlobal()->RegisterFunc("VectorCross", Cross);
wiLua::GetGlobal()->RegisterFunc("VectorLerp", Lerp);
wiLua::GetGlobal()->RegisterFunc("QuaternionSlerp", Slerp);
}
}
+2
View File
@@ -34,6 +34,8 @@ public:
static int Multiply(lua_State* L);
static int Add(lua_State* L);
static int Subtract(lua_State* L);
static int Lerp(lua_State* L);
static int Slerp(lua_State* L);
static void Bind();