mirror of https://github.com/bjornbytes/lovr.git
lovr.headset.getDirection; Controller:getDirection;
This commit is contained in:
parent
9131c26fab
commit
44be3608a7
|
@ -228,6 +228,19 @@ static int l_lovrHeadsetGetOrientation(lua_State* L) {
|
|||
return 4;
|
||||
}
|
||||
|
||||
static int l_lovrHeadsetGetDirection(lua_State* L) {
|
||||
float x, y, z, angle, ax, ay, az;
|
||||
lovrHeadsetDriver->getPose(&x, &y, &z, &angle, &ax, &ay, &az);
|
||||
float q[4];
|
||||
quat_fromAngleAxis(q, angle, ax, ay, az);
|
||||
float v[3] = { 0.f, 0.f, -1.f };
|
||||
quat_rotate(q, v);
|
||||
lua_pushnumber(L, v[0]);
|
||||
lua_pushnumber(L, v[1]);
|
||||
lua_pushnumber(L, v[2]);
|
||||
return 3;
|
||||
}
|
||||
|
||||
static int l_lovrHeadsetGetVelocity(lua_State* L) {
|
||||
float velocity[3];
|
||||
lovrHeadsetDriver->getVelocity(&velocity[0], &velocity[1], &velocity[2]);
|
||||
|
@ -318,6 +331,7 @@ static const luaL_Reg lovrHeadset[] = {
|
|||
{ "getPose", l_lovrHeadsetGetPose },
|
||||
{ "getPosition", l_lovrHeadsetGetPosition },
|
||||
{ "getOrientation", l_lovrHeadsetGetOrientation },
|
||||
{ "getDirection", l_lovrHeadsetGetDirection },
|
||||
{ "getVelocity", l_lovrHeadsetGetVelocity },
|
||||
{ "getAngularVelocity", l_lovrHeadsetGetAngularVelocity },
|
||||
{ "getControllers", l_lovrHeadsetGetControllers },
|
||||
|
|
|
@ -52,6 +52,20 @@ static int l_lovrControllerGetOrientation(lua_State* L) {
|
|||
return 4;
|
||||
}
|
||||
|
||||
static int l_lovrControllerGetDirection(lua_State* L) {
|
||||
Controller* controller = luax_checktype(L, 1, Controller);
|
||||
float x, y, z, angle, ax, ay, az;
|
||||
lovrHeadsetDriver->controllerGetPose(controller, &x, &y, &z, &angle, &ax, &ay, &az);
|
||||
float q[4];
|
||||
quat_fromAngleAxis(q, angle, ax, ay, az);
|
||||
float v[3] = { 0.f, 0.f, -1.f };
|
||||
quat_rotate(q, v);
|
||||
lua_pushnumber(L, v[0]);
|
||||
lua_pushnumber(L, v[1]);
|
||||
lua_pushnumber(L, v[2]);
|
||||
return 3;
|
||||
}
|
||||
|
||||
static int l_lovrControllerGetVelocity(lua_State* L) {
|
||||
Controller* controller = luax_checktype(L, 1, Controller);
|
||||
float velocity[3];
|
||||
|
@ -121,6 +135,7 @@ const luaL_Reg lovrController[] = {
|
|||
{ "getPose", l_lovrControllerGetPose },
|
||||
{ "getPosition", l_lovrControllerGetPosition },
|
||||
{ "getOrientation", l_lovrControllerGetOrientation },
|
||||
{ "getDirection", l_lovrControllerGetDirection },
|
||||
{ "getVelocity", l_lovrControllerGetVelocity },
|
||||
{ "getAngularVelocity", l_lovrControllerGetAngularVelocity },
|
||||
{ "getAxis", l_lovrControllerGetAxis },
|
||||
|
|
Loading…
Reference in New Issue