simplify move playspace code
This commit is contained in:
@@ -110,37 +110,20 @@ void MoveCenterTabController::setAdjustChaperone(bool value, bool notify) {
|
|||||||
m_adjustChaperone = value;
|
m_adjustChaperone = value;
|
||||||
if (m_trackingUniverse == vr::TrackingUniverseStanding) {
|
if (m_trackingUniverse == vr::TrackingUniverseStanding) {
|
||||||
vr::VRChaperoneSetup()->RevertWorkingCopy();
|
vr::VRChaperoneSetup()->RevertWorkingCopy();
|
||||||
float offsetdir;
|
auto angle = m_rotation * 2 * M_PI / 360.0;
|
||||||
if (m_adjustChaperone) {
|
float offsetdir = m_adjustChaperone ? -1.0 : 1.0;
|
||||||
offsetdir = -1.0;
|
float offset[3] = {
|
||||||
} else {
|
offsetdir * m_offsetX,
|
||||||
offsetdir = 1.0;
|
offsetdir * m_offsetY,
|
||||||
}
|
offsetdir * m_offsetZ
|
||||||
|
};
|
||||||
|
rotateCoordinates(offset, angle);
|
||||||
|
|
||||||
|
parent->AddOffsetToCollisionBounds(offset, false);
|
||||||
|
|
||||||
if (m_offsetX != 0.0f) {
|
|
||||||
if (m_adjustChaperone || m_rotation == 0) {
|
|
||||||
parent->AddOffsetToCollisionBounds(0, offsetdir * m_offsetX, false);
|
|
||||||
} else {
|
|
||||||
auto angle = m_rotation * 2 * M_PI / 360.0;
|
|
||||||
parent->AddOffsetToCollisionBounds(0, offsetdir * m_offsetX * std::cos(angle), false);
|
|
||||||
parent->AddOffsetToCollisionBounds(2, offsetdir * m_offsetX * std::sin(angle), false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (m_offsetY != 0.0f) {
|
|
||||||
parent->AddOffsetToCollisionBounds(1, offsetdir * m_offsetY, false);
|
|
||||||
}
|
|
||||||
if (m_offsetZ != 0.0f) {
|
|
||||||
if (m_adjustChaperone || m_rotation == 0) {
|
|
||||||
parent->AddOffsetToCollisionBounds(2, offsetdir * m_offsetZ, false);
|
|
||||||
} else {
|
|
||||||
auto angle = m_rotation * 2 * M_PI / 360.0;
|
|
||||||
parent->AddOffsetToCollisionBounds(2, offsetdir * m_offsetZ * std::cos(angle), false);
|
|
||||||
parent->AddOffsetToCollisionBounds(0, -offsetdir * m_offsetZ * std::sin(angle), false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (m_rotation != 0) {
|
if (m_rotation != 0) {
|
||||||
float angle = m_rotation * 2 * M_PI / 360.0;
|
float angle = m_rotation * 2 * M_PI / 360.0;
|
||||||
parent->RotateCollisionBounds(offsetdir * angle, false);
|
//parent->RotateCollisionBounds(offsetdir * angle, false);
|
||||||
}
|
}
|
||||||
vr::VRChaperoneSetup()->CommitWorkingCopy(vr::EChaperoneConfigFile_Live);
|
vr::VRChaperoneSetup()->CommitWorkingCopy(vr::EChaperoneConfigFile_Live);
|
||||||
}
|
}
|
||||||
@@ -189,15 +172,10 @@ void MoveCenterTabController::setMoveShortcutLeft(bool value, bool notify) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MoveCenterTabController::modOffsetX(float value, bool notify) {
|
void MoveCenterTabController::modOffsetX(float value, bool notify) {
|
||||||
if (m_rotation == 0) {
|
auto angle = m_rotation * 2 * M_PI / 360.0;
|
||||||
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 0, value, m_adjustChaperone);
|
float offset[3] = { value, 0, 0 };
|
||||||
} else {
|
rotateCoordinates(offset, angle);
|
||||||
auto angle = m_rotation * 2 * M_PI / 360.0;
|
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, offset, m_adjustChaperone);
|
||||||
vr::VRChaperoneSetup()->RevertWorkingCopy();
|
|
||||||
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 0, value * std::cos(angle), m_adjustChaperone, false);
|
|
||||||
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 2, value * std::sin(angle), m_adjustChaperone, false);
|
|
||||||
vr::VRChaperoneSetup()->CommitWorkingCopy(vr::EChaperoneConfigFile_Live);
|
|
||||||
}
|
|
||||||
m_offsetX += value;
|
m_offsetX += value;
|
||||||
if (notify) {
|
if (notify) {
|
||||||
emit offsetXChanged(m_offsetX);
|
emit offsetXChanged(m_offsetX);
|
||||||
@@ -213,15 +191,10 @@ void MoveCenterTabController::modOffsetY(float value, bool notify) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MoveCenterTabController::modOffsetZ(float value, bool notify) {
|
void MoveCenterTabController::modOffsetZ(float value, bool notify) {
|
||||||
if (m_rotation == 0) {
|
auto angle = m_rotation * 2 * M_PI / 360.0;
|
||||||
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 2, value, m_adjustChaperone);
|
float offset[3] = { 0, 0, value };
|
||||||
} else {
|
rotateCoordinates(offset, angle);
|
||||||
auto angle = m_rotation * 2 * M_PI / 360.0;
|
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, offset, m_adjustChaperone);
|
||||||
vr::VRChaperoneSetup()->RevertWorkingCopy();
|
|
||||||
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 2, value * std::cos(angle), m_adjustChaperone, false);
|
|
||||||
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 0, -value * std::sin(angle), m_adjustChaperone, false);
|
|
||||||
vr::VRChaperoneSetup()->CommitWorkingCopy(vr::EChaperoneConfigFile_Live);
|
|
||||||
}
|
|
||||||
m_offsetZ += value;
|
m_offsetZ += value;
|
||||||
if (notify) {
|
if (notify) {
|
||||||
emit offsetZChanged(m_offsetZ);
|
emit offsetZChanged(m_offsetZ);
|
||||||
@@ -231,9 +204,12 @@ void MoveCenterTabController::modOffsetZ(float value, bool notify) {
|
|||||||
void MoveCenterTabController::reset() {
|
void MoveCenterTabController::reset() {
|
||||||
vr::VRChaperoneSetup()->RevertWorkingCopy();
|
vr::VRChaperoneSetup()->RevertWorkingCopy();
|
||||||
parent->RotateUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, -m_rotation * 2 * M_PI / 360.0, m_adjustChaperone, false);
|
parent->RotateUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, -m_rotation * 2 * M_PI / 360.0, m_adjustChaperone, false);
|
||||||
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 0, -m_offsetX, m_adjustChaperone, false);
|
float offset[3] = {
|
||||||
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 1, -m_offsetY, m_adjustChaperone, false);
|
-m_offsetX,
|
||||||
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, 2, -m_offsetZ, m_adjustChaperone, false);
|
-m_offsetY,
|
||||||
|
-m_offsetZ
|
||||||
|
};
|
||||||
|
parent->AddOffsetToUniverseCenter((vr::TrackingUniverseOrigin)m_trackingUniverse, offset, m_adjustChaperone, false);
|
||||||
vr::VRChaperoneSetup()->CommitWorkingCopy(vr::EChaperoneConfigFile_Live);
|
vr::VRChaperoneSetup()->CommitWorkingCopy(vr::EChaperoneConfigFile_Live);
|
||||||
m_offsetX = 0.0f;
|
m_offsetX = 0.0f;
|
||||||
m_offsetY = 0.0f;
|
m_offsetY = 0.0f;
|
||||||
@@ -306,7 +282,7 @@ void MoveCenterTabController::eventLoopTick(vr::ETrackingUniverseOrigin universe
|
|||||||
emit offsetZChanged(m_offsetZ);
|
emit offsetZChanged(m_offsetZ);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
} else if (newMoveHand != vr::TrackedControllerRole_Invalid) {
|
} else if (newMoveHand != vr::TrackedControllerRole_Invalid && oldMoveHand == vr::TrackedControllerRole_Invalid) {
|
||||||
vr::VRChaperoneSetup()->RevertWorkingCopy();
|
vr::VRChaperoneSetup()->RevertWorkingCopy();
|
||||||
}
|
}
|
||||||
vr::TrackedDevicePose_t* pose = devicePoses + handId;
|
vr::TrackedDevicePose_t* pose = devicePoses + handId;
|
||||||
|
|||||||
Reference in New Issue
Block a user