| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /**
- * @author mikael emtinger / http://gomo.se/
- * @author alteredq / http://alteredqualia.com/
- */
- THREE.Bone = function( belongsToSkin ) {
- THREE.Object3D.call( this );
- this.skin = belongsToSkin;
- this.skinMatrix = new THREE.Matrix4();
- };
- THREE.Bone.prototype = Object.create( THREE.Object3D.prototype );
- THREE.Bone.prototype.update = function ( parentSkinMatrix, forceUpdate ) {
- // update local
- if ( this.matrixAutoUpdate ) {
- forceUpdate |= this.updateMatrix();
- }
- // update skin matrix
- if ( forceUpdate || this.matrixWorldNeedsUpdate ) {
- if( parentSkinMatrix ) {
- this.skinMatrix.multiplyMatrices( parentSkinMatrix, this.matrix );
- } else {
- this.skinMatrix.copy( this.matrix );
- }
- this.matrixWorldNeedsUpdate = false;
- forceUpdate = true;
- }
- // update children
- var child, i, l = this.children.length;
- for ( i = 0; i < l; i ++ ) {
- this.children[ i ].update( this.skinMatrix, forceUpdate );
- }
- };
|