A AnimContext class was introduced. This context is passed into every node during evaluation/overlay.
It holds non-animVar "global" data passed from the application.
* Removed MyAvatar.reset() access from JavaScript
* Added HMD.centerUI() to JavaScript, which can be used to reset the 3D UI sphere around the current HMD orientation.
* Added MyAvatar.clearIKJOintLimitHistory() which can be used to reset any remembered IK joint limit history.
* Added MyAvatar.centerBody() which can be used to instantly re-orient the avatar's so that the hips and toes
are facing the same direction as the current HMD orientation.
away.js now uses the above new API's instead of MyAvatar.reset()
* When computing tipPosition, for the next iteration of the CCD,
use the leverArm before it's projected onto the lowerSpine twist axis.
* fix for acos() that was going outside of valid domain. (-1.0, 1.0)
This makes it much simpler for code out side of the rig to manipulate AnimVars
* Removed mat4 type from AnimVars
* AnimVariantMap now has a _rigToGeometryTransform matrix
used to transform positions and rotations into the correct coordinate frame.
* Moved AnimPose code to extract a quat from a scaled matrix into GLMHelpers
This should fix the issue with the hips moving erratically when arm IK
is enabled. The main issue is that the IK system assumed that the "Hips"
joint was the root of the skeleton. For Blender avatar this is not the case
as it inserts an "Armature" node at the root instead.
The IK was assiming that the "Hips" bone index was always 0.
This was not the case for Owen. Now we lookup the Hips index
and cache it for use during the hipsOffset computation.