This is a hybrid of None and Drop strategies.
Basically, if the puck is out of range for less then 1/2 a second we still use it, however any longer then that and we mark it as invalid.
In the Settings > Controller... > Calibration menu, when using head or hand trackers
The provided Y and Z offsets should function correctly now. This gives you the ability to adjust
the offsets of the pucks to the hands/head. For example: this allows you to wear the hand pucks on your forearms
rather then the backs of your palms.
Sitting and standing modes work even in desktop mode.
We were inadvertently checking for HMD Mode instead of if the head was valid.
* A change was made to the ViveControllerManager to return head poses in the correct standing universe when in desktop mode.
* The default sensorToWorld matrix in desktop mode is similar to the one returned by the system for Vive and Oculus sensor frame; y = 0 is at floor level.
* Sitting mode, walking mode and recentering flags are now visible in the AnimStats.
The openvr SDK provides a way to gauge the quality of tracking on a given device via the eTrackingResult enum.
* Drop - Only Running_OK is considered valid, all other eTrackingResults will return invalid poses.
* Freeze - Only Running_OK is considered valid, but other valid TrackingResults will return the last Running_OK pose.
In esseces this will freeze the puck in place at the last good value.
* None - All valid eTrackingResults will be valid, including OutOfRange and Calibrating results. This is the default.
Previously we where incorrectly sorting the pucks along the x axis.
This could cause the order to be wrong if you were not standing along the z axis w.r.t the vive tracked volume.
Before this PR, there were small errors that can occur if you calibrate while not facing down the z-axis in vive sensor space.
As indicated by the small arrow in the steam vr grid.
The hands could end up flipped 180 degrees and the feet could end up with an incorrect offset resulting in a wider or narrower stance then expected.
This PR is intended to fix these issues.