From 1b1c6a179fcadec3581087d1b5a6642c9821339f Mon Sep 17 00:00:00 2001 From: Emiliana <38952746+emilianavt@users.noreply.github.com> Date: Sat, 25 Jul 2020 18:12:06 +0200 Subject: [PATCH] Disabled automatic recalibration keeping offsets in `OpenSeeIKTarget`. --- Unity/OpenSeeIKTarget.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Unity/OpenSeeIKTarget.cs b/Unity/OpenSeeIKTarget.cs index 0f5d3a3..466be17 100644 --- a/Unity/OpenSeeIKTarget.cs +++ b/Unity/OpenSeeIKTarget.cs @@ -37,6 +37,8 @@ public class OpenSeeIKTarget : MonoBehaviour public float outlierThresholdDistance = 2f; [Tooltip("This sets the number of seconds for which distance outliers are ignored before being accepted. Once this period elapses, automatic recalibration is triggered. Setting this to zero will disable outlier skipping.")] public float outlierSkipPeriodDistance = 0.4f; + [Tooltip("If set to true, recalibration caused by positional outliers will keep the current position and rotation of the head.")] + public bool outlierKeepOffset = false; [Header("Information")] [Tooltip("This is the number of received tracking frames.")] public int trackingFrames = 0; @@ -147,7 +149,7 @@ public class OpenSeeIKTarget : MonoBehaviour } // Check for positional outliers - bool keep_offset = false; + bool keepOffset = false; if (gotAcceptedPosition) { float distance = Vector3.Distance(t, lastAcceptedPosition); if (distance > outlierThresholdDistance) { @@ -161,7 +163,7 @@ public class OpenSeeIKTarget : MonoBehaviour lastAcceptedPosition = t; skippedPosition = false; calibrate = true; - keep_offset = true; + keepOffset = outlierKeepOffset; outlierCalibrations += 1; } } @@ -194,7 +196,7 @@ public class OpenSeeIKTarget : MonoBehaviour dT = MirrorTranslation(dT); lastMirror = mirrorMotion; } - if (calibrate && keep_offset) { + if (calibrate && keepOffset) { dR = Quaternion.Inverse(Quaternion.Inverse(transform.localRotation) * Quaternion.Inverse(dR)); dT -= transform.localPosition; }