* Added getDomainMaxScale() and getDomainMinScale() to JS api.
* Updated scaleAvatar controller module to use this to prevent scaling past the limits.
* Made sure that getDomainMaxScale() getDomainMinScale() and getUnscaledEyeHeight are thread safe,
so that they can be invoked on the script thread.
* Added signals to Model class that can be used to let observers know when the Rig has finished initializing it's skeleton.
and also when the skeleton is no longer valid. These hooks are used to cache the unscaled eye height of the avatar.
* Domain settings version has been bumped from version 2.0 to 2.1
* Old domain settings for avatar scale will be auto-converted to avatar height
* Avatar code has been changed so that limitDomainScale() works with the new height limits
* Avatar getUnscaledEyeHeight() was added to C++.
* MyAvatar.getHeight() was added to JS.
* moved Avatar::fixupModelsInScene off the newly created render thread back
to the main thread.
* updated Avatar::postUpdate to take a scene pointer, necessary for
Avatar::fixupModelsInScene
* updated developer/tests/avatarAttachementTest.js to account for recent
changes in avatar attachment scale, commit 712aff7ad.
* updated initialization of anim graph to use Model::isLoaded() instead of
Model::initWhenReady() to know when the model was completely loaded.
Before this change, there was a race condition between the main thread calling Model::initWhenReady,
and the render thread calling Avatar::fixupModelsInScene(). They both would end up setting the
Model::_addedToScene flag. This race caused Model::initWhenReady() to never return true, which
resulted in the MyAvatar class never initializing the animation system.
Previously avatar used SpatiallyNestable scale to keep track of model rendering scale.
It now uses a new member variable _modelScale instead. This is important because the
notion of "Avatar" space does NOT include scale, so this is now reflected correctly in
the SpatiallyNestable class.
Similarly, EntityItems no longer stuff dimensions into the SpatiallyNestable scale
field. a new _dimensions member variable is used instead. The SpatiallyNestable scale
field for entities should always be one.
Parent joints can now have scale if getAbsoluteJointScaleInObjectFrame() returns a non-zero scale.
This is used in the case of the faux SENSOR_TO_WORLD_MATRIX_INDEX joint.
Overlays now ignore the SpatiallyNestable scale, and render using only orientation, position and dimensions.
Added qDebug stream support for Transform class.
The fix had two parts.
* Make Avatar::getAbsoluteDefaultJointXXXInObjectFrame thread safe
* Make teleport.js handle a zero foot offset more gracefully, to prevent the avatar from teleporting into the floor.