Previously the HUD fading in/out would also recenter the hmd sensor and the avatar, which caused many problems including:
* The user's view could shift vertically.
* Your avatar would briefly go into t-pose
* other users would see your avatar go into t-pose.
Now we now move the UI sphere instead, which results in a much smoother experience.
MyAvatar: added hasDriveInput method.
OverlayConductor:
* removed avatar and sensor reset, instead the overlay's modelTransform is changed.
* revived STANDING mode, which is active if myAvatar->getClearOverlayWhenDriving() is true and you are wearing an HMD.
* SITTING & FLAT mode should be unchanged.
* Instead of using avatar velocity to fade out/fade in the hud, We use the presense or absanse of avatar drive input.
* Additionally, we check distance to the UI sphere, and quickly recenter the hud if the users head is too close to the actual hud sphere.
CompositorHelper:
* Bug fixes for ray picks not using the modelTransform.
HmdDisplayPlugin:
* Bug fixes for rendering not using the modelTransform.
This is a blend of the previous 'sitting' and 'standing' HMD modes.
Basically, when you move your head within a small range (20cm) your
avatar will lean appropriately, however when you cross that threshold
your body will move underneath you, re-centering your head above the body.
While this occurs the avatar should play the appropriate walking animations.
* vive rendering works again
* overlay fades away in standing mode, if you look or move away from the overlay sphere.
* middle mouse button can be used to fade in or out the overlay
* mouse pointer renders properly on overlay
Added OverlayConductor class that "orchestrates" Overlays, ApplicationCompositor & AppliationOverlay instances
so that the overlay can be smoothly animated on and off, mouse/key events are blocked when overlay is disabled.