fix jitter while moving

This commit is contained in:
Robin Appelman
2018-03-19 01:47:10 +01:00
parent f9cf2880cd
commit a185c7a318
@@ -207,13 +207,13 @@ void MoveCenterTabController::eventLoopTick(vr::ETrackingUniverseOrigin universe
vr::VRControllerState_t state; vr::VRControllerState_t state;
if (vr::VRSystem()->GetControllerState(rightId, &state, sizeof(vr::VRControllerState_t))) { if (vr::VRSystem()->GetControllerState(rightId, &state, sizeof(vr::VRControllerState_t))) {
if (state.ulButtonPressed & vr::ButtonMaskFromId(vr::k_EButton_ApplicationMenu)) { if (state.ulButtonPressed & vr::ButtonMaskFromId(vr::k_EButton_ApplicationMenu)) {
float newControllerX = rightPose->mDeviceToAbsoluteTracking.m[0][3]; float newControllerX = rightPose->mDeviceToAbsoluteTracking.m[0][3] + m_offsetX;
float newControllerY = rightPose->mDeviceToAbsoluteTracking.m[1][3]; float newControllerY= rightPose->mDeviceToAbsoluteTracking.m[1][3] + m_offsetY;
float newControllerZ = rightPose->mDeviceToAbsoluteTracking.m[2][3]; float newControllerZ= rightPose->mDeviceToAbsoluteTracking.m[2][3] + m_offsetZ;
if (m_moveActive) { if (m_moveActive) {
float diffX = newControllerX - m_lastControllerX; float diffX = (newControllerX - m_lastControllerX);
float diffY = newControllerY - m_lastControllerY; float diffY = (newControllerY - m_lastControllerY);
float diffZ = newControllerZ - m_lastControllerZ; float diffZ = (newControllerZ - m_lastControllerZ);
vr::VRChaperoneSetup()->RevertWorkingCopy(); vr::VRChaperoneSetup()->RevertWorkingCopy();
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 0, diffX, m_adjustChaperone, false); parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 0, diffX, m_adjustChaperone, false);
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 1, diffY, m_adjustChaperone, false); parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 1, diffY, m_adjustChaperone, false);