Velocity fade dependent setting removal (#282)
* removed velocity fade dependent fade. * changed floating point comparisons * explicit conversion changes * removed head speed calculation from overlaycontroller as no longer used
This commit is contained in:
@@ -1030,22 +1030,13 @@ void OverlayController::mainEventLoop()
|
|||||||
rightSpeed
|
rightSpeed
|
||||||
= std::sqrt( vel[0] * vel[0] + vel[1] * vel[1] + vel[2] * vel[2] );
|
= std::sqrt( vel[0] * vel[0] + vel[1] * vel[1] + vel[2] * vel[2] );
|
||||||
}
|
}
|
||||||
auto hmdSpeed = 0.0f;
|
|
||||||
if ( devicePoses[vr::k_unTrackedDeviceIndex_Hmd].bPoseIsValid
|
|
||||||
&& devicePoses[vr::k_unTrackedDeviceIndex_Hmd].eTrackingResult
|
|
||||||
== vr::TrackingResult_Running_OK )
|
|
||||||
{
|
|
||||||
auto& vel = devicePoses[vr::k_unTrackedDeviceIndex_Hmd].vVelocity.v;
|
|
||||||
hmdSpeed
|
|
||||||
= std::sqrt( vel[0] * vel[0] + vel[1] * vel[1] + vel[2] * vel[2] );
|
|
||||||
}
|
|
||||||
m_moveCenterTabController.eventLoopTick(
|
m_moveCenterTabController.eventLoopTick(
|
||||||
vr::VRCompositor()->GetTrackingSpace(), devicePoses );
|
vr::VRCompositor()->GetTrackingSpace(), devicePoses );
|
||||||
m_utilitiesTabController.eventLoopTick();
|
m_utilitiesTabController.eventLoopTick();
|
||||||
m_statisticsTabController.eventLoopTick(
|
m_statisticsTabController.eventLoopTick(
|
||||||
devicePoses, leftSpeed, rightSpeed );
|
devicePoses, leftSpeed, rightSpeed );
|
||||||
m_chaperoneTabController.eventLoopTick(
|
m_chaperoneTabController.eventLoopTick( devicePoses );
|
||||||
devicePoses, leftSpeed, rightSpeed, hmdSpeed );
|
|
||||||
m_audioTabController.eventLoopTick();
|
m_audioTabController.eventLoopTick();
|
||||||
|
|
||||||
if ( vr::VROverlay()->IsDashboardVisible() )
|
if ( vr::VROverlay()->IsDashboardVisible() )
|
||||||
|
|||||||
@@ -384,95 +384,6 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ColumnLayout {
|
|
||||||
spacing: 0
|
|
||||||
MyToggleButton {
|
|
||||||
id: velModifierToggle
|
|
||||||
text: "Velocity Dependent Fade/Activation Distance"
|
|
||||||
onCheckedChanged: {
|
|
||||||
ChaperoneTabController.chaperoneVelocityModifierEnabled = checked
|
|
||||||
}
|
|
||||||
}
|
|
||||||
RowLayout {
|
|
||||||
MyText {
|
|
||||||
text: "Distance Modifier: "
|
|
||||||
Layout.preferredWidth: 250
|
|
||||||
}
|
|
||||||
MyPushButton2 {
|
|
||||||
id: velModifierMinusButton
|
|
||||||
Layout.preferredWidth: 40
|
|
||||||
text: "-"
|
|
||||||
onClicked: {
|
|
||||||
var val = ChaperoneTabController.chaperoneVelocityModifier - 0.01
|
|
||||||
if (val < 0.0) {
|
|
||||||
val = 0.0;
|
|
||||||
}
|
|
||||||
ChaperoneTabController.chaperoneVelocityModifier = val.toFixed(2)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MySlider {
|
|
||||||
id: velModifierSlider
|
|
||||||
from: 0
|
|
||||||
to: 1.0
|
|
||||||
stepSize: 0.01
|
|
||||||
value: 0.3
|
|
||||||
Layout.fillWidth: true
|
|
||||||
onPositionChanged: {
|
|
||||||
var val = this.from + ( this.position * (this.to - this.from))
|
|
||||||
velModifierText.text = val.toFixed(2)
|
|
||||||
}
|
|
||||||
onValueChanged: {
|
|
||||||
var val = velModifierSlider.value.toFixed(2)
|
|
||||||
if (val < 0.0) {
|
|
||||||
val = 0.0
|
|
||||||
}
|
|
||||||
ChaperoneTabController.chaperoneVelocityModifier = val
|
|
||||||
velModifierText.text = val
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MyPushButton2 {
|
|
||||||
id: velModifierPlusButton
|
|
||||||
Layout.preferredWidth: 40
|
|
||||||
text: "+"
|
|
||||||
onClicked: {
|
|
||||||
var val = ChaperoneTabController.chaperoneVelocityModifier + 0.01
|
|
||||||
if (val > 1.0) {
|
|
||||||
val = 1.0;
|
|
||||||
}
|
|
||||||
ChaperoneTabController.chaperoneVelocityModifier = val.toFixed(2)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MyTextField {
|
|
||||||
id: velModifierText
|
|
||||||
text: "0.00"
|
|
||||||
keyBoardUID: 804
|
|
||||||
Layout.preferredWidth: 100
|
|
||||||
Layout.leftMargin: 10
|
|
||||||
horizontalAlignment: Text.AlignHCenter
|
|
||||||
function onInputEvent(input) {
|
|
||||||
var val = parseFloat(input)
|
|
||||||
if (!isNaN(val)) {
|
|
||||||
if (val < 0.0) {
|
|
||||||
val = 0.0
|
|
||||||
}
|
|
||||||
val = val.toFixed(2)
|
|
||||||
ChaperoneTabController.chaperoneVelocityModifier = val
|
|
||||||
text = val
|
|
||||||
} else {
|
|
||||||
text = ChaperoneTabController.chaperoneVelocityModifier.toFixed(2)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Item { Layout.fillHeight: true; Layout.fillWidth: true }
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
switchBeginnerToggle.checked = ChaperoneTabController.chaperoneSwitchToBeginnerEnabled
|
switchBeginnerToggle.checked = ChaperoneTabController.chaperoneSwitchToBeginnerEnabled
|
||||||
var d = ChaperoneTabController.chaperoneSwitchToBeginnerDistance.toFixed(2)
|
var d = ChaperoneTabController.chaperoneSwitchToBeginnerDistance.toFixed(2)
|
||||||
@@ -500,12 +411,6 @@ MyStackViewPage {
|
|||||||
openDashboardDistanceSlider.value = d
|
openDashboardDistanceSlider.value = d
|
||||||
}
|
}
|
||||||
openDashboardDistanceText.text = d
|
openDashboardDistanceText.text = d
|
||||||
velModifierToggle.checked = ChaperoneTabController.chaperoneVelocityModifierEnabled
|
|
||||||
d = ChaperoneTabController.chaperoneVelocityModifier.toFixed(2)
|
|
||||||
if (d <= velModifierSlider.to) {
|
|
||||||
velModifierSlider.value = d
|
|
||||||
}
|
|
||||||
velModifierText.text = d
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
@@ -553,16 +458,6 @@ MyStackViewPage {
|
|||||||
}
|
}
|
||||||
openDashboardDistanceText.text = d
|
openDashboardDistanceText.text = d
|
||||||
}
|
}
|
||||||
onChaperoneVelocityModifierEnabledChanged: {
|
|
||||||
velModifierToggle.checked = ChaperoneTabController.chaperoneVelocityModifierEnabled
|
|
||||||
}
|
|
||||||
onChaperoneVelocityModifierChanged: {
|
|
||||||
var d = ChaperoneTabController.chaperoneVelocityModifier.toFixed(2)
|
|
||||||
if (d <= velModifierSlider.to && Math.abs(velModifierSlider.value - d) > 0.0008) {
|
|
||||||
velModifierSlider.value = d
|
|
||||||
}
|
|
||||||
velModifierText.text = d
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,18 +33,13 @@ void ChaperoneTabController::initStage1()
|
|||||||
= settings->value( "chaperoneShowDashboardEnabled", false ).toBool();
|
= settings->value( "chaperoneShowDashboardEnabled", false ).toBool();
|
||||||
m_chaperoneShowDashboardDistance
|
m_chaperoneShowDashboardDistance
|
||||||
= settings->value( "chaperoneShowDashboardDistance", 0.5f ).toFloat();
|
= settings->value( "chaperoneShowDashboardDistance", 0.5f ).toFloat();
|
||||||
m_enableChaperoneVelocityModifier
|
|
||||||
= settings->value( "chaperoneVelocityModifierEnabled", false ).toBool();
|
|
||||||
m_chaperoneVelocityModifier
|
|
||||||
= settings->value( "chaperoneVelocityModifier", 0.3f ).toFloat();
|
|
||||||
m_chaperoneVelocityModifierCurrent = 1.0f;
|
|
||||||
m_disableChaperone = settings->value( "disableChaperone", false ).toBool();
|
m_disableChaperone = settings->value( "disableChaperone", false ).toBool();
|
||||||
m_fadeDistanceRemembered
|
m_fadeDistanceRemembered
|
||||||
= settings->value( "fadeDistanceRemembered", 0.5f ).toFloat();
|
= settings->value( "fadeDistanceRemembered", 0.5f ).toFloat();
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
reloadChaperoneProfiles();
|
reloadChaperoneProfiles();
|
||||||
|
|
||||||
eventLoopTick( nullptr, 0.0f, 0.0f, 0.0f );
|
eventLoopTick( nullptr );
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChaperoneTabController::initStage2( OverlayController* var_parent )
|
void ChaperoneTabController::initStage2( OverlayController* var_parent )
|
||||||
@@ -210,12 +205,6 @@ void ChaperoneTabController::reloadChaperoneProfiles()
|
|||||||
entry.chaperoneShowDashboardDistance
|
entry.chaperoneShowDashboardDistance
|
||||||
= settings->value( "chaperoneShowDashboardDistance", 0.5f )
|
= settings->value( "chaperoneShowDashboardDistance", 0.5f )
|
||||||
.toFloat();
|
.toFloat();
|
||||||
entry.enableChaperoneVelocityModifier
|
|
||||||
= settings->value( "chaperoneVelocityModifierEnabled", false )
|
|
||||||
.toBool();
|
|
||||||
entry.chaperoneVelocityModifier
|
|
||||||
= settings->value( "chaperoneVelocityModifier", 0.3f )
|
|
||||||
.toFloat();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
settings->endArray();
|
settings->endArray();
|
||||||
@@ -343,10 +332,6 @@ void ChaperoneTabController::saveChaperoneProfiles()
|
|||||||
p.enableChaperoneShowDashboard );
|
p.enableChaperoneShowDashboard );
|
||||||
settings->setValue( "chaperoneShowDashboardDistance",
|
settings->setValue( "chaperoneShowDashboardDistance",
|
||||||
p.chaperoneShowDashboardDistance );
|
p.chaperoneShowDashboardDistance );
|
||||||
settings->setValue( "chaperoneVelocityModifierEnabled",
|
|
||||||
p.enableChaperoneVelocityModifier );
|
|
||||||
settings->setValue( "chaperoneVelocityModifier",
|
|
||||||
p.chaperoneVelocityModifier );
|
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
@@ -373,8 +358,7 @@ void ChaperoneTabController::handleChaperoneWarnings( float distance )
|
|||||||
// Switch to Beginner Mode
|
// Switch to Beginner Mode
|
||||||
if ( m_enableChaperoneSwitchToBeginner )
|
if ( m_enableChaperoneSwitchToBeginner )
|
||||||
{
|
{
|
||||||
float activationDistance = m_chaperoneSwitchToBeginnerDistance
|
float activationDistance = m_chaperoneSwitchToBeginnerDistance;
|
||||||
* m_chaperoneVelocityModifierCurrent;
|
|
||||||
|
|
||||||
if ( distance <= activationDistance && m_isHMDActive
|
if ( distance <= activationDistance && m_isHMDActive
|
||||||
&& !m_chaperoneSwitchToBeginnerActive )
|
&& !m_chaperoneSwitchToBeginnerActive )
|
||||||
@@ -443,8 +427,7 @@ void ChaperoneTabController::handleChaperoneWarnings( float distance )
|
|||||||
|
|
||||||
if ( m_enableChaperoneHapticFeedback )
|
if ( m_enableChaperoneHapticFeedback )
|
||||||
{
|
{
|
||||||
float activationDistance = m_chaperoneHapticFeedbackDistance
|
float activationDistance = m_chaperoneHapticFeedbackDistance;
|
||||||
* m_chaperoneVelocityModifierCurrent;
|
|
||||||
|
|
||||||
if ( distance <= activationDistance && proxSensorOverrideState )
|
if ( distance <= activationDistance && proxSensorOverrideState )
|
||||||
{
|
{
|
||||||
@@ -511,8 +494,7 @@ void ChaperoneTabController::handleChaperoneWarnings( float distance )
|
|||||||
if ( m_enableChaperoneAlarmSound )
|
if ( m_enableChaperoneAlarmSound )
|
||||||
{
|
{
|
||||||
// LOG(WARNING) << "In alarm";
|
// LOG(WARNING) << "In alarm";
|
||||||
float activationDistance = m_chaperoneAlarmSoundDistance
|
float activationDistance = m_chaperoneAlarmSoundDistance;
|
||||||
* m_chaperoneVelocityModifierCurrent;
|
|
||||||
|
|
||||||
if ( distance <= activationDistance && proxSensorOverrideState )
|
if ( distance <= activationDistance && proxSensorOverrideState )
|
||||||
{
|
{
|
||||||
@@ -547,8 +529,7 @@ void ChaperoneTabController::handleChaperoneWarnings( float distance )
|
|||||||
// Show Dashboard
|
// Show Dashboard
|
||||||
if ( m_enableChaperoneShowDashboard )
|
if ( m_enableChaperoneShowDashboard )
|
||||||
{
|
{
|
||||||
float activationDistance = m_chaperoneShowDashboardDistance
|
float activationDistance = m_chaperoneShowDashboardDistance;
|
||||||
* m_chaperoneVelocityModifierCurrent;
|
|
||||||
if ( distance <= activationDistance && !m_chaperoneShowDashboardActive )
|
if ( distance <= activationDistance && !m_chaperoneShowDashboardActive )
|
||||||
{
|
{
|
||||||
if ( !vr::VROverlay()->IsDashboardVisible() )
|
if ( !vr::VROverlay()->IsDashboardVisible() )
|
||||||
@@ -567,32 +548,8 @@ void ChaperoneTabController::handleChaperoneWarnings( float distance )
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ChaperoneTabController::eventLoopTick(
|
void ChaperoneTabController::eventLoopTick(
|
||||||
vr::TrackedDevicePose_t* devicePoses,
|
vr::TrackedDevicePose_t* devicePoses )
|
||||||
float leftSpeed,
|
|
||||||
float rightSpeed,
|
|
||||||
float hmdSpeed )
|
|
||||||
{
|
{
|
||||||
m_chaperoneVelocityModifierCurrent = 1.0f;
|
|
||||||
if ( m_enableChaperoneVelocityModifier )
|
|
||||||
{
|
|
||||||
float mod = m_chaperoneVelocityModifier
|
|
||||||
* std::max( { leftSpeed, rightSpeed, hmdSpeed } );
|
|
||||||
if ( mod > 0.02f )
|
|
||||||
{
|
|
||||||
m_chaperoneVelocityModifierCurrent += mod;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float newFadeDistance = m_fadeDistance * m_chaperoneVelocityModifierCurrent;
|
|
||||||
if ( m_fadeDistanceModified != newFadeDistance )
|
|
||||||
{
|
|
||||||
m_fadeDistanceModified = newFadeDistance;
|
|
||||||
vr::VRSettings()->SetFloat(
|
|
||||||
vr::k_pch_CollisionBounds_Section,
|
|
||||||
vr::k_pch_CollisionBounds_FadeDistance_Float,
|
|
||||||
m_fadeDistanceModified );
|
|
||||||
vr::VRSettings()->Sync();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( devicePoses )
|
if ( devicePoses )
|
||||||
{
|
{
|
||||||
m_isHMDActive = false;
|
m_isHMDActive = false;
|
||||||
@@ -702,23 +659,16 @@ void ChaperoneTabController::eventLoopTick(
|
|||||||
vrSettingsError );
|
vrSettingsError );
|
||||||
}
|
}
|
||||||
setBoundsVisibility( vis / 255.0f );
|
setBoundsVisibility( vis / 255.0f );
|
||||||
if ( m_chaperoneVelocityModifierCurrent == 1.0f )
|
if ( vrSettingsError != vr::VRSettingsError_None )
|
||||||
{
|
{
|
||||||
auto fd = vr::VRSettings()->GetFloat(
|
LOG( WARNING )
|
||||||
vr::k_pch_CollisionBounds_Section,
|
<< "Could not read \""
|
||||||
vr::k_pch_CollisionBounds_FadeDistance_Float,
|
<< vr::k_pch_CollisionBounds_FadeDistance_Float
|
||||||
&vrSettingsError );
|
<< "\" setting: "
|
||||||
if ( vrSettingsError != vr::VRSettingsError_None )
|
<< vr::VRSettings()->GetSettingsErrorNameFromEnum(
|
||||||
{
|
vrSettingsError );
|
||||||
LOG( WARNING )
|
|
||||||
<< "Could not read \""
|
|
||||||
<< vr::k_pch_CollisionBounds_FadeDistance_Float
|
|
||||||
<< "\" setting: "
|
|
||||||
<< vr::VRSettings()->GetSettingsErrorNameFromEnum(
|
|
||||||
vrSettingsError );
|
|
||||||
}
|
|
||||||
setFadeDistance( fd );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto cm = vr::VRSettings()->GetBool(
|
auto cm = vr::VRSettings()->GetBool(
|
||||||
vr::k_pch_CollisionBounds_Section,
|
vr::k_pch_CollisionBounds_Section,
|
||||||
vr::k_pch_CollisionBounds_CenterMarkerOn_Bool,
|
vr::k_pch_CollisionBounds_CenterMarkerOn_Bool,
|
||||||
@@ -764,7 +714,7 @@ float ChaperoneTabController::boundsVisibility() const
|
|||||||
|
|
||||||
void ChaperoneTabController::setBoundsVisibility( float value, bool notify )
|
void ChaperoneTabController::setBoundsVisibility( float value, bool notify )
|
||||||
{
|
{
|
||||||
if ( m_visibility != value )
|
if ( fabs( static_cast<double>( m_visibility - m_visibility ) ) > 0.005 )
|
||||||
{
|
{
|
||||||
if ( value <= 0.3f )
|
if ( value <= 0.3f )
|
||||||
{
|
{
|
||||||
@@ -794,7 +744,7 @@ float ChaperoneTabController::fadeDistance() const
|
|||||||
|
|
||||||
void ChaperoneTabController::setFadeDistance( float value, bool notify )
|
void ChaperoneTabController::setFadeDistance( float value, bool notify )
|
||||||
{
|
{
|
||||||
if ( m_fadeDistance != value )
|
if ( fabs( static_cast<double>( m_fadeDistance - value ) ) > 0.005 )
|
||||||
{
|
{
|
||||||
m_fadeDistance = value;
|
m_fadeDistance = value;
|
||||||
vr::VRSettings()->SetFloat(
|
vr::VRSettings()->SetFloat(
|
||||||
@@ -816,7 +766,7 @@ float ChaperoneTabController::height() const
|
|||||||
|
|
||||||
void ChaperoneTabController::setHeight( float value, bool notify )
|
void ChaperoneTabController::setHeight( float value, bool notify )
|
||||||
{
|
{
|
||||||
if ( m_height != value )
|
if ( fabs( static_cast<double>( m_height - value ) ) > 0.005 )
|
||||||
{
|
{
|
||||||
m_height = value;
|
m_height = value;
|
||||||
// TODO revert?
|
// TODO revert?
|
||||||
@@ -853,7 +803,7 @@ void ChaperoneTabController::setHeight( float value, bool notify )
|
|||||||
|
|
||||||
void ChaperoneTabController::updateHeight( float value, bool notify )
|
void ChaperoneTabController::updateHeight( float value, bool notify )
|
||||||
{
|
{
|
||||||
if ( m_height != value )
|
if ( fabs( static_cast<double>( m_height - value ) ) > 0.005 )
|
||||||
{
|
{
|
||||||
m_height = value;
|
m_height = value;
|
||||||
if ( notify )
|
if ( notify )
|
||||||
@@ -966,16 +916,6 @@ float ChaperoneTabController::chaperoneShowDashboardDistance() const
|
|||||||
return m_chaperoneShowDashboardDistance;
|
return m_chaperoneShowDashboardDistance;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ChaperoneTabController::isChaperoneVelocityModifierEnabled() const
|
|
||||||
{
|
|
||||||
return m_enableChaperoneVelocityModifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
float ChaperoneTabController::chaperoneVelocityModifier() const
|
|
||||||
{
|
|
||||||
return m_chaperoneVelocityModifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
Q_INVOKABLE unsigned ChaperoneTabController::getChaperoneProfileCount()
|
Q_INVOKABLE unsigned ChaperoneTabController::getChaperoneProfileCount()
|
||||||
{
|
{
|
||||||
return static_cast<unsigned int>( chaperoneProfiles.size() );
|
return static_cast<unsigned int>( chaperoneProfiles.size() );
|
||||||
@@ -1051,7 +991,9 @@ void ChaperoneTabController::setChaperoneSwitchToBeginnerEnabled( bool value,
|
|||||||
void ChaperoneTabController::setChaperoneSwitchToBeginnerDistance( float value,
|
void ChaperoneTabController::setChaperoneSwitchToBeginnerDistance( float value,
|
||||||
bool notify )
|
bool notify )
|
||||||
{
|
{
|
||||||
if ( m_chaperoneSwitchToBeginnerDistance != value )
|
if ( fabs( static_cast<double>( m_chaperoneSwitchToBeginnerDistance
|
||||||
|
- value ) )
|
||||||
|
> 0.005 )
|
||||||
{
|
{
|
||||||
m_chaperoneSwitchToBeginnerDistance = value;
|
m_chaperoneSwitchToBeginnerDistance = value;
|
||||||
auto settings = OverlayController::appSettings();
|
auto settings = OverlayController::appSettings();
|
||||||
@@ -1096,7 +1038,9 @@ void ChaperoneTabController::setChaperoneHapticFeedbackEnabled( bool value,
|
|||||||
void ChaperoneTabController::setChaperoneHapticFeedbackDistance( float value,
|
void ChaperoneTabController::setChaperoneHapticFeedbackDistance( float value,
|
||||||
bool notify )
|
bool notify )
|
||||||
{
|
{
|
||||||
if ( m_chaperoneHapticFeedbackDistance != value )
|
if ( fabs(
|
||||||
|
static_cast<double>( m_chaperoneHapticFeedbackDistance - value ) )
|
||||||
|
> 0.005 )
|
||||||
{
|
{
|
||||||
m_chaperoneHapticFeedbackDistance = value;
|
m_chaperoneHapticFeedbackDistance = value;
|
||||||
auto settings = OverlayController::appSettings();
|
auto settings = OverlayController::appSettings();
|
||||||
@@ -1192,7 +1136,8 @@ void ChaperoneTabController::setChaperoneAlarmSoundAdjustVolume( bool value,
|
|||||||
void ChaperoneTabController::setChaperoneAlarmSoundDistance( float value,
|
void ChaperoneTabController::setChaperoneAlarmSoundDistance( float value,
|
||||||
bool notify )
|
bool notify )
|
||||||
{
|
{
|
||||||
if ( m_chaperoneAlarmSoundDistance != value )
|
if ( fabs( static_cast<double>( m_chaperoneAlarmSoundDistance - value ) )
|
||||||
|
> 0.005 )
|
||||||
{
|
{
|
||||||
m_chaperoneAlarmSoundDistance = value;
|
m_chaperoneAlarmSoundDistance = value;
|
||||||
auto settings = OverlayController::appSettings();
|
auto settings = OverlayController::appSettings();
|
||||||
@@ -1233,7 +1178,8 @@ void ChaperoneTabController::setChaperoneShowDashboardEnabled( bool value,
|
|||||||
void ChaperoneTabController::setChaperoneShowDashboardDistance( float value,
|
void ChaperoneTabController::setChaperoneShowDashboardDistance( float value,
|
||||||
bool notify )
|
bool notify )
|
||||||
{
|
{
|
||||||
if ( m_chaperoneShowDashboardDistance != value )
|
if ( fabs( static_cast<double>( m_chaperoneShowDashboardDistance - value ) )
|
||||||
|
> 0.005 )
|
||||||
{
|
{
|
||||||
m_chaperoneShowDashboardDistance = value;
|
m_chaperoneShowDashboardDistance = value;
|
||||||
auto settings = OverlayController::appSettings();
|
auto settings = OverlayController::appSettings();
|
||||||
@@ -1250,46 +1196,6 @@ void ChaperoneTabController::setChaperoneShowDashboardDistance( float value,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChaperoneTabController::setChaperoneVelocityModifierEnabled( bool value,
|
|
||||||
bool notify )
|
|
||||||
{
|
|
||||||
if ( m_enableChaperoneVelocityModifier != value )
|
|
||||||
{
|
|
||||||
m_enableChaperoneVelocityModifier = value;
|
|
||||||
auto settings = OverlayController::appSettings();
|
|
||||||
settings->beginGroup( "chaperoneSettings" );
|
|
||||||
settings->setValue( "chaperoneVelocityModifierEnabled",
|
|
||||||
m_enableChaperoneVelocityModifier );
|
|
||||||
settings->endGroup();
|
|
||||||
settings->sync();
|
|
||||||
if ( notify )
|
|
||||||
{
|
|
||||||
emit chaperoneVelocityModifierEnabledChanged(
|
|
||||||
m_enableChaperoneVelocityModifier );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChaperoneTabController::setChaperoneVelocityModifier( float value,
|
|
||||||
bool notify )
|
|
||||||
{
|
|
||||||
if ( m_chaperoneVelocityModifier != value )
|
|
||||||
{
|
|
||||||
m_chaperoneVelocityModifier = value;
|
|
||||||
auto settings = OverlayController::appSettings();
|
|
||||||
settings->beginGroup( "chaperoneSettings" );
|
|
||||||
settings->setValue( "chaperoneVelocityModifier",
|
|
||||||
m_chaperoneVelocityModifier );
|
|
||||||
settings->endGroup();
|
|
||||||
settings->sync();
|
|
||||||
if ( notify )
|
|
||||||
{
|
|
||||||
emit chaperoneVelocityModifierChanged(
|
|
||||||
m_chaperoneVelocityModifier );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChaperoneTabController::setDisableChaperone( bool value, bool notify )
|
void ChaperoneTabController::setDisableChaperone( bool value, bool notify )
|
||||||
{
|
{
|
||||||
if ( m_disableChaperone != value )
|
if ( m_disableChaperone != value )
|
||||||
@@ -1501,9 +1407,6 @@ void ChaperoneTabController::addChaperoneProfile(
|
|||||||
profile->enableChaperoneShowDashboard = m_enableChaperoneShowDashboard;
|
profile->enableChaperoneShowDashboard = m_enableChaperoneShowDashboard;
|
||||||
profile->chaperoneShowDashboardDistance
|
profile->chaperoneShowDashboardDistance
|
||||||
= m_chaperoneShowDashboardDistance;
|
= m_chaperoneShowDashboardDistance;
|
||||||
profile->enableChaperoneVelocityModifier
|
|
||||||
= m_enableChaperoneVelocityModifier;
|
|
||||||
profile->chaperoneVelocityModifier = m_chaperoneVelocityModifier;
|
|
||||||
}
|
}
|
||||||
saveChaperoneProfiles();
|
saveChaperoneProfiles();
|
||||||
OverlayController::appSettings()->sync();
|
OverlayController::appSettings()->sync();
|
||||||
@@ -1599,9 +1502,6 @@ void ChaperoneTabController::applyChaperoneProfile( unsigned index )
|
|||||||
profile.chaperoneShowDashboardDistance );
|
profile.chaperoneShowDashboardDistance );
|
||||||
setChaperoneShowDashboardEnabled(
|
setChaperoneShowDashboardEnabled(
|
||||||
profile.enableChaperoneShowDashboard );
|
profile.enableChaperoneShowDashboard );
|
||||||
setChaperoneVelocityModifier( profile.chaperoneVelocityModifier );
|
|
||||||
setChaperoneVelocityModifierEnabled(
|
|
||||||
profile.enableChaperoneVelocityModifier );
|
|
||||||
}
|
}
|
||||||
vr::VRSettings()->Sync( true );
|
vr::VRSettings()->Sync( true );
|
||||||
updateHeight( getBoundsMaxY() );
|
updateHeight( getBoundsMaxY() );
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include <chrono>
|
#include <chrono>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include <openvr.h>
|
#include <openvr.h>
|
||||||
|
#include <cmath>
|
||||||
|
|
||||||
class QQuickWindow;
|
class QQuickWindow;
|
||||||
// application namespace
|
// application namespace
|
||||||
@@ -60,8 +61,6 @@ struct ChaperoneProfile
|
|||||||
float chaperoneAlarmSoundDistance = 0.0f;
|
float chaperoneAlarmSoundDistance = 0.0f;
|
||||||
bool enableChaperoneShowDashboard = false;
|
bool enableChaperoneShowDashboard = false;
|
||||||
float chaperoneShowDashboardDistance = 0.0f;
|
float chaperoneShowDashboardDistance = 0.0f;
|
||||||
bool enableChaperoneVelocityModifier = false;
|
|
||||||
float chaperoneVelocityModifier = 0.0f;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class ChaperoneTabController : public QObject
|
class ChaperoneTabController : public QObject
|
||||||
@@ -125,20 +124,11 @@ class ChaperoneTabController : public QObject
|
|||||||
WRITE setChaperoneShowDashboardDistance NOTIFY
|
WRITE setChaperoneShowDashboardDistance NOTIFY
|
||||||
chaperoneShowDashboardDistanceChanged )
|
chaperoneShowDashboardDistanceChanged )
|
||||||
|
|
||||||
Q_PROPERTY( bool chaperoneVelocityModifierEnabled READ
|
|
||||||
isChaperoneVelocityModifierEnabled WRITE
|
|
||||||
setChaperoneVelocityModifierEnabled NOTIFY
|
|
||||||
chaperoneVelocityModifierEnabledChanged )
|
|
||||||
Q_PROPERTY( float chaperoneVelocityModifier READ chaperoneVelocityModifier
|
|
||||||
WRITE setChaperoneVelocityModifier NOTIFY
|
|
||||||
chaperoneVelocityModifierChanged )
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
OverlayController* parent;
|
OverlayController* parent;
|
||||||
|
|
||||||
float m_visibility = 0.6f;
|
float m_visibility = 0.6f;
|
||||||
float m_fadeDistance = 0.7f;
|
float m_fadeDistance = 0.7f;
|
||||||
float m_fadeDistanceModified = 0.7f;
|
|
||||||
float m_height = 2.0f;
|
float m_height = 2.0f;
|
||||||
bool m_centerMarker = false;
|
bool m_centerMarker = false;
|
||||||
bool m_playSpaceMarker = false;
|
bool m_playSpaceMarker = false;
|
||||||
@@ -166,10 +156,6 @@ private:
|
|||||||
float m_chaperoneShowDashboardDistance = 0.5f;
|
float m_chaperoneShowDashboardDistance = 0.5f;
|
||||||
bool m_chaperoneShowDashboardActive = false;
|
bool m_chaperoneShowDashboardActive = false;
|
||||||
|
|
||||||
bool m_enableChaperoneVelocityModifier = false;
|
|
||||||
float m_chaperoneVelocityModifier = 0.0f;
|
|
||||||
float m_chaperoneVelocityModifierCurrent = 1.0f;
|
|
||||||
|
|
||||||
unsigned settingsUpdateCounter = 0;
|
unsigned settingsUpdateCounter = 0;
|
||||||
|
|
||||||
bool m_isHapticGood = true;
|
bool m_isHapticGood = true;
|
||||||
@@ -194,10 +180,7 @@ public:
|
|||||||
void initStage1();
|
void initStage1();
|
||||||
void initStage2( OverlayController* parent );
|
void initStage2( OverlayController* parent );
|
||||||
|
|
||||||
void eventLoopTick( vr::TrackedDevicePose_t* devicePoses,
|
void eventLoopTick( vr::TrackedDevicePose_t* devicePoses );
|
||||||
float leftSpeed,
|
|
||||||
float rightSpeed,
|
|
||||||
float hmdSpeed );
|
|
||||||
void handleChaperoneWarnings( float distance );
|
void handleChaperoneWarnings( float distance );
|
||||||
|
|
||||||
float boundsVisibility() const;
|
float boundsVisibility() const;
|
||||||
@@ -229,9 +212,6 @@ public:
|
|||||||
bool isChaperoneShowDashboardEnabled() const;
|
bool isChaperoneShowDashboardEnabled() const;
|
||||||
float chaperoneShowDashboardDistance() const;
|
float chaperoneShowDashboardDistance() const;
|
||||||
|
|
||||||
bool isChaperoneVelocityModifierEnabled() const;
|
|
||||||
float chaperoneVelocityModifier() const;
|
|
||||||
|
|
||||||
void reloadChaperoneProfiles();
|
void reloadChaperoneProfiles();
|
||||||
void saveChaperoneProfiles();
|
void saveChaperoneProfiles();
|
||||||
|
|
||||||
@@ -269,9 +249,6 @@ public slots:
|
|||||||
void setChaperoneShowDashboardEnabled( bool value, bool notify = true );
|
void setChaperoneShowDashboardEnabled( bool value, bool notify = true );
|
||||||
void setChaperoneShowDashboardDistance( float value, bool notify = true );
|
void setChaperoneShowDashboardDistance( float value, bool notify = true );
|
||||||
|
|
||||||
void setChaperoneVelocityModifierEnabled( bool value, bool notify = true );
|
|
||||||
void setChaperoneVelocityModifier( float value, bool notify = true );
|
|
||||||
|
|
||||||
void flipOrientation( double degrees = 180 );
|
void flipOrientation( double degrees = 180 );
|
||||||
void reloadFromDisk();
|
void reloadFromDisk();
|
||||||
|
|
||||||
@@ -316,9 +293,6 @@ signals:
|
|||||||
void chaperoneShowDashboardEnabledChanged( bool value );
|
void chaperoneShowDashboardEnabledChanged( bool value );
|
||||||
void chaperoneShowDashboardDistanceChanged( float value );
|
void chaperoneShowDashboardDistanceChanged( float value );
|
||||||
|
|
||||||
void chaperoneVelocityModifierEnabledChanged( bool value );
|
|
||||||
void chaperoneVelocityModifierChanged( float value );
|
|
||||||
|
|
||||||
void chaperoneProfilesUpdated();
|
void chaperoneProfilesUpdated();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user