diff --git a/examples/js/loaders/GLTFLoader.js b/examples/js/loaders/GLTFLoader.js index dca6020e70aa2c41fe51301a5476922c4032f6b8..8d50474c0be38fbf331e8ff2dcb8d80a3829ddc5 100644 --- a/examples/js/loaders/GLTFLoader.js +++ b/examples/js/loaders/GLTFLoader.js @@ -1572,6 +1572,22 @@ THREE.GLTFLoader = ( function () { // Replace Mesh with SkinnedMesh in library if ( skinEntry ) { + var getJointNode = function ( jointId ) { + + var keys = Object.keys( __nodes ); + + for ( var i = 0, il = keys.length; i < il; i ++ ) { + + var n = __nodes[ keys[ i ] ]; + + if ( n.jointName === jointId ) return n; + + } + + return null; + + } + var geometry = originalGeometry; var material = originalMaterial; material.skinning = true; @@ -1583,26 +1599,10 @@ THREE.GLTFLoader = ( function () { var bones = []; var boneInverses = []; - var keys = Object.keys( __nodes ); - for ( var i = 0, l = skinEntry.jointNames.length; i < l; i ++ ) { var jointId = skinEntry.jointNames[ i ]; - - var jointNode; - - for ( var j = 0, jl = keys.length; j < jl; j ++ ) { - - var n = __nodes[ keys[ j ] ]; - - if ( n.jointName === jointId ) { - - jointNode = n; - break; - - } - - } + var jointNode = getJointNode( jointId ); if ( jointNode ) {