From b2e97d2da3b4233464484e5a2e184d40b167a20a Mon Sep 17 00:00:00 2001 From: Michael Allwright Date: Fri, 8 Nov 2019 16:37:35 +0100 Subject: [PATCH] Fix bug in the positioning sensor control interface (was not compatible with CLuaQuaternion) --- .../ci_positioning_sensor.cpp | 22 +++---------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/src/plugins/robots/generic/control_interface/ci_positioning_sensor.cpp b/src/plugins/robots/generic/control_interface/ci_positioning_sensor.cpp index c3c718a5..0da2219d 100644 --- a/src/plugins/robots/generic/control_interface/ci_positioning_sensor.cpp +++ b/src/plugins/robots/generic/control_interface/ci_positioning_sensor.cpp @@ -37,25 +37,9 @@ namespace argos { #ifdef ARGOS_WITH_LUA void CCI_PositioningSensor::ReadingsToLuaState(lua_State* pt_lua_state) { lua_getfield(pt_lua_state, -1, "positioning"); - lua_getfield(pt_lua_state, -1, "position"); - lua_pushnumber(pt_lua_state, m_sReading.Position.GetX()); - lua_setfield(pt_lua_state, -2, "x"); - lua_pushnumber(pt_lua_state, m_sReading.Position.GetY()); - lua_setfield(pt_lua_state, -2, "y"); - lua_pushnumber(pt_lua_state, m_sReading.Position.GetZ()); - lua_setfield(pt_lua_state, -2, "z"); - m_sReading.Orientation.ToAngleAxis(m_cAngle, m_cAxis); - lua_getfield (pt_lua_state, -2, "orientation"); - lua_pushnumber(pt_lua_state, m_cAngle.GetValue()); - lua_setfield (pt_lua_state, -2, "angle"); - lua_getfield (pt_lua_state, -1, "axis"); - lua_pushnumber(pt_lua_state, m_cAxis.GetX()); - lua_setfield (pt_lua_state, -2, "x"); - lua_pushnumber(pt_lua_state, m_cAxis.GetY()); - lua_setfield (pt_lua_state, -2, "y"); - lua_pushnumber(pt_lua_state, m_cAxis.GetZ()); - lua_setfield (pt_lua_state, -2, "z"); - lua_pop(pt_lua_state, 4); + CLuaUtility::AddToTable(pt_lua_state, "position", m_sReading.Position); + CLuaUtility::AddToTable(pt_lua_state, "orientation", m_sReading.Orientation); + lua_pop(pt_lua_state, 1); } #endif