ModelEntities that were playing animations on models with local pivot offsets were not working correctly.
Specifically, the windmill animation in the demo domain.
We now compose a matrix containing all of the FBX's preTranslation, preRotation and postTranformations.
* No longer normalizing scale in AnimSkeleton and AnimClip
This means graph is animating in 'geometry' coordinates
before unit scale is even applied. This is necessary to
properly work with both Avatar based models and ModelEntity
based models
Many things are broken.
* debug rendering (translations are x100)
* IK hand targets
* follow cam
* I did not even dare to try HMD mode
Changed default eye position to 1.9 meters because
the hifi_team avatars are 2.0 meters tall.
Also, prevent array access with negative indices when eye bones are missing.
ಠ_ಠ
* AnimSkeleton now returns AnimPoses by const ref.
* AnimDebugDraw: uses references to Poses on the stack instead of copies
within inner loops.
* AnimDebugDraw: Removed unnecessary universal refs in range based for loops.
* Now always works, regardless of whether or not Rig or AnimGraph animations
are enabled.
* Changed joint radius to 1 cm.
* Changed xyz axis length to 4 cm.
When TRUST_BIND_TRANSFORM is defined in AnimSkeleton, the bind pose is taken
from the FBXJoint::bindTransform field, which is correct for all joints
bound to actual geometry. Basically it's not trust worthy for bones NOT bound to anything.
When TRUST_BIND_TRANSFORM is not defined, the bind pose is taken from the other
FBXJoint fields. Unfortunatly these poses are NOT the bind pose, but instead
are taken from the FBX files 'resting' pose. i.e. frame 0.
std::vector.reserve() and raw access do not mix.
raw access will only work if you push_back elements onto the vector
first. However this worked fine on MacOSX, probably due to differences
in STL implementations.
Some code clean up and some commented out debugging lines.
Debug rendering of animaions of fight club model is not working.
Not sure what frame these transformations are in.
* added AnimPose::copyFromNetworkAnim() which
should, re-map bone ids to match the current
skeleton, and fill in missing bones with bind
pose frames.
* added ability to set a skeleton on a node.
I might need to add a recursive version of this.
* it compiles!
* tests run!