Fix tracker reset logic (#1150)

This commit is contained in:
Butterscotch!
2024-09-12 20:41:56 -04:00
committed by GitHub
parent 2c146169ac
commit 1c867efe16
2 changed files with 8 additions and 6 deletions

View File

@@ -323,7 +323,8 @@ class Tracker @JvmOverloads constructor(
_rotation
}
if (needsReset || (isComputed && !isInternal)) {
// Reset if needed and is not computed and internal
if (needsReset && !(isComputed && isInternal)) {
// Adjust to reset, mounting and drift compensation
rot = resetsHandler.getReferenceAdjustedDriftRotationFrom(rot)
}
@@ -354,7 +355,8 @@ class Tracker @JvmOverloads constructor(
_rotation
}
if (needsReset || (isComputed && trackerPosition == TrackerPosition.HEAD)) {
// Reset if needed or is a computed tracker besides head
if (needsReset && !(isComputed && trackerPosition != TrackerPosition.HEAD)) {
// Adjust to reset and mounting
rot = resetsHandler.getIdentityAdjustedDriftRotationFrom(rot)
}

View File

@@ -155,16 +155,16 @@ abstract class SteamVRBridge(
// Display name, needsReset and isHmd
val displayName: String
val (needsReset, isHmd) = if (trackerAdded.trackerId == 0) {
val isHmd = if (trackerAdded.trackerId == 0) {
displayName = if (trackerAdded.trackerName == "HMD") {
"SteamVR Driver HMD"
} else {
"Feeder App HMD"
}
false to true
true
} else {
displayName = trackerAdded.trackerName
true to false
false
}
// trackerPosition
@@ -187,7 +187,7 @@ abstract class SteamVRBridge(
hasRotation = true,
userEditable = true,
isComputed = true,
needsReset = needsReset,
needsReset = true,
isHmd = isHmd,
)