mirror of
https://github.com/SlimeVR/SlimeVR-Server.git
synced 2026-04-06 02:01:58 +02:00
Full height for manual configuration (#1329)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
This commit is contained in:
@@ -27,10 +27,9 @@ class BodyProportionError : IAutoBoneError {
|
||||
}
|
||||
|
||||
companion object {
|
||||
// TODO hip tracker stuff... Hip tracker should be around 3 to 5
|
||||
// centimeters.
|
||||
// The headset height is not the full height! This value compensates for the
|
||||
// offset from the headset height to the user height
|
||||
// offset from the headset height to the user full height
|
||||
// From Drillis and Contini (1966)
|
||||
@JvmField
|
||||
var eyeHeightToHeightRatio = 0.936f
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ import dev.slimevr.protocol.rpc.setup.RPCUtil.getLocalIp
|
||||
import dev.slimevr.protocol.rpc.status.RPCStatusHandler
|
||||
import dev.slimevr.protocol.rpc.trackingpause.RPCTrackingPause
|
||||
import dev.slimevr.tracking.processor.config.SkeletonConfigOffsets
|
||||
import dev.slimevr.tracking.trackers.TrackerPosition
|
||||
import dev.slimevr.tracking.trackers.TrackerPosition.Companion.getByBodyPart
|
||||
import dev.slimevr.tracking.trackers.TrackerStatus
|
||||
import dev.slimevr.tracking.trackers.TrackerUtils.getTrackerForSkeleton
|
||||
@@ -490,7 +491,8 @@ class RPCHandler(private val api: ProtocolAPI) : ProtocolHandler<RpcMessageHeade
|
||||
.createHeightResponse(
|
||||
fbb,
|
||||
posTrackers.minOf { it.position.y },
|
||||
posTrackers.maxOf { it.position.y },
|
||||
posTrackers.find { it.trackerPosition == TrackerPosition.HEAD }?.position?.y
|
||||
?: posTrackers.maxOf { it.position.y },
|
||||
)
|
||||
} else {
|
||||
HeightResponse
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package dev.slimevr.tracking.processor.config
|
||||
|
||||
import dev.slimevr.VRServer.Companion.instance
|
||||
import dev.slimevr.VRServer.Companion.instanceInitialized
|
||||
import dev.slimevr.autobone.AutoBone
|
||||
import dev.slimevr.autobone.errors.BodyProportionError.Companion.proportionLimitMap
|
||||
import dev.slimevr.config.ConfigManager
|
||||
@@ -409,14 +410,14 @@ class SkeletonConfigManager(
|
||||
|
||||
// Remove from config to use default if they change in the future.
|
||||
Arrays.fill(changedToggles, false)
|
||||
for (value in SkeletonConfigToggles.values) {
|
||||
instance.configManager
|
||||
.vrConfig
|
||||
.skeleton
|
||||
.getToggles()
|
||||
.remove(value.configKey)
|
||||
// Set default in skeleton
|
||||
setToggle(value, value.defaultValue)
|
||||
if (instanceInitialized) {
|
||||
for (value in SkeletonConfigToggles.values) {
|
||||
instance.configManager
|
||||
.vrConfig
|
||||
.skeleton
|
||||
.getToggles()
|
||||
.remove(value.configKey)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -432,14 +433,14 @@ class SkeletonConfigManager(
|
||||
|
||||
// Remove from config to use default if they change in the future.
|
||||
Arrays.fill(changedValues, false)
|
||||
for (value in SkeletonConfigValues.values) {
|
||||
instance.configManager
|
||||
.vrConfig
|
||||
.skeleton
|
||||
.getValues()
|
||||
.remove(value.configKey)
|
||||
// Set default in skeleton
|
||||
setValue(value, value.defaultValue)
|
||||
if (instanceInitialized) {
|
||||
for (value in SkeletonConfigValues.values) {
|
||||
instance.configManager
|
||||
.vrConfig
|
||||
.skeleton
|
||||
.getValues()
|
||||
.remove(value.configKey)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -515,6 +516,8 @@ class SkeletonConfigManager(
|
||||
}
|
||||
|
||||
fun save() {
|
||||
require(instanceInitialized) { "VRServer instance is not initialized, config cannot be saved." }
|
||||
|
||||
val skeletonConfig = instance.configManager
|
||||
.vrConfig
|
||||
.skeleton
|
||||
|
||||
Reference in New Issue
Block a user