WMR/Rift bind release reset fix and space fix undo disable (#142)

* Test removal of HideWorkingSetPreview for issue #133

* Update WorkingSetPreview on apply reset data for issue #133

* fixed bug to apply floor fix offsets properly

* updated version to 3.0.1

* format

* Prevent space offsets effect on fix floor measurement

* Reorder chaperone commit timing on reset

This is an attempt to smooth apparent ~0.1sec lag on first movement after using a reset.

* Fix space fix tab (todo: reimplement undo button)
This commit is contained in:
Kung-vr
2019-03-30 13:56:27 -05:00
committed by ykeara
parent f57347a89c
commit bcdf87b0f5
8 changed files with 40 additions and 13 deletions
@@ -812,7 +812,8 @@ void ChaperoneTabController::setHeight( float value, bool notify )
if ( m_height != value )
{
m_height = value;
vr::VRChaperoneSetup()->RevertWorkingCopy();
// TODO revert?
// vr::VRChaperoneSetup()->RevertWorkingCopy();
unsigned collisionBoundsCount = 0;
vr::VRChaperoneSetup()->GetWorkingCollisionBoundsInfo(
nullptr, &collisionBoundsCount );
@@ -831,8 +832,9 @@ void ChaperoneTabController::setHeight( float value, bool notify )
}
vr::VRChaperoneSetup()->SetWorkingCollisionBoundsInfo(
collisionBounds, collisionBoundsCount );
vr::VRChaperoneSetup()->CommitWorkingCopy(
vr::EChaperoneConfigFile_Live );
// TODO revert?
// vr::VRChaperoneSetup()->CommitWorkingCopy(
// vr::EChaperoneConfigFile_Live );
delete[] collisionBounds;
}
if ( notify )
@@ -1358,6 +1360,7 @@ void ChaperoneTabController::addChaperoneProfile(
profile->includesChaperoneGeometry = includeGeometry;
if ( includeGeometry )
{
vr::VRChaperoneSetup()->HideWorkingSetPreview();
vr::VRChaperoneSetup()->RevertWorkingCopy();
uint32_t quadCount = 0;
vr::VRChaperoneSetup()->GetLiveCollisionBoundsInfo( nullptr,
@@ -1505,6 +1508,7 @@ void ChaperoneTabController::applyChaperoneProfile( unsigned index )
if ( profile.includesChaperoneGeometry )
{
parent->m_moveCenterTabController.reset();
vr::VRChaperoneSetup()->HideWorkingSetPreview();
vr::VRChaperoneSetup()->RevertWorkingCopy();
vr::VRChaperoneSetup()->SetWorkingCollisionBoundsInfo(
profile.chaperoneGeometryQuads.get(),
+10 -3
View File
@@ -161,7 +161,10 @@ void FixFloorTabController::eventLoopTick(
floorOffsetY;
*/
}
floorOffsetY = static_cast<float>( tempOffsetY );
else
{
floorOffsetY = static_cast<float>( tempOffsetY );
}
}
else
{
@@ -188,7 +191,10 @@ void FixFloorTabController::eventLoopTick(
floorOffsetY;
*/
}
floorOffsetY = static_cast<float>( tempOffsetY );
else
{
floorOffsetY = static_cast<float>( tempOffsetY );
}
}
floorOffsetX = static_cast<float>( tempOffsetX );
@@ -205,7 +211,6 @@ void FixFloorTabController::eventLoopTick(
offset[0] = floorOffsetX;
offset[2] = floorOffsetZ;
}
parent->m_moveCenterTabController.reset();
parent->AddOffsetToUniverseCenter(
vr::TrackingUniverseStanding, offset, true );
statusMessage
@@ -291,6 +296,7 @@ void FixFloorTabController::setCanUndo( bool value, bool notify )
void FixFloorTabController::fixFloorClicked()
{
parent->m_moveCenterTabController.reset();
statusMessage = "Fixing ...";
statusMessageTimeout = 1.0;
emit statusMessageSignal();
@@ -301,6 +307,7 @@ void FixFloorTabController::fixFloorClicked()
void FixFloorTabController::recenterClicked()
{
parent->m_moveCenterTabController.reset();
statusMessage = "Fixing ...";
statusMessageTimeout = 1.0;
emit statusMessageSignal();
@@ -731,6 +731,7 @@ void MoveCenterTabController::clampVelocity( double* velocity )
void MoveCenterTabController::updateChaperoneResetData()
{
vr::VRChaperoneSetup()->HideWorkingSetPreview();
vr::VRChaperoneSetup()->RevertWorkingCopy();
unsigned currentQuadCount = 0;
vr::VRChaperoneSetup()->GetWorkingCollisionBoundsInfo( nullptr,
@@ -768,16 +769,22 @@ void MoveCenterTabController::updateChaperoneResetData()
-universeCenterForResetYaw );
}
}
// update the working set preview for potential Oculus and WMR issues
vr::VRChaperoneSetup()->ShowWorkingSetPreview();
}
void MoveCenterTabController::applyChaperoneResetData()
{
vr::VRChaperoneSetup()->HideWorkingSetPreview();
vr::VRChaperoneSetup()->RevertWorkingCopy();
vr::VRChaperoneSetup()->SetWorkingCollisionBoundsInfo(
m_collisionBoundsForReset, m_collisionBoundsCountForReset );
vr::VRChaperoneSetup()->SetWorkingStandingZeroPoseToRawTrackingPose(
&m_universeCenterForReset );
vr::VRChaperoneSetup()->CommitWorkingCopy( vr::EChaperoneConfigFile_Live );
// update the working set preview otherwise Oculus and WMR users may not see
// results of the reset
vr::VRChaperoneSetup()->ShowWorkingSetPreview();
}
// START of drag bindings:
@@ -1487,7 +1494,8 @@ void MoveCenterTabController::saveUncommittedChaperone()
{
vr::VRChaperoneSetup()->CommitWorkingCopy(
vr::EChaperoneConfigFile_Live );
vr::VRChaperoneSetup()->HideWorkingSetPreview();
// test removal for oculus and WMR users
// vr::VRChaperoneSetup()->HideWorkingSetPreview();
m_chaperoneCommitted = true;
}
}