| 26790 | //--- init data --- |
| 26791 | |
| 26792 | var initData = function( data ) { |
| 26793 | |
| 26794 | if( data.initialized === true ) |
| 26795 | return; |
| 26796 | |
| 26797 | |
| 26798 | // loop through all keys |
| 26799 | |
| 26800 | for( var h = 0; h < data.hierarchy.length; h ++ ) { |
| 26801 | |
| 26802 | for( var k = 0; k < data.hierarchy[ h ].keys.length; k ++ ) { |
| 26803 | |
| 26804 | // remove minus times |
| 26805 | |
| 26806 | if( data.hierarchy[ h ].keys[ k ].time < 0 ) |
| 26807 | data.hierarchy[ h ].keys[ k ].time = 0; |
| 26808 | |
| 26809 | |
| 26810 | // create quaternions |
| 26811 | |
| 26812 | if( data.hierarchy[ h ].keys[ k ].rot !== undefined && |
| 26813 | !( data.hierarchy[ h ].keys[ k ].rot instanceof THREE.Quaternion ) ) { |
| 26814 | |
| 26815 | var quat = data.hierarchy[ h ].keys[ k ].rot; |
| 26816 | data.hierarchy[ h ].keys[ k ].rot = new THREE.Quaternion( quat[0], quat[1], quat[2], quat[3] ); |
| 26817 | |
| 26818 | } |
| 26819 | |
| 26820 | } |
| 26821 | |
| 26822 | |
| 26823 | // prepare morph target keys |
| 26824 | |
| 26825 | if( data.hierarchy[ h ].keys.length && data.hierarchy[ h ].keys[ 0 ].morphTargets !== undefined ) { |
| 26826 | |
| 26827 | // get all used |
| 26828 | |
| 26829 | var usedMorphTargets = {}; |
| 26830 | |
| 26831 | for ( var k = 0; k < data.hierarchy[ h ].keys.length; k ++ ) { |
| 26832 | |
| 26833 | for ( var m = 0; m < data.hierarchy[ h ].keys[ k ].morphTargets.length; m ++ ) { |
| 26834 | |
| 26835 | var morphTargetName = data.hierarchy[ h ].keys[ k ].morphTargets[ m ]; |
| 26836 | usedMorphTargets[ morphTargetName ] = -1; |
| 26837 | |
| 26838 | } |
| 26839 | |
| 26840 | } |
| 26841 | |
| 26842 | data.hierarchy[ h ].usedMorphTargets = usedMorphTargets; |
| 26843 | |
| 26844 | |
| 26845 | // set all used on all frames |
| 26846 | |
| 26847 | for ( var k = 0; k < data.hierarchy[ h ].keys.length; k ++ ) { |
| 26848 | |
| 26849 | var influences = {}; |