From 0f2f956b2e5b761a81829c6f0f6a628d1c7bb5e8 Mon Sep 17 00:00:00 2001 From: Kung-vr Date: Sun, 3 Mar 2019 01:02:53 +0900 Subject: [PATCH] Manual Merge Cleanup --- build_scripts/qt/resources.pri | 6 +++ build_scripts/qt/sources.pri | 1 + .../MoveCenterTabController.cpp | 38 +++++++++++-------- src/utils/quaternion.h | 29 ++++++++------ 4 files changed, 47 insertions(+), 27 deletions(-) diff --git a/build_scripts/qt/resources.pri b/build_scripts/qt/resources.pri index 19a288f..0e9b3bc 100644 --- a/build_scripts/qt/resources.pri +++ b/build_scripts/qt/resources.pri @@ -18,6 +18,12 @@ DISTFILES += \ src/res/qml/ChaperoneWarningsPage.qml \ src/res/qml/FixFloorPage.qml \ src/res/qml/PlayspacePage.qml \ + src/res/qml/motion_page/* \ + src/res/qml/motion_page/gravity/* \ + src/res/qml/motion_page/height_toggle/* \ + src/res/qml/motion_page/snap_turn/* \ + src/res/qml/motion_page/universe_drag/* \ + src/res/qml/motion_page/universe_turn/* \ src/res/qml/RevivePage.qml \ src/res/qml/RootPage.qml \ src/res/qml/SettingsPage.qml \ diff --git a/build_scripts/qt/sources.pri b/build_scripts/qt/sources.pri index 1ade168..da65131 100644 --- a/build_scripts/qt/sources.pri +++ b/build_scripts/qt/sources.pri @@ -31,6 +31,7 @@ HEADERS += src/overlaycontroller.h \ src/tabcontrollers/KeyboardInput.h \ src/utils/Matrix.h \ src/utils/ChaperoneUtils.h \ + src/utils/quaternion.h \ src/tabcontrollers/audiomanager/AudioManagerDummy.h \ src/tabcontrollers/keyboardinput/KeyboardInputDummy.h \ src/overlaycontroller/openvr_init.h \ diff --git a/src/tabcontrollers/MoveCenterTabController.cpp b/src/tabcontrollers/MoveCenterTabController.cpp index d0eafc6..aa8bb06 100644 --- a/src/tabcontrollers/MoveCenterTabController.cpp +++ b/src/tabcontrollers/MoveCenterTabController.cpp @@ -187,10 +187,12 @@ void MoveCenterTabController::setRotation( int value, bool notify ) = devicePosesForRot[0].mDeviceToAbsoluteTracking; // Set up xyz coordinate values from pose matrix. - double oldHmdXyz[3] - = { oldHmdPos.m[0][3], oldHmdPos.m[1][3], oldHmdPos.m[2][3] }; - double newHmdXyz[3] - = { oldHmdPos.m[0][3], oldHmdPos.m[1][3], oldHmdPos.m[2][3] }; + double oldHmdXyz[3] = { static_cast( oldHmdPos.m[0][3] ), + static_cast( oldHmdPos.m[1][3] ), + static_cast( oldHmdPos.m[2][3] ) }; + double newHmdXyz[3] = { static_cast( oldHmdPos.m[0][3] ), + static_cast( oldHmdPos.m[1][3] ), + static_cast( oldHmdPos.m[2][3] ) }; // Convert oldHmdXyz into un-rotated coordinates. double oldAngle = -m_rotation * k_centidegreesToRadians; @@ -281,9 +283,9 @@ void MoveCenterTabController::setAdjustChaperone( bool value, bool notify ) { double angle = m_rotation * k_centidegreesToRadians; double offsetdir = m_adjustChaperone ? -1.0 : 1.0; - double offset[3] = { offsetdir * m_offsetX, - offsetdir * m_offsetY, - offsetdir * m_offsetZ }; + double offset[3] = { offsetdir * static_cast( m_offsetX ), + offsetdir * static_cast( m_offsetY ), + offsetdir * static_cast( m_offsetZ ) }; rotateCoordinates( offset, angle ); // We're done with calculations so down-cast to float for @@ -505,7 +507,7 @@ void MoveCenterTabController::modOffsetX( float value, bool notify ) if ( !m_lockXToggle ) { double angle = m_rotation * k_centidegreesToRadians; - double offset[3] = { value, 0, 0 }; + double offset[3] = { static_cast( value ), 0, 0 }; rotateCoordinates( offset, angle ); float offsetFloat[3] = { static_cast( offset[0] ), static_cast( offset[1] ), @@ -544,7 +546,7 @@ void MoveCenterTabController::modOffsetZ( float value, bool notify ) if ( !m_lockZToggle ) { double angle = m_rotation * k_centidegreesToRadians; - double offset[3] = { 0, 0, value }; + double offset[3] = { 0, 0, static_cast( value ) }; rotateCoordinates( offset, angle ); float offsetFloat[3] = { static_cast( offset[0] ), static_cast( offset[1] ), @@ -1086,10 +1088,11 @@ void MoveCenterTabController::updateHandDrag( return; } - double relativeControllerPosition[] - = { movePose->mDeviceToAbsoluteTracking.m[0][3], - movePose->mDeviceToAbsoluteTracking.m[1][3], - movePose->mDeviceToAbsoluteTracking.m[2][3] }; + double relativeControllerPosition[] = { + static_cast( movePose->mDeviceToAbsoluteTracking.m[0][3] ), + static_cast( movePose->mDeviceToAbsoluteTracking.m[1][3] ), + static_cast( movePose->mDeviceToAbsoluteTracking.m[2][3] ) + }; rotateCoordinates( relativeControllerPosition, -angle ); float absoluteControllerPosition[] = { @@ -1101,9 +1104,12 @@ void MoveCenterTabController::updateHandDrag( if ( m_lastMoveHand == m_activeDragHand ) { double diff[3] = { - absoluteControllerPosition[0] - m_lastControllerPosition[0], - absoluteControllerPosition[1] - m_lastControllerPosition[1], - absoluteControllerPosition[2] - m_lastControllerPosition[2], + static_cast( absoluteControllerPosition[0] + - m_lastControllerPosition[0] ), + static_cast( absoluteControllerPosition[1] + - m_lastControllerPosition[1] ), + static_cast( absoluteControllerPosition[2] + - m_lastControllerPosition[2] ), }; // offset is un-rotated coordinates diff --git a/src/utils/quaternion.h b/src/utils/quaternion.h index 7e2ecff..f98825a 100644 --- a/src/utils/quaternion.h +++ b/src/utils/quaternion.h @@ -9,21 +9,28 @@ inline vr::HmdQuaternion_t quaternionFromHmdMatrix34( vr::HmdMatrix34_t matrix ) { vr::HmdQuaternion_t q; - q.w = sqrt( - fmax( 0, 1 + matrix.m[0][0] + matrix.m[1][1] + matrix.m[2][2] ) ) + q.w = sqrt( fmax( 0, + static_cast( 1 + matrix.m[0][0] + matrix.m[1][1] + + matrix.m[2][2] ) ) ) / 2; - q.x = sqrt( - fmax( 0, 1 + matrix.m[0][0] - matrix.m[1][1] - matrix.m[2][2] ) ) + q.x = sqrt( fmax( 0, + static_cast( 1 + matrix.m[0][0] - matrix.m[1][1] + - matrix.m[2][2] ) ) ) / 2; - q.y = sqrt( - fmax( 0, 1 - matrix.m[0][0] + matrix.m[1][1] - matrix.m[2][2] ) ) + q.y = sqrt( fmax( 0, + static_cast( 1 - matrix.m[0][0] + matrix.m[1][1] + - matrix.m[2][2] ) ) ) / 2; - q.z = sqrt( - fmax( 0, 1 - matrix.m[0][0] - matrix.m[1][1] + matrix.m[2][2] ) ) + q.z = sqrt( fmax( 0, + static_cast( 1 - matrix.m[0][0] - matrix.m[1][1] + + matrix.m[2][2] ) ) ) / 2; - q.x = copysign( q.x, matrix.m[2][1] - matrix.m[1][2] ); - q.y = copysign( q.y, matrix.m[0][2] - matrix.m[2][0] ); - q.z = copysign( q.z, matrix.m[1][0] - matrix.m[0][1] ); + q.x = copysign( q.x, + static_cast( matrix.m[2][1] - matrix.m[1][2] ) ); + q.y = copysign( q.y, + static_cast( matrix.m[0][2] - matrix.m[2][0] ) ); + q.z = copysign( q.z, + static_cast( matrix.m[1][0] - matrix.m[0][1] ) ); return q; }