Esempio n. 1
0
static int vector3_crossproduct (lua_State *L)
{
	Vector3 *v1 = (Vector3*)lua_touserdata(L, 1);
	Vector3 *v2 = (Vector3*)lua_touserdata(L, 2);
	push_vector3(L, v1->CrossProduct(*v2));
	return 1;
}
Esempio n. 2
0
static int vector3_div (lua_State *L)
{
	Vector3 *v = (Vector3*)lua_touserdata(L, 1);
	float s = luaL_checknumber(L, 2);
	push_vector3(L, (*v)/s);
	return 1;
}
Esempio n. 3
0
static int vector3_sub (lua_State *L)
{
	Vector3 *v1 = (Vector3*)lua_touserdata(L, 1);
	Vector3 *v2 = (Vector3*)lua_touserdata(L, 2);
	push_vector3(L, (*v1)-(*v2));
	return 1;
}
Esempio n. 4
0
void LuaStack::push_vector2(const Vector2& v)
{
	Vector3 a;
	a.x = v.x;
	a.y = v.y;
	a.z = 0.0f;
	push_vector3(a);
}
Esempio n. 5
0
/* Constructor and methods
 * */
static int vector3_new(lua_State *L)
{
	Vector3 v;
	if (lua_gettop(L)==3) {
		v.x = luaL_checknumber(L, 1);
		v.y = luaL_checknumber(L, 2);
		v.z = luaL_checknumber(L, 3);
	}
	else if (lua_gettop(L)==1) {
		Vector3 o = check_vector3(L, 1);
		v = o;
	}
	push_vector3(L, v);
	return 1;
}
Esempio n. 6
0
static int vector3_getnormalized (lua_State *L)
{
	Vector3 *v1 = (Vector3*)lua_touserdata(L, 1);
	push_vector3(L, v1->GetNormalized());
	return 1;
}
Esempio n. 7
0
static int vector3_unm (lua_State *L)
{
	Vector3 *v = (Vector3*)lua_touserdata(L, 1);
	push_vector3(L, -(*v));
	return 1;
}