Add motion page, comfort mode, rename "room" to "space"
This commit is contained in:
@@ -130,6 +130,12 @@ DISTFILES += \
|
|||||||
src/res/qml/ChaperoneWarningsPage.qml \
|
src/res/qml/ChaperoneWarningsPage.qml \
|
||||||
src/res/qml/FixFloorPage.qml \
|
src/res/qml/FixFloorPage.qml \
|
||||||
src/res/qml/PlayspacePage.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/PttControllerConfigDialog.qml \
|
src/res/qml/PttControllerConfigDialog.qml \
|
||||||
src/res/qml/RevivePage.qml \
|
src/res/qml/RevivePage.qml \
|
||||||
src/res/qml/RootPage.qml \
|
src/res/qml/RootPage.qml \
|
||||||
|
|||||||
+28
-28
@@ -130,25 +130,25 @@ SteamIVRInput::SteamIVRInput()
|
|||||||
m_pausePlayTrack( input_strings::k_actionPausePlayTrack,
|
m_pausePlayTrack( input_strings::k_actionPausePlayTrack,
|
||||||
ActionType::Digital ),
|
ActionType::Digital ),
|
||||||
m_stopTrack( input_strings::k_actionStopTrack, ActionType::Digital ),
|
m_stopTrack( input_strings::k_actionStopTrack, ActionType::Digital ),
|
||||||
m_leftHandRoomTurn( input_strings::k_actionLeftHandRoomTurn,
|
m_leftHandSpaceTurn( input_strings::k_actionLeftHandSpaceTurn,
|
||||||
ActionType::Digital ),
|
ActionType::Digital ),
|
||||||
m_rightHandRoomTurn( input_strings::k_actionRightHandRoomTurn,
|
m_rightHandSpaceTurn( input_strings::k_actionRightHandSpaceTurn,
|
||||||
ActionType::Digital ),
|
ActionType::Digital ),
|
||||||
m_leftHandRoomDrag( input_strings::k_actionLeftHandRoomDrag,
|
m_leftHandSpaceDrag( input_strings::k_actionLeftHandSpaceDrag,
|
||||||
ActionType::Digital ),
|
ActionType::Digital ),
|
||||||
m_rightHandRoomDrag( input_strings::k_actionRightHandRoomDrag,
|
m_rightHandSpaceDrag( input_strings::k_actionRightHandSpaceDrag,
|
||||||
ActionType::Digital ),
|
ActionType::Digital ),
|
||||||
m_optionalOverrideLeftHandRoomTurn(
|
m_optionalOverrideLeftHandSpaceTurn(
|
||||||
input_strings::k_actionOptionalOverrideLeftHandRoomTurn,
|
input_strings::k_actionOptionalOverrideLeftHandSpaceTurn,
|
||||||
ActionType::Digital ),
|
ActionType::Digital ),
|
||||||
m_optionalOverrideRightHandRoomTurn(
|
m_optionalOverrideRightHandSpaceTurn(
|
||||||
input_strings::k_actionOptionalOverrideRightHandRoomTurn,
|
input_strings::k_actionOptionalOverrideRightHandSpaceTurn,
|
||||||
ActionType::Digital ),
|
ActionType::Digital ),
|
||||||
m_optionalOverrideLeftHandRoomDrag(
|
m_optionalOverrideLeftHandSpaceDrag(
|
||||||
input_strings::k_actionOptionalOverrideLeftHandRoomDrag,
|
input_strings::k_actionOptionalOverrideLeftHandSpaceDrag,
|
||||||
ActionType::Digital ),
|
ActionType::Digital ),
|
||||||
m_optionalOverrideRightHandRoomDrag(
|
m_optionalOverrideRightHandSpaceDrag(
|
||||||
input_strings::k_actionOptionalOverrideRightHandRoomDrag,
|
input_strings::k_actionOptionalOverrideRightHandSpaceDrag,
|
||||||
ActionType::Digital )
|
ActionType::Digital )
|
||||||
{
|
{
|
||||||
m_activeActionSet.ulActionSet = m_mainSet.handle();
|
m_activeActionSet.ulActionSet = m_mainSet.handle();
|
||||||
@@ -199,47 +199,47 @@ bool SteamIVRInput::stopSong()
|
|||||||
return isDigitalActionActivatedOnce( m_stopTrack );
|
return isDigitalActionActivatedOnce( m_stopTrack );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SteamIVRInput::leftHandRoomTurn()
|
bool SteamIVRInput::leftHandSpaceTurn()
|
||||||
{
|
{
|
||||||
return isDigitalActionActivatedConstant( m_leftHandRoomTurn );
|
return isDigitalActionActivatedConstant( m_leftHandSpaceTurn );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SteamIVRInput::rightHandRoomTurn()
|
bool SteamIVRInput::rightHandSpaceTurn()
|
||||||
{
|
{
|
||||||
return isDigitalActionActivatedConstant( m_rightHandRoomTurn );
|
return isDigitalActionActivatedConstant( m_rightHandSpaceTurn );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SteamIVRInput::leftHandRoomDrag()
|
bool SteamIVRInput::leftHandSpaceDrag()
|
||||||
{
|
{
|
||||||
return isDigitalActionActivatedConstant( m_leftHandRoomDrag );
|
return isDigitalActionActivatedConstant( m_leftHandSpaceDrag );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SteamIVRInput::rightHandRoomDrag()
|
bool SteamIVRInput::rightHandSpaceDrag()
|
||||||
{
|
{
|
||||||
return isDigitalActionActivatedConstant( m_rightHandRoomDrag );
|
return isDigitalActionActivatedConstant( m_rightHandSpaceDrag );
|
||||||
}
|
}
|
||||||
bool SteamIVRInput::optionalOverrideLeftHandRoomTurn()
|
bool SteamIVRInput::optionalOverrideLeftHandSpaceTurn()
|
||||||
{
|
{
|
||||||
return isDigitalActionActivatedConstant(
|
return isDigitalActionActivatedConstant(
|
||||||
m_optionalOverrideLeftHandRoomTurn );
|
m_optionalOverrideLeftHandSpaceTurn );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SteamIVRInput::optionalOverrideRightHandRoomTurn()
|
bool SteamIVRInput::optionalOverrideRightHandSpaceTurn()
|
||||||
{
|
{
|
||||||
return isDigitalActionActivatedConstant(
|
return isDigitalActionActivatedConstant(
|
||||||
m_optionalOverrideRightHandRoomTurn );
|
m_optionalOverrideRightHandSpaceTurn );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SteamIVRInput::optionalOverrideLeftHandRoomDrag()
|
bool SteamIVRInput::optionalOverrideLeftHandSpaceDrag()
|
||||||
{
|
{
|
||||||
return isDigitalActionActivatedConstant(
|
return isDigitalActionActivatedConstant(
|
||||||
m_optionalOverrideLeftHandRoomDrag );
|
m_optionalOverrideLeftHandSpaceDrag );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SteamIVRInput::optionalOverrideRightHandRoomDrag()
|
bool SteamIVRInput::optionalOverrideRightHandSpaceDrag()
|
||||||
{
|
{
|
||||||
return isDigitalActionActivatedConstant(
|
return isDigitalActionActivatedConstant(
|
||||||
m_optionalOverrideRightHandRoomDrag );
|
m_optionalOverrideRightHandSpaceDrag );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
+33
-33
@@ -40,14 +40,14 @@ public:
|
|||||||
bool previousSong();
|
bool previousSong();
|
||||||
bool pausePlaySong();
|
bool pausePlaySong();
|
||||||
bool stopSong();
|
bool stopSong();
|
||||||
bool leftHandRoomTurn();
|
bool leftHandSpaceTurn();
|
||||||
bool rightHandRoomTurn();
|
bool rightHandSpaceTurn();
|
||||||
bool leftHandRoomDrag();
|
bool leftHandSpaceDrag();
|
||||||
bool rightHandRoomDrag();
|
bool rightHandSpaceDrag();
|
||||||
bool optionalOverrideLeftHandRoomTurn();
|
bool optionalOverrideLeftHandSpaceTurn();
|
||||||
bool optionalOverrideRightHandRoomTurn();
|
bool optionalOverrideRightHandSpaceTurn();
|
||||||
bool optionalOverrideLeftHandRoomDrag();
|
bool optionalOverrideLeftHandSpaceDrag();
|
||||||
bool optionalOverrideRightHandRoomDrag();
|
bool optionalOverrideRightHandSpaceDrag();
|
||||||
|
|
||||||
// Destructor. There are no terminating calls for the IVRInput API, so it
|
// Destructor. There are no terminating calls for the IVRInput API, so it
|
||||||
// is left blank.
|
// is left blank.
|
||||||
@@ -78,15 +78,15 @@ private:
|
|||||||
Action m_pausePlayTrack;
|
Action m_pausePlayTrack;
|
||||||
Action m_stopTrack;
|
Action m_stopTrack;
|
||||||
|
|
||||||
// Room bindings
|
// Space bindings
|
||||||
Action m_leftHandRoomTurn;
|
Action m_leftHandSpaceTurn;
|
||||||
Action m_rightHandRoomTurn;
|
Action m_rightHandSpaceTurn;
|
||||||
Action m_leftHandRoomDrag;
|
Action m_leftHandSpaceDrag;
|
||||||
Action m_rightHandRoomDrag;
|
Action m_rightHandSpaceDrag;
|
||||||
Action m_optionalOverrideLeftHandRoomTurn;
|
Action m_optionalOverrideLeftHandSpaceTurn;
|
||||||
Action m_optionalOverrideRightHandRoomTurn;
|
Action m_optionalOverrideRightHandSpaceTurn;
|
||||||
Action m_optionalOverrideLeftHandRoomDrag;
|
Action m_optionalOverrideLeftHandSpaceDrag;
|
||||||
Action m_optionalOverrideRightHandRoomDrag;
|
Action m_optionalOverrideRightHandSpaceDrag;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -101,22 +101,22 @@ namespace input_strings
|
|||||||
constexpr auto k_actionPausePlayTrack = "/actions/main/in/PausePlayTrack";
|
constexpr auto k_actionPausePlayTrack = "/actions/main/in/PausePlayTrack";
|
||||||
constexpr auto k_actionStopTrack = "/actions/main/in/StopTrack";
|
constexpr auto k_actionStopTrack = "/actions/main/in/StopTrack";
|
||||||
|
|
||||||
constexpr auto k_actionLeftHandRoomTurn
|
constexpr auto k_actionLeftHandSpaceTurn
|
||||||
= "/actions/main/in/LeftHandRoomTurn";
|
= "/actions/main/in/LeftHandSpaceTurn";
|
||||||
constexpr auto k_actionRightHandRoomTurn
|
constexpr auto k_actionRightHandSpaceTurn
|
||||||
= "/actions/main/in/RightHandRoomTurn";
|
= "/actions/main/in/RightHandSpaceTurn";
|
||||||
constexpr auto k_actionLeftHandRoomDrag
|
constexpr auto k_actionLeftHandSpaceDrag
|
||||||
= "/actions/main/in/LeftHandRoomDrag";
|
= "/actions/main/in/LeftHandSpaceDrag";
|
||||||
constexpr auto k_actionRightHandRoomDrag
|
constexpr auto k_actionRightHandSpaceDrag
|
||||||
= "/actions/main/in/RightHandRoomDrag";
|
= "/actions/main/in/RightHandSpaceDrag";
|
||||||
constexpr auto k_actionOptionalOverrideLeftHandRoomTurn
|
constexpr auto k_actionOptionalOverrideLeftHandSpaceTurn
|
||||||
= "/actions/main/in/OptionalOverrideLeftHandRoomTurn";
|
= "/actions/main/in/OptionalOverrideLeftHandSpaceTurn";
|
||||||
constexpr auto k_actionOptionalOverrideRightHandRoomTurn
|
constexpr auto k_actionOptionalOverrideRightHandSpaceTurn
|
||||||
= "/actions/main/in/OptionalOverrideRightHandRoomTurn";
|
= "/actions/main/in/OptionalOverrideRightHandSpaceTurn";
|
||||||
constexpr auto k_actionOptionalOverrideLeftHandRoomDrag
|
constexpr auto k_actionOptionalOverrideLeftHandSpaceDrag
|
||||||
= "/actions/main/in/OptionalOverrideLeftHandRoomDrag";
|
= "/actions/main/in/OptionalOverrideLeftHandSpaceDrag";
|
||||||
constexpr auto k_actionOptionalOverrideRightHandRoomDrag
|
constexpr auto k_actionOptionalOverrideRightHandSpaceDrag
|
||||||
= "/actions/main/in/OptionalOverrideRightHandRoomDrag";
|
= "/actions/main/in/OptionalOverrideRightHandSpaceDrag";
|
||||||
|
|
||||||
constexpr auto k_setMain = "/actions/main";
|
constexpr auto k_setMain = "/actions/main";
|
||||||
|
|
||||||
|
|||||||
+14
-14
@@ -505,22 +505,22 @@ void OverlayController::processInputBindings()
|
|||||||
// reorder these. Override actions must always come after normal because
|
// reorder these. Override actions must always come after normal because
|
||||||
// active priority is set based on which action is "newest"
|
// active priority is set based on which action is "newest"
|
||||||
// normal actions:
|
// normal actions:
|
||||||
m_moveCenterTabController.leftHandRoomDrag( m_actions.leftHandRoomDrag() );
|
m_moveCenterTabController.leftHandSpaceDrag( m_actions.leftHandSpaceDrag() );
|
||||||
m_moveCenterTabController.rightHandRoomDrag(
|
m_moveCenterTabController.rightHandSpaceDrag(
|
||||||
m_actions.rightHandRoomDrag() );
|
m_actions.rightHandSpaceDrag() );
|
||||||
m_moveCenterTabController.leftHandRoomTurn( m_actions.leftHandRoomTurn() );
|
m_moveCenterTabController.leftHandSpaceTurn( m_actions.leftHandSpaceTurn() );
|
||||||
m_moveCenterTabController.rightHandRoomTurn(
|
m_moveCenterTabController.rightHandSpaceTurn(
|
||||||
m_actions.rightHandRoomTurn() );
|
m_actions.rightHandSpaceTurn() );
|
||||||
|
|
||||||
// override actions:
|
// override actions:
|
||||||
m_moveCenterTabController.optionalOverrideLeftHandRoomDrag(
|
m_moveCenterTabController.optionalOverrideLeftHandSpaceDrag(
|
||||||
m_actions.optionalOverrideLeftHandRoomDrag() );
|
m_actions.optionalOverrideLeftHandSpaceDrag() );
|
||||||
m_moveCenterTabController.optionalOverrideRightHandRoomDrag(
|
m_moveCenterTabController.optionalOverrideRightHandSpaceDrag(
|
||||||
m_actions.optionalOverrideRightHandRoomDrag() );
|
m_actions.optionalOverrideRightHandSpaceDrag() );
|
||||||
m_moveCenterTabController.optionalOverrideLeftHandRoomTurn(
|
m_moveCenterTabController.optionalOverrideLeftHandSpaceTurn(
|
||||||
m_actions.optionalOverrideLeftHandRoomTurn() );
|
m_actions.optionalOverrideLeftHandSpaceTurn() );
|
||||||
m_moveCenterTabController.optionalOverrideRightHandRoomTurn(
|
m_moveCenterTabController.optionalOverrideRightHandSpaceTurn(
|
||||||
m_actions.optionalOverrideRightHandRoomTurn() );
|
m_actions.optionalOverrideRightHandSpaceTurn() );
|
||||||
}
|
}
|
||||||
|
|
||||||
// vsync implementation:
|
// vsync implementation:
|
||||||
|
|||||||
@@ -27,42 +27,42 @@
|
|||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "/actions/main/in/LeftHandRoomTurn",
|
"name": "/actions/main/in/LeftHandSpaceTurn",
|
||||||
"requirement": "optional",
|
"requirement": "optional",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "/actions/main/in/RightHandRoomTurn",
|
"name": "/actions/main/in/RightHandSpaceTurn",
|
||||||
"requirement": "optional",
|
"requirement": "optional",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "/actions/main/in/LeftHandRoomDrag",
|
"name": "/actions/main/in/LeftHandSpaceDrag",
|
||||||
"requirement": "optional",
|
"requirement": "optional",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "/actions/main/in/RightHandRoomDrag",
|
"name": "/actions/main/in/RightHandSpaceDrag",
|
||||||
"requirement": "optional",
|
"requirement": "optional",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "/actions/main/in/OptionalOverrideLeftHandRoomTurn",
|
"name": "/actions/main/in/OptionalOverrideLeftHandSpaceTurn",
|
||||||
"requirement": "optional",
|
"requirement": "optional",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "/actions/main/in/OptionalOverrideRightHandRoomTurn",
|
"name": "/actions/main/in/OptionalOverrideRightHandSpaceTurn",
|
||||||
"requirement": "optional",
|
"requirement": "optional",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "/actions/main/in/OptionalOverrideLeftHandRoomDrag",
|
"name": "/actions/main/in/OptionalOverrideLeftHandSpaceDrag",
|
||||||
"requirement": "optional",
|
"requirement": "optional",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "/actions/main/in/OptionalOverrideRightHandRoomDrag",
|
"name": "/actions/main/in/OptionalOverrideRightHandSpaceDrag",
|
||||||
"requirement": "optional",
|
"requirement": "optional",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
}
|
}
|
||||||
@@ -83,14 +83,14 @@
|
|||||||
"/actions/main/in/PreviousTrack" : "Play Previous Track",
|
"/actions/main/in/PreviousTrack" : "Play Previous Track",
|
||||||
"/actions/main/in/PausePlayTrack" : "Pause/Play Track",
|
"/actions/main/in/PausePlayTrack" : "Pause/Play Track",
|
||||||
"/actions/main/in/StopTrack" : "Stop Track",
|
"/actions/main/in/StopTrack" : "Stop Track",
|
||||||
"/actions/main/in/LeftHandRoomTurn" : "Left Hand Room Turn",
|
"/actions/main/in/LeftHandSpaceTurn" : "Left Hand Space Turn",
|
||||||
"/actions/main/in/RightHandRoomTurn" : "Right Hand Room Turn",
|
"/actions/main/in/RightHandSpaceTurn" : "Right Hand Space Turn",
|
||||||
"/actions/main/in/LeftHandRoomDrag" : "Left Hand Room Drag",
|
"/actions/main/in/LeftHandSpaceDrag" : "Left Hand Space Drag",
|
||||||
"/actions/main/in/RightHandRoomDrag" : "Right Hand Room Drag",
|
"/actions/main/in/RightHandSpaceDrag" : "Right Hand Space Drag",
|
||||||
"/actions/main/in/OptionalOverrideLeftHandRoomTurn" : "Optional Override Left Hand Room Turn",
|
"/actions/main/in/OptionalOverrideLeftHandSpaceTurn" : "Optional Override Left Hand Space Turn",
|
||||||
"/actions/main/in/OptionalOverrideRightHandRoomTurn" : "Optional Override Right Hand Room Turn",
|
"/actions/main/in/OptionalOverrideRightHandSpaceTurn" : "Optional Override Right Hand Space Turn",
|
||||||
"/actions/main/in/OptionalOverrideLeftHandRoomDrag" : "Optional Override Left Hand Room Drag",
|
"/actions/main/in/OptionalOverrideLeftHandSpaceDrag" : "Optional Override Left Hand Space Drag",
|
||||||
"/actions/main/in/OptionalOverrideRightHandRoomDrag" : "Optional Override Right Hand Room Drag"
|
"/actions/main/in/OptionalOverrideRightHandSpaceDrag" : "Optional Override Right Hand Space Drag"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@ import "common"
|
|||||||
|
|
||||||
|
|
||||||
MyStackViewPage {
|
MyStackViewPage {
|
||||||
headerText: "Room Fix"
|
headerText: "Space Fix"
|
||||||
|
|
||||||
content: ColumnLayout {
|
content: ColumnLayout {
|
||||||
spacing: 18
|
spacing: 18
|
||||||
@@ -57,7 +57,7 @@ MyStackViewPage {
|
|||||||
MyPushButton {
|
MyPushButton {
|
||||||
id: recenterButton
|
id: recenterButton
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: "Recenter Room"
|
text: "Recenter Space"
|
||||||
Layout.preferredHeight: 100
|
Layout.preferredHeight: 100
|
||||||
onClicked: {
|
onClicked: {
|
||||||
FixFloorTabController.recenterClicked()
|
FixFloorTabController.recenterClicked()
|
||||||
@@ -75,9 +75,9 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MyPushButton {
|
MyPushButton {
|
||||||
id: zeroRoomButton
|
id: zeroSpaceButton
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: "Apply Room Settings Offsets as Center"
|
text: "Apply Space Settings Offsets as Center"
|
||||||
Layout.preferredHeight: 100
|
Layout.preferredHeight: 100
|
||||||
onClicked: {
|
onClicked: {
|
||||||
MoveCenterTabController.zeroOffsets()
|
MoveCenterTabController.zeroOffsets()
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import "common"
|
|||||||
|
|
||||||
|
|
||||||
MyStackViewPage {
|
MyStackViewPage {
|
||||||
headerText: "Room Settings"
|
headerText: "Space Settings"
|
||||||
|
|
||||||
content: ColumnLayout {
|
content: ColumnLayout {
|
||||||
spacing: 18
|
spacing: 18
|
||||||
@@ -17,7 +17,7 @@ MyStackViewPage {
|
|||||||
Layout.preferredWidth: 230
|
Layout.preferredWidth: 230
|
||||||
}
|
}
|
||||||
MyText {
|
MyText {
|
||||||
id: roomModeText
|
id: spaceModeText
|
||||||
font.bold: true
|
font.bold: true
|
||||||
text: "Standing"
|
text: "Standing"
|
||||||
}
|
}
|
||||||
@@ -28,7 +28,7 @@ MyStackViewPage {
|
|||||||
|
|
||||||
label: MyText {
|
label: MyText {
|
||||||
leftPadding: 10
|
leftPadding: 10
|
||||||
text: "Move Room"
|
text: "Move Space"
|
||||||
bottomPadding: -10
|
bottomPadding: -10
|
||||||
}
|
}
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
@@ -60,7 +60,7 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MyPushButton2 {
|
MyPushButton2 {
|
||||||
id: roomMoveXMinusButton
|
id: spaceMoveXMinusButton
|
||||||
Layout.preferredWidth: 40
|
Layout.preferredWidth: 40
|
||||||
text: "-"
|
text: "-"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
@@ -69,7 +69,7 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MyTextField {
|
MyTextField {
|
||||||
id: roomMoveXText
|
id: spaceMoveXText
|
||||||
text: "0.00"
|
text: "0.00"
|
||||||
keyBoardUID: 101
|
keyBoardUID: 101
|
||||||
Layout.preferredWidth: 140
|
Layout.preferredWidth: 140
|
||||||
@@ -88,7 +88,7 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MyPushButton2 {
|
MyPushButton2 {
|
||||||
id: roomMoveXPlusButton
|
id: spaceMoveXPlusButton
|
||||||
Layout.preferredWidth: 40
|
Layout.preferredWidth: 40
|
||||||
text: "+"
|
text: "+"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
@@ -126,7 +126,7 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MyTextField {
|
MyTextField {
|
||||||
id: roomMoveYText
|
id: spaceMoveYText
|
||||||
text: "0.00"
|
text: "0.00"
|
||||||
keyBoardUID: 102
|
keyBoardUID: 102
|
||||||
Layout.preferredWidth: 140
|
Layout.preferredWidth: 140
|
||||||
@@ -180,7 +180,7 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MyTextField {
|
MyTextField {
|
||||||
id: roomMoveZText
|
id: spaceMoveZText
|
||||||
text: "0.00"
|
text: "0.00"
|
||||||
keyBoardUID: 103
|
keyBoardUID: 103
|
||||||
Layout.preferredWidth: 140
|
Layout.preferredWidth: 140
|
||||||
@@ -223,7 +223,7 @@ MyStackViewPage {
|
|||||||
|
|
||||||
label: MyText {
|
label: MyText {
|
||||||
leftPadding: 10
|
leftPadding: 10
|
||||||
text: "Rotate Room"
|
text: "Rotate Space"
|
||||||
bottomPadding: -10
|
bottomPadding: -10
|
||||||
}
|
}
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
@@ -245,7 +245,7 @@ MyStackViewPage {
|
|||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
RowLayout {
|
RowLayout {
|
||||||
MyPushButton2 {
|
MyPushButton2 {
|
||||||
id: roomRotationMinusButton
|
id: spaceRotationMinusButton
|
||||||
Layout.preferredWidth: 40
|
Layout.preferredWidth: 40
|
||||||
text: "-"
|
text: "-"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
@@ -258,7 +258,7 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MySlider {
|
MySlider {
|
||||||
id: roomRotationSlider
|
id: spaceRotationSlider
|
||||||
from: -180
|
from: -180
|
||||||
to: 180
|
to: 180
|
||||||
stepSize: 0.01
|
stepSize: 0.01
|
||||||
@@ -269,13 +269,13 @@ MyStackViewPage {
|
|||||||
MoveCenterTabController.tempRotation = Math.round(val * 100)
|
MoveCenterTabController.tempRotation = Math.round(val * 100)
|
||||||
}
|
}
|
||||||
onValueChanged: {
|
onValueChanged: {
|
||||||
MoveCenterTabController.tempRotation = Math.round(roomRotationSlider.value * 100)
|
MoveCenterTabController.tempRotation = Math.round(spaceRotationSlider.value * 100)
|
||||||
//roomRotationText.text = Math.round(roomRotationSlider.value) + "°"
|
//spaceRotationText.text = Math.round(spaceRotationSlider.value) + "°"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MyPushButton2 {
|
MyPushButton2 {
|
||||||
id: roomRotationPlusButton
|
id: spaceRotationPlusButton
|
||||||
Layout.preferredWidth: 40
|
Layout.preferredWidth: 40
|
||||||
text: "+"
|
text: "+"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
@@ -288,7 +288,7 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MyTextField {
|
MyTextField {
|
||||||
id: roomRotationText
|
id: spaceRotationText
|
||||||
text: "0°"
|
text: "0°"
|
||||||
keyBoardUID: 104
|
keyBoardUID: 104
|
||||||
Layout.preferredWidth: 150
|
Layout.preferredWidth: 150
|
||||||
@@ -306,7 +306,7 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
MyPushButton {
|
MyPushButton {
|
||||||
id: roomRotationApplyButton
|
id: spaceRotationApplyButton
|
||||||
Layout.preferredWidth: 145
|
Layout.preferredWidth: 145
|
||||||
text:"Apply"
|
text:"Apply"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
@@ -316,15 +316,15 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MyToggleButton {
|
MyToggleButton {
|
||||||
id: roomRotateHandToggle
|
id: spaceRotateHandToggle
|
||||||
text: "Enable Room-Turn Binding"
|
text: "Enable Space-Turn Binding"
|
||||||
onCheckedChanged: {
|
onCheckedChanged: {
|
||||||
MoveCenterTabController.rotateHand = this.checked
|
MoveCenterTabController.rotateHand = this.checked
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MyText {
|
MyText {
|
||||||
text: "Note: TurnSignal will ignore turning during Room-Turn rotation."
|
text: "Note: TurnSignal will ignore turning during Space-Turn rotation."
|
||||||
font.pointSize: 15.0
|
font.pointSize: 15.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -336,7 +336,7 @@ MyStackViewPage {
|
|||||||
|
|
||||||
label: MyText {
|
label: MyText {
|
||||||
leftPadding: 10
|
leftPadding: 10
|
||||||
text: "Room Drag Binding"
|
text: "Space Drag Binding"
|
||||||
bottomPadding: -10
|
bottomPadding: -10
|
||||||
}
|
}
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
@@ -372,7 +372,7 @@ MyStackViewPage {
|
|||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
MyPushButton {
|
MyPushButton {
|
||||||
id: roomResetButton
|
id: spaceResetButton
|
||||||
Layout.preferredWidth: 250
|
Layout.preferredWidth: 250
|
||||||
text: "Reset"
|
text: "Reset"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
@@ -381,7 +381,7 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MyToggleButton {
|
MyToggleButton {
|
||||||
id: roomAdjustChaperoneToggle
|
id: spaceAdjustChaperoneToggle
|
||||||
text: "Adjust Chaperone"
|
text: "Adjust Chaperone"
|
||||||
onCheckedChanged: {
|
onCheckedChanged: {
|
||||||
MoveCenterTabController.adjustChaperone = this.checked
|
MoveCenterTabController.adjustChaperone = this.checked
|
||||||
@@ -396,12 +396,12 @@ MyStackViewPage {
|
|||||||
Item { Layout.fillHeight: true; Layout.fillWidth: true}
|
Item { Layout.fillHeight: true; Layout.fillWidth: true}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
roomAdjustChaperoneToggle.checked = MoveCenterTabController.adjustChaperone
|
spaceAdjustChaperoneToggle.checked = MoveCenterTabController.adjustChaperone
|
||||||
roomRotateHandToggle.checked = MoveCenterTabController.rotateHand
|
spaceRotateHandToggle.checked = MoveCenterTabController.rotateHand
|
||||||
roomMoveXText.text = MoveCenterTabController.offsetX.toFixed(2)
|
spaceMoveXText.text = MoveCenterTabController.offsetX.toFixed(2)
|
||||||
roomMoveYText.text = MoveCenterTabController.offsetY.toFixed(2)
|
spaceMoveYText.text = MoveCenterTabController.offsetY.toFixed(2)
|
||||||
roomMoveZText.text = MoveCenterTabController.offsetZ.toFixed(2)
|
spaceMoveZText.text = MoveCenterTabController.offsetZ.toFixed(2)
|
||||||
roomRotationSlider.value = MoveCenterTabController.rotation
|
spaceRotationSlider.value = MoveCenterTabController.rotation
|
||||||
moveShortcutRight.checked = MoveCenterTabController.moveShortcutRight
|
moveShortcutRight.checked = MoveCenterTabController.moveShortcutRight
|
||||||
moveShortcutLeft.checked = MoveCenterTabController.moveShortcutLeft
|
moveShortcutLeft.checked = MoveCenterTabController.moveShortcutLeft
|
||||||
lockXToggle.checked = MoveCenterTabController.lockXToggle
|
lockXToggle.checked = MoveCenterTabController.lockXToggle
|
||||||
@@ -409,45 +409,45 @@ MyStackViewPage {
|
|||||||
lockZToggle.checked = MoveCenterTabController.lockZToggle
|
lockZToggle.checked = MoveCenterTabController.lockZToggle
|
||||||
|
|
||||||
if (MoveCenterTabController.trackingUniverse === 0) {
|
if (MoveCenterTabController.trackingUniverse === 0) {
|
||||||
roomModeText.text = "Sitting"
|
spaceModeText.text = "Sitting"
|
||||||
roomRotationPlusButton.enabled = false
|
spaceRotationPlusButton.enabled = false
|
||||||
roomRotationMinusButton.enabled = false
|
spaceRotationMinusButton.enabled = false
|
||||||
roomRotationSlider.enabled = false
|
spaceRotationSlider.enabled = false
|
||||||
roomRotationText.text = "-"
|
spaceRotationText.text = "-"
|
||||||
} else if (MoveCenterTabController.trackingUniverse === 1) {
|
} else if (MoveCenterTabController.trackingUniverse === 1) {
|
||||||
roomModeText.text = "Standing"
|
spaceModeText.text = "Standing"
|
||||||
roomRotationPlusButton.enabled = true
|
spaceRotationPlusButton.enabled = true
|
||||||
roomRotationMinusButton.enabled = true
|
spaceRotationMinusButton.enabled = true
|
||||||
roomRotationSlider.enabled = true
|
spaceRotationSlider.enabled = true
|
||||||
roomRotationText.text = "0°"
|
spaceRotationText.text = "0°"
|
||||||
} else {
|
} else {
|
||||||
roomModeText.text = "Unknown(" + MoveCenterTabController.trackingUniverse + ")"
|
spaceModeText.text = "Unknown(" + MoveCenterTabController.trackingUniverse + ")"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: MoveCenterTabController
|
target: MoveCenterTabController
|
||||||
onOffsetXChanged: {
|
onOffsetXChanged: {
|
||||||
roomMoveXText.text = MoveCenterTabController.offsetX.toFixed(2)
|
spaceMoveXText.text = MoveCenterTabController.offsetX.toFixed(2)
|
||||||
}
|
}
|
||||||
onOffsetYChanged: {
|
onOffsetYChanged: {
|
||||||
roomMoveYText.text = MoveCenterTabController.offsetY.toFixed(2)
|
spaceMoveYText.text = MoveCenterTabController.offsetY.toFixed(2)
|
||||||
}
|
}
|
||||||
onOffsetZChanged: {
|
onOffsetZChanged: {
|
||||||
roomMoveZText.text = MoveCenterTabController.offsetZ.toFixed(2)
|
spaceMoveZText.text = MoveCenterTabController.offsetZ.toFixed(2)
|
||||||
}
|
}
|
||||||
onRotationChanged: {
|
onRotationChanged: {
|
||||||
roomRotationSlider.value = ( MoveCenterTabController.rotation / 100 )
|
spaceRotationSlider.value = ( MoveCenterTabController.rotation / 100 )
|
||||||
}
|
}
|
||||||
onTempRotationChanged: {
|
onTempRotationChanged: {
|
||||||
roomRotationSlider.value = ( MoveCenterTabController.tempRotation / 100 )
|
spaceRotationSlider.value = ( MoveCenterTabController.tempRotation / 100 )
|
||||||
roomRotationText.text = ( MoveCenterTabController.tempRotation / 100 ) + "°"
|
spaceRotationText.text = ( MoveCenterTabController.tempRotation / 100 ) + "°"
|
||||||
}
|
}
|
||||||
onAdjustChaperoneChanged: {
|
onAdjustChaperoneChanged: {
|
||||||
roomAdjustChaperoneToggle.checked = MoveCenterTabController.adjustChaperone
|
spaceAdjustChaperoneToggle.checked = MoveCenterTabController.adjustChaperone
|
||||||
}
|
}
|
||||||
onRotateHandChanged: {
|
onRotateHandChanged: {
|
||||||
roomRotateHandToggle.checked = MoveCenterTabController.rotateHand
|
spaceRotateHandToggle.checked = MoveCenterTabController.rotateHand
|
||||||
}
|
}
|
||||||
onMoveShortcutRightChanged: {
|
onMoveShortcutRightChanged: {
|
||||||
moveShortcutRight.checked = MoveCenterTabController.moveShortcutRight
|
moveShortcutRight.checked = MoveCenterTabController.moveShortcutRight
|
||||||
@@ -466,19 +466,19 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
onTrackingUniverseChanged: {
|
onTrackingUniverseChanged: {
|
||||||
if (MoveCenterTabController.trackingUniverse === 0) {
|
if (MoveCenterTabController.trackingUniverse === 0) {
|
||||||
roomModeText.text = "Sitting"
|
spaceModeText.text = "Sitting"
|
||||||
roomRotationPlusButton.enabled = false
|
spaceRotationPlusButton.enabled = false
|
||||||
roomRotationMinusButton.enabled = false
|
spaceRotationMinusButton.enabled = false
|
||||||
roomRotationSlider.enabled = false
|
spaceRotationSlider.enabled = false
|
||||||
roomRotationText.text = "-"
|
spaceRotationText.text = "-"
|
||||||
} else if (MoveCenterTabController.trackingUniverse === 1) {
|
} else if (MoveCenterTabController.trackingUniverse === 1) {
|
||||||
roomModeText.text = "Standing"
|
spaceModeText.text = "Standing"
|
||||||
roomRotationPlusButton.enabled = true
|
spaceRotationPlusButton.enabled = true
|
||||||
roomRotationMinusButton.enabled = true
|
spaceRotationMinusButton.enabled = true
|
||||||
roomRotationSlider.enabled = true
|
spaceRotationSlider.enabled = true
|
||||||
roomRotationText.text = "0°"
|
spaceRotationText.text = "0°"
|
||||||
} else {
|
} else {
|
||||||
roomModeText.text = "Unknown(" + MoveCenterTabController.trackingUniverse + ")"
|
spaceModeText.text = "Unknown(" + MoveCenterTabController.trackingUniverse + ")"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ MyStackViewPage {
|
|||||||
MyPushButton {
|
MyPushButton {
|
||||||
id: playSpaceButton
|
id: playSpaceButton
|
||||||
activationSoundEnabled: false
|
activationSoundEnabled: false
|
||||||
text: "Room Settings"
|
text: "Offsets"
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
onClicked: {
|
onClicked: {
|
||||||
MyResources.playFocusChangedSound()
|
MyResources.playFocusChangedSound()
|
||||||
@@ -58,10 +58,21 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MyPushButton {
|
||||||
|
id: motionButton
|
||||||
|
activationSoundEnabled: false
|
||||||
|
text: "Motion"
|
||||||
|
Layout.fillWidth: true
|
||||||
|
onClicked: {
|
||||||
|
MyResources.playFocusChangedSound()
|
||||||
|
mainView.push(motionPage)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MyPushButton {
|
MyPushButton {
|
||||||
id: fixFloorButton
|
id: fixFloorButton
|
||||||
activationSoundEnabled: false
|
activationSoundEnabled: false
|
||||||
text: "Room Fix"
|
text: "Space Fix"
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
onClicked: {
|
onClicked: {
|
||||||
MyResources.playFocusChangedSound()
|
MyResources.playFocusChangedSound()
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import QtQuick.Layouts 1.0
|
|||||||
import ".."
|
import ".."
|
||||||
import "../utilities_page"
|
import "../utilities_page"
|
||||||
import "../audio_page"
|
import "../audio_page"
|
||||||
|
import "../motion_page"
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: root
|
id: root
|
||||||
@@ -35,6 +36,11 @@ Rectangle {
|
|||||||
visible: false
|
visible: false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
property MotionPage motionPage: MotionPage {
|
||||||
|
stackView: mainView
|
||||||
|
visible: false
|
||||||
|
}
|
||||||
|
|
||||||
property FixFloorPage fixFloorPage: FixFloorPage {
|
property FixFloorPage fixFloorPage: FixFloorPage {
|
||||||
stackView: mainView
|
stackView: mainView
|
||||||
visible: false
|
visible: false
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.0
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
import matzman666.advsettings 1.0
|
||||||
|
import "../common"
|
||||||
|
import "universe_drag"
|
||||||
|
import "universe_turn"
|
||||||
|
|
||||||
|
MyStackViewPage {
|
||||||
|
headerText: "Motion Settings"
|
||||||
|
|
||||||
|
content: ColumnLayout {
|
||||||
|
spacing: 18
|
||||||
|
|
||||||
|
UniverseDragGroupBox { id: universeDragGroupBox }
|
||||||
|
|
||||||
|
UniverseTurnGroupBox { id: universeTurnGroupBox }
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Layout.fillHeight: true
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.0
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
import matzman666.advsettings 1.0
|
||||||
|
import "../../common"
|
||||||
|
|
||||||
|
GroupBox {
|
||||||
|
id: universeDragGroupBox
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
label: MyText {
|
||||||
|
leftPadding: 10
|
||||||
|
text: "Universe Drag"
|
||||||
|
bottomPadding: -10
|
||||||
|
}
|
||||||
|
background: Rectangle {
|
||||||
|
color: "transparent"
|
||||||
|
border.color: "#ffffff"
|
||||||
|
radius: 8
|
||||||
|
}
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
color: "#ffffff"
|
||||||
|
height: 1
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.bottomMargin: 5
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
MyToggleButton {
|
||||||
|
id: moveShortcutLeft
|
||||||
|
text: "Enable Left Hand"
|
||||||
|
onCheckedChanged: {
|
||||||
|
MoveCenterTabController.moveShortcutLeft = this.checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MyToggleButton {
|
||||||
|
id: moveShortcutRight
|
||||||
|
text: "Enable Right Hand"
|
||||||
|
onCheckedChanged: {
|
||||||
|
MoveCenterTabController.moveShortcutRight = this.checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
MyText {
|
||||||
|
text: "Drag Comfort Mode:"
|
||||||
|
horizontalAlignment: Text.AlignRight
|
||||||
|
Layout.rightMargin: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
MySlider {
|
||||||
|
id: dragComfortSlider
|
||||||
|
from: 0
|
||||||
|
to: 10
|
||||||
|
stepSize: 1
|
||||||
|
value: 0
|
||||||
|
Layout.preferredWidth: 200
|
||||||
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
|
||||||
|
onValueChanged: {
|
||||||
|
dragComfortText.text = dragComfortSlider.value
|
||||||
|
MoveCenterTabController.dragComfortFactor = dragComfortSlider.value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MyText {
|
||||||
|
id: dragComfortText
|
||||||
|
text: "0"
|
||||||
|
horizontalAlignment: Text.AlignRight
|
||||||
|
Layout.preferredWidth: 30
|
||||||
|
Layout.rightMargin: 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
moveShortcutLeft.checked = MoveCenterTabController.moveShortcutLeft
|
||||||
|
moveShortcutRight.checked = MoveCenterTabController.moveShortcutRight
|
||||||
|
dragComfortSlider.value = MoveCenterTabController.dragComfortFactor
|
||||||
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: MoveCenterTabController
|
||||||
|
|
||||||
|
onMoveShortcutLeftChanged: {
|
||||||
|
moveShortcutLeft.checked = MoveCenterTabController.moveShortcutLeft
|
||||||
|
}
|
||||||
|
onMoveShortcutRightChanged: {
|
||||||
|
moveShortcutRight.checked = MoveCenterTabController.moveShortcutRight
|
||||||
|
}
|
||||||
|
onDragComfortFactorChanged: {
|
||||||
|
dragComfortSlider.value = MoveCenterTabController.dragComfortFactor
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.0
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
import matzman666.advsettings 1.0
|
||||||
|
import "../../common"
|
||||||
|
|
||||||
|
GroupBox {
|
||||||
|
id: universeTurnGroupBox
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
label: MyText {
|
||||||
|
leftPadding: 10
|
||||||
|
text: "Universe Turn"
|
||||||
|
bottomPadding: -10
|
||||||
|
}
|
||||||
|
background: Rectangle {
|
||||||
|
color: "transparent"
|
||||||
|
border.color: "#ffffff"
|
||||||
|
radius: 8
|
||||||
|
}
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
color: "#ffffff"
|
||||||
|
height: 1
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.bottomMargin: 5
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
MyToggleButton {
|
||||||
|
id: turnBindLeft
|
||||||
|
text: "Enable Left Hand"
|
||||||
|
onCheckedChanged: {
|
||||||
|
MoveCenterTabController.turnBindLeft = this.checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MyToggleButton {
|
||||||
|
id: turnBindRight
|
||||||
|
text: "Enable Right Hand"
|
||||||
|
onCheckedChanged: {
|
||||||
|
MoveCenterTabController.turnBindRight = this.checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
MyText {
|
||||||
|
text: "Turn Comfort Mode:"
|
||||||
|
horizontalAlignment: Text.AlignRight
|
||||||
|
Layout.rightMargin: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
MySlider {
|
||||||
|
id: turnComfortSlider
|
||||||
|
from: 0
|
||||||
|
to: 10
|
||||||
|
stepSize: 1
|
||||||
|
value: 0
|
||||||
|
Layout.preferredWidth: 200
|
||||||
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
|
||||||
|
onValueChanged: {
|
||||||
|
turnComfortText.text = turnComfortSlider.value
|
||||||
|
MoveCenterTabController.turnComfortFactor = turnComfortSlider.value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MyText {
|
||||||
|
id: turnComfortText
|
||||||
|
text: "0"
|
||||||
|
horizontalAlignment: Text.AlignRight
|
||||||
|
Layout.preferredWidth: 30
|
||||||
|
Layout.rightMargin: 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
turnBindLeft.checked = MoveCenterTabController.turnBindLeft
|
||||||
|
turnBindRight.checked = MoveCenterTabController.turnBindRight
|
||||||
|
turnComfortSlider.value = MoveCenterTabController.turnComfortFactor
|
||||||
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: MoveCenterTabController
|
||||||
|
|
||||||
|
onTurnBindLeftChanged: {
|
||||||
|
turnBindLeft.checked = MoveCenterTabController.turnBindLeft
|
||||||
|
}
|
||||||
|
onTurnBindRightChanged: {
|
||||||
|
turnBindRight.checked = MoveCenterTabController.turnBindRight
|
||||||
|
}
|
||||||
|
onTurnComfortFactorChanged: {
|
||||||
|
turnComfortSlider.value = MoveCenterTabController.turnComfortFactor
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -145,7 +145,7 @@ void FixFloorTabController::eventLoopTick(
|
|||||||
floorOffsetZ = tempOffsetZ;
|
floorOffsetZ = tempOffsetZ;
|
||||||
|
|
||||||
LOG( INFO )
|
LOG( INFO )
|
||||||
<< "Fix Floor and adjust room center: Floor Offset = ["
|
<< "Fix Floor and adjust space center: Floor Offset = ["
|
||||||
<< floorOffsetX << ", " << floorOffsetY << ", "
|
<< floorOffsetX << ", " << floorOffsetY << ", "
|
||||||
<< floorOffsetZ << "]";
|
<< floorOffsetZ << "]";
|
||||||
float offset[3] = { 0, 0, 0 };
|
float offset[3] = { 0, 0, 0 };
|
||||||
|
|||||||
@@ -52,6 +52,26 @@ void MoveCenterTabController::initStage1()
|
|||||||
{
|
{
|
||||||
m_settingsLeftHandDragEnabled = value.toBool();
|
m_settingsLeftHandDragEnabled = value.toBool();
|
||||||
}
|
}
|
||||||
|
value = settings->value( "turnBindLeft", m_settingsLeftHandTurnEnabled );
|
||||||
|
if ( value.isValid() && !value.isNull() )
|
||||||
|
{
|
||||||
|
m_settingsLeftHandTurnEnabled = value.toBool();
|
||||||
|
}
|
||||||
|
value = settings->value( "turnBindRight", m_settingsRightHandTurnEnabled );
|
||||||
|
if ( value.isValid() && !value.isNull() )
|
||||||
|
{
|
||||||
|
m_settingsRightHandTurnEnabled = value.toBool();
|
||||||
|
}
|
||||||
|
value = settings->value( "dragComfortFactor", m_dragComfortFactor );
|
||||||
|
if ( value.isValid() && !value.isNull() )
|
||||||
|
{
|
||||||
|
m_dragComfortFactor = value.toUInt();
|
||||||
|
}
|
||||||
|
value = settings->value( "turnComfortFactor", m_turnComfortFactor );
|
||||||
|
if ( value.isValid() && !value.isNull() )
|
||||||
|
{
|
||||||
|
m_turnComfortFactor = value.toUInt();
|
||||||
|
}
|
||||||
value = settings->value( "lockXToggle", m_lockXToggle );
|
value = settings->value( "lockXToggle", m_lockXToggle );
|
||||||
if ( value.isValid() && !value.isNull() )
|
if ( value.isValid() && !value.isNull() )
|
||||||
{
|
{
|
||||||
@@ -68,7 +88,6 @@ void MoveCenterTabController::initStage1()
|
|||||||
m_lockZToggle = value.toBool();
|
m_lockZToggle = value.toBool();
|
||||||
}
|
}
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
lastMoveButtonClick[0] = lastMoveButtonClick[1] = clock::now();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MoveCenterTabController::initStage2( OverlayController* var_parent,
|
void MoveCenterTabController::initStage2( OverlayController* var_parent,
|
||||||
@@ -345,6 +364,84 @@ void MoveCenterTabController::setMoveShortcutLeft( bool value, bool notify )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool MoveCenterTabController::turnBindLeft() const
|
||||||
|
{
|
||||||
|
return m_settingsLeftHandTurnEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MoveCenterTabController::setTurnBindLeft( bool value, bool notify )
|
||||||
|
{
|
||||||
|
m_settingsLeftHandTurnEnabled = value;
|
||||||
|
auto settings = OverlayController::appSettings();
|
||||||
|
settings->beginGroup( "playspaceSettings" );
|
||||||
|
settings->setValue( "turnBindLeft", m_settingsLeftHandTurnEnabled );
|
||||||
|
settings->endGroup();
|
||||||
|
settings->sync();
|
||||||
|
if ( notify )
|
||||||
|
{
|
||||||
|
emit turnBindLeftChanged( m_settingsLeftHandTurnEnabled );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MoveCenterTabController::turnBindRight() const
|
||||||
|
{
|
||||||
|
return m_settingsRightHandTurnEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MoveCenterTabController::setTurnBindRight( bool value, bool notify )
|
||||||
|
{
|
||||||
|
m_settingsRightHandTurnEnabled = value;
|
||||||
|
auto settings = OverlayController::appSettings();
|
||||||
|
settings->beginGroup( "playspaceSettings" );
|
||||||
|
settings->setValue( "turnBindRight", m_settingsRightHandTurnEnabled );
|
||||||
|
settings->endGroup();
|
||||||
|
settings->sync();
|
||||||
|
if ( notify )
|
||||||
|
{
|
||||||
|
emit turnBindRightChanged( m_settingsRightHandTurnEnabled );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned MoveCenterTabController::dragComfortFactor() const
|
||||||
|
{
|
||||||
|
return m_dragComfortFactor;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MoveCenterTabController::setDragComfortFactor( unsigned value,
|
||||||
|
bool notify )
|
||||||
|
{
|
||||||
|
m_dragComfortFactor = value;
|
||||||
|
auto settings = OverlayController::appSettings();
|
||||||
|
settings->beginGroup( "playspaceSettings" );
|
||||||
|
settings->setValue( "dragComfortFactor", m_dragComfortFactor );
|
||||||
|
settings->endGroup();
|
||||||
|
settings->sync();
|
||||||
|
if ( notify )
|
||||||
|
{
|
||||||
|
emit dragComfortFactorChanged( m_dragComfortFactor );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned MoveCenterTabController::turnComfortFactor() const
|
||||||
|
{
|
||||||
|
return m_turnComfortFactor;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MoveCenterTabController::setTurnComfortFactor( unsigned value,
|
||||||
|
bool notify )
|
||||||
|
{
|
||||||
|
m_turnComfortFactor = value;
|
||||||
|
auto settings = OverlayController::appSettings();
|
||||||
|
settings->beginGroup( "playspaceSettings" );
|
||||||
|
settings->setValue( "turnComfortFactor", m_turnComfortFactor );
|
||||||
|
settings->endGroup();
|
||||||
|
settings->sync();
|
||||||
|
if ( notify )
|
||||||
|
{
|
||||||
|
emit turnComfortFactorChanged( m_turnComfortFactor );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool MoveCenterTabController::lockXToggle() const
|
bool MoveCenterTabController::lockXToggle() const
|
||||||
{
|
{
|
||||||
return m_lockXToggle;
|
return m_lockXToggle;
|
||||||
@@ -513,7 +610,7 @@ void MoveCenterTabController::resetHmdYawTotal()
|
|||||||
|
|
||||||
// START of drag bindings:
|
// START of drag bindings:
|
||||||
|
|
||||||
void MoveCenterTabController::leftHandRoomDrag( bool leftHandDragActive )
|
void MoveCenterTabController::leftHandSpaceDrag( bool leftHandDragActive )
|
||||||
{
|
{
|
||||||
if ( !m_settingsLeftHandDragEnabled )
|
if ( !m_settingsLeftHandDragEnabled )
|
||||||
{
|
{
|
||||||
@@ -556,7 +653,7 @@ void MoveCenterTabController::leftHandRoomDrag( bool leftHandDragActive )
|
|||||||
m_leftHandDragPressed = leftHandDragActive;
|
m_leftHandDragPressed = leftHandDragActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MoveCenterTabController::rightHandRoomDrag( bool rightHandDragActive )
|
void MoveCenterTabController::rightHandSpaceDrag( bool rightHandDragActive )
|
||||||
{
|
{
|
||||||
if ( !m_settingsRightHandDragEnabled )
|
if ( !m_settingsRightHandDragEnabled )
|
||||||
{
|
{
|
||||||
@@ -599,7 +696,7 @@ void MoveCenterTabController::rightHandRoomDrag( bool rightHandDragActive )
|
|||||||
m_rightHandDragPressed = rightHandDragActive;
|
m_rightHandDragPressed = rightHandDragActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MoveCenterTabController::optionalOverrideLeftHandRoomDrag(
|
void MoveCenterTabController::optionalOverrideLeftHandSpaceDrag(
|
||||||
bool overrideLeftHandDragActive )
|
bool overrideLeftHandDragActive )
|
||||||
{
|
{
|
||||||
if ( !m_settingsLeftHandDragEnabled )
|
if ( !m_settingsLeftHandDragEnabled )
|
||||||
@@ -641,7 +738,7 @@ void MoveCenterTabController::optionalOverrideLeftHandRoomDrag(
|
|||||||
m_overrideLeftHandDragPressed = overrideLeftHandDragActive;
|
m_overrideLeftHandDragPressed = overrideLeftHandDragActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MoveCenterTabController::optionalOverrideRightHandRoomDrag(
|
void MoveCenterTabController::optionalOverrideRightHandSpaceDrag(
|
||||||
bool overrideRightHandDragActive )
|
bool overrideRightHandDragActive )
|
||||||
{
|
{
|
||||||
if ( !m_settingsRightHandDragEnabled )
|
if ( !m_settingsRightHandDragEnabled )
|
||||||
@@ -687,9 +784,9 @@ void MoveCenterTabController::optionalOverrideRightHandRoomDrag(
|
|||||||
|
|
||||||
// START of turn bindgins
|
// START of turn bindgins
|
||||||
|
|
||||||
void MoveCenterTabController::leftHandRoomTurn( bool leftHandTurnActive )
|
void MoveCenterTabController::leftHandSpaceTurn( bool leftHandTurnActive )
|
||||||
{
|
{
|
||||||
if ( !m_settingsHandTurningEnabled )
|
if ( !m_settingsLeftHandTurnEnabled )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -730,9 +827,9 @@ void MoveCenterTabController::leftHandRoomTurn( bool leftHandTurnActive )
|
|||||||
m_leftHandTurnPressed = leftHandTurnActive;
|
m_leftHandTurnPressed = leftHandTurnActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MoveCenterTabController::rightHandRoomTurn( bool rightHandTurnActive )
|
void MoveCenterTabController::rightHandSpaceTurn( bool rightHandTurnActive )
|
||||||
{
|
{
|
||||||
if ( !m_settingsHandTurningEnabled )
|
if ( !m_settingsRightHandTurnEnabled )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -773,10 +870,10 @@ void MoveCenterTabController::rightHandRoomTurn( bool rightHandTurnActive )
|
|||||||
m_rightHandTurnPressed = rightHandTurnActive;
|
m_rightHandTurnPressed = rightHandTurnActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MoveCenterTabController::optionalOverrideLeftHandRoomTurn(
|
void MoveCenterTabController::optionalOverrideLeftHandSpaceTurn(
|
||||||
bool overrideLeftHandTurnActive )
|
bool overrideLeftHandTurnActive )
|
||||||
{
|
{
|
||||||
if ( !m_settingsHandTurningEnabled )
|
if ( !m_settingsLeftHandTurnEnabled )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -815,10 +912,10 @@ void MoveCenterTabController::optionalOverrideLeftHandRoomTurn(
|
|||||||
m_overrideLeftHandTurnPressed = overrideLeftHandTurnActive;
|
m_overrideLeftHandTurnPressed = overrideLeftHandTurnActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MoveCenterTabController::optionalOverrideRightHandRoomTurn(
|
void MoveCenterTabController::optionalOverrideRightHandSpaceTurn(
|
||||||
bool overrideRightHandTurnActive )
|
bool overrideRightHandTurnActive )
|
||||||
{
|
{
|
||||||
if ( !m_settingsHandTurningEnabled )
|
if ( !m_settingsRightHandTurnEnabled )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1113,6 +1210,8 @@ void MoveCenterTabController::eventLoopTick(
|
|||||||
// get current space rotation in radians
|
// get current space rotation in radians
|
||||||
double angle = m_rotation * k_centidegreesToRadians;
|
double angle = m_rotation * k_centidegreesToRadians;
|
||||||
|
|
||||||
|
// hmd rotations stats counting doesn't need to be smooth, so we skip some
|
||||||
|
// frames for performance
|
||||||
if ( m_hmdRotationStatsUpdateCounter >= k_hmdRotationCounterUpdateRate )
|
if ( m_hmdRotationStatsUpdateCounter >= k_hmdRotationCounterUpdateRate )
|
||||||
{
|
{
|
||||||
// device pose index 0 is always the hmd
|
// device pose index 0 is always the hmd
|
||||||
@@ -1124,8 +1223,32 @@ void MoveCenterTabController::eventLoopTick(
|
|||||||
m_hmdRotationStatsUpdateCounter++;
|
m_hmdRotationStatsUpdateCounter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateHandDrag( devicePoses, angle );
|
// Smooth drag motion can cause sim-sickness so we check if the user wants
|
||||||
|
// to skip frames to reduce vection. We use the factor squared because of
|
||||||
|
// logarithmic human perception.
|
||||||
|
if ( m_dragComfortFrameSkipCounter
|
||||||
|
>= ( m_dragComfortFactor * m_dragComfortFactor ) )
|
||||||
|
{
|
||||||
|
updateHandDrag( devicePoses, angle );
|
||||||
|
m_dragComfortFrameSkipCounter = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_dragComfortFrameSkipCounter++;
|
||||||
|
}
|
||||||
|
|
||||||
updateHandTurn( devicePoses, angle );
|
// Smooth turn motion can cause sim-sickness so we check if the user wants
|
||||||
|
// to skip frames to reduce vection. We use the factor squared because of
|
||||||
|
// logarithmic human perception.
|
||||||
|
if ( m_turnComfortFrameSkipCounter
|
||||||
|
>= ( m_turnComfortFactor * m_turnComfortFactor ) )
|
||||||
|
{
|
||||||
|
updateHandTurn( devicePoses, angle );
|
||||||
|
m_turnComfortFrameSkipCounter = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_turnComfortFrameSkipCounter++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} // namespace advsettings
|
} // namespace advsettings
|
||||||
|
|||||||
@@ -39,6 +39,14 @@ class MoveCenterTabController : public QObject
|
|||||||
setMoveShortcutRight NOTIFY moveShortcutRightChanged )
|
setMoveShortcutRight NOTIFY moveShortcutRightChanged )
|
||||||
Q_PROPERTY( bool moveShortcutLeft READ moveShortcutLeft WRITE
|
Q_PROPERTY( bool moveShortcutLeft READ moveShortcutLeft WRITE
|
||||||
setMoveShortcutLeft NOTIFY moveShortcutLeftChanged )
|
setMoveShortcutLeft NOTIFY moveShortcutLeftChanged )
|
||||||
|
Q_PROPERTY( bool turnBindLeft READ turnBindLeft WRITE setTurnBindLeft NOTIFY
|
||||||
|
turnBindLeftChanged )
|
||||||
|
Q_PROPERTY( bool turnBindRight READ turnBindRight WRITE setTurnBindRight
|
||||||
|
NOTIFY turnBindRightChanged )
|
||||||
|
Q_PROPERTY( unsigned dragComfortFactor READ dragComfortFactor WRITE
|
||||||
|
setDragComfortFactor NOTIFY dragComfortFactorChanged )
|
||||||
|
Q_PROPERTY( unsigned turnComfortFactor READ turnComfortFactor WRITE
|
||||||
|
setTurnComfortFactor NOTIFY turnComfortFactorChanged )
|
||||||
Q_PROPERTY( bool lockXToggle READ lockXToggle WRITE setLockX NOTIFY
|
Q_PROPERTY( bool lockXToggle READ lockXToggle WRITE setLockX NOTIFY
|
||||||
requireLockXChanged )
|
requireLockXChanged )
|
||||||
Q_PROPERTY( bool lockYToggle READ lockYToggle WRITE setLockY NOTIFY
|
Q_PROPERTY( bool lockYToggle READ lockYToggle WRITE setLockY NOTIFY
|
||||||
@@ -66,10 +74,13 @@ private:
|
|||||||
float m_lastControllerPosition[3];
|
float m_lastControllerPosition[3];
|
||||||
bool m_settingsRightHandDragEnabled = false;
|
bool m_settingsRightHandDragEnabled = false;
|
||||||
bool m_settingsLeftHandDragEnabled = false;
|
bool m_settingsLeftHandDragEnabled = false;
|
||||||
|
bool m_settingsLeftHandTurnEnabled = false;
|
||||||
|
bool m_settingsRightHandTurnEnabled = false;
|
||||||
|
unsigned m_dragComfortFactor = 0;
|
||||||
|
unsigned m_turnComfortFactor = 0;
|
||||||
bool m_lockXToggle = false;
|
bool m_lockXToggle = false;
|
||||||
bool m_lockYToggle = false;
|
bool m_lockYToggle = false;
|
||||||
bool m_lockZToggle = false;
|
bool m_lockZToggle = false;
|
||||||
std::chrono::system_clock::time_point lastMoveButtonClick[2];
|
|
||||||
// Set lastHandQuaternion.w to -1000.0 when last hand is invalid.
|
// Set lastHandQuaternion.w to -1000.0 when last hand is invalid.
|
||||||
vr::HmdQuaternion_t m_lastHandQuaternion
|
vr::HmdQuaternion_t m_lastHandQuaternion
|
||||||
= { k_quaternionInvalidValue, 0.0, 0.0, 0.0 };
|
= { k_quaternionInvalidValue, 0.0, 0.0, 0.0 };
|
||||||
@@ -97,6 +108,8 @@ private:
|
|||||||
bool m_overrideRightHandTurnPressed = false;
|
bool m_overrideRightHandTurnPressed = false;
|
||||||
unsigned settingsUpdateCounter = 0;
|
unsigned settingsUpdateCounter = 0;
|
||||||
int m_hmdRotationStatsUpdateCounter = 0;
|
int m_hmdRotationStatsUpdateCounter = 0;
|
||||||
|
unsigned m_dragComfortFrameSkipCounter = 0;
|
||||||
|
unsigned m_turnComfortFrameSkipCounter = 0;
|
||||||
void updateHmdRotationCounter( vr::TrackedDevicePose_t hmdPose,
|
void updateHmdRotationCounter( vr::TrackedDevicePose_t hmdPose,
|
||||||
double angle );
|
double angle );
|
||||||
void updateHandDrag( vr::TrackedDevicePose_t* devicePoses, double angle );
|
void updateHandDrag( vr::TrackedDevicePose_t* devicePoses, double angle );
|
||||||
@@ -118,6 +131,10 @@ public:
|
|||||||
bool rotateHand() const;
|
bool rotateHand() const;
|
||||||
bool moveShortcutRight() const;
|
bool moveShortcutRight() const;
|
||||||
bool moveShortcutLeft() const;
|
bool moveShortcutLeft() const;
|
||||||
|
bool turnBindRight() const;
|
||||||
|
bool turnBindLeft() const;
|
||||||
|
unsigned dragComfortFactor() const;
|
||||||
|
unsigned turnComfortFactor() const;
|
||||||
bool lockXToggle() const;
|
bool lockXToggle() const;
|
||||||
bool lockYToggle() const;
|
bool lockYToggle() const;
|
||||||
bool lockZToggle() const;
|
bool lockZToggle() const;
|
||||||
@@ -125,14 +142,14 @@ public:
|
|||||||
void resetHmdYawTotal();
|
void resetHmdYawTotal();
|
||||||
|
|
||||||
// actions:
|
// actions:
|
||||||
void leftHandRoomDrag( bool leftHandDragActive );
|
void leftHandSpaceDrag( bool leftHandDragActive );
|
||||||
void rightHandRoomDrag( bool rightHandDragActive );
|
void rightHandSpaceDrag( bool rightHandDragActive );
|
||||||
void optionalOverrideLeftHandRoomDrag( bool overrideLeftHandDragActive );
|
void optionalOverrideLeftHandSpaceDrag( bool overrideLeftHandDragActive );
|
||||||
void optionalOverrideRightHandRoomDrag( bool overrideRightHandDragActive );
|
void optionalOverrideRightHandSpaceDrag( bool overrideRightHandDragActive );
|
||||||
void leftHandRoomTurn( bool leftHandTurnActive );
|
void leftHandSpaceTurn( bool leftHandTurnActive );
|
||||||
void rightHandRoomTurn( bool rightHandTurnActive );
|
void rightHandSpaceTurn( bool rightHandTurnActive );
|
||||||
void optionalOverrideLeftHandRoomTurn( bool overrideLeftHandTurnActive );
|
void optionalOverrideLeftHandSpaceTurn( bool overrideLeftHandTurnActive );
|
||||||
void optionalOverrideRightHandRoomTurn( bool overrideRightHandTurnActive );
|
void optionalOverrideRightHandSpaceTurn( bool overrideRightHandTurnActive );
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
int trackingUniverse() const;
|
int trackingUniverse() const;
|
||||||
@@ -152,6 +169,10 @@ public slots:
|
|||||||
|
|
||||||
void setMoveShortcutRight( bool value, bool notify = true );
|
void setMoveShortcutRight( bool value, bool notify = true );
|
||||||
void setMoveShortcutLeft( bool value, bool notify = true );
|
void setMoveShortcutLeft( bool value, bool notify = true );
|
||||||
|
void setTurnBindRight( bool value, bool notify = true );
|
||||||
|
void setTurnBindLeft( bool value, bool notify = true );
|
||||||
|
void setDragComfortFactor( unsigned value, bool notify = true );
|
||||||
|
void setTurnComfortFactor( unsigned value, bool notify = true );
|
||||||
|
|
||||||
void modOffsetX( float value, bool notify = true );
|
void modOffsetX( float value, bool notify = true );
|
||||||
void modOffsetY( float value, bool notify = true );
|
void modOffsetY( float value, bool notify = true );
|
||||||
@@ -175,6 +196,10 @@ signals:
|
|||||||
void rotateHandChanged( bool value );
|
void rotateHandChanged( bool value );
|
||||||
void moveShortcutRightChanged( bool value );
|
void moveShortcutRightChanged( bool value );
|
||||||
void moveShortcutLeftChanged( bool value );
|
void moveShortcutLeftChanged( bool value );
|
||||||
|
void turnBindRightChanged( bool value );
|
||||||
|
void turnBindLeftChanged( bool value );
|
||||||
|
void dragComfortFactorChanged( unsigned value );
|
||||||
|
void turnComfortFactorChanged( unsigned value );
|
||||||
void requireLockXChanged( bool value );
|
void requireLockXChanged( bool value );
|
||||||
void requireLockYChanged( bool value );
|
void requireLockYChanged( bool value );
|
||||||
void requireLockZChanged( bool value );
|
void requireLockZChanged( bool value );
|
||||||
|
|||||||
@@ -78,8 +78,8 @@ void StatisticsTabController::eventLoopTick(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// HMD Rotation //
|
// HMD Rotation //
|
||||||
double roomHmdYawTotal = parent->m_moveCenterTabController.getHmdYawTotal();
|
double spaceHmdYawTotal = parent->m_moveCenterTabController.getHmdYawTotal();
|
||||||
m_hmdRotation = static_cast<float>( roomHmdYawTotal / ( 2.0 * M_PI ) );
|
m_hmdRotation = static_cast<float>( spaceHmdYawTotal / ( 2.0 * M_PI ) );
|
||||||
|
|
||||||
if ( lastPosTimer <= 0 )
|
if ( lastPosTimer <= 0 )
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user