@@ -198,17 +198,14 @@ THREE.ColladaLoader = function () {
198198 function parseAsset ( ) {
199199
200200 var elements = COLLADA . querySelectorAll ( 'asset' ) ;
201-
202- var elementsLength = elements . length ; //cache loop length
203201
204- for ( var i = 0 ; i < elementsLength ; i ++ ) {
202+ var element = elements [ 0 ] ;
205203
206- var element = elements [ i ] ;
207- var elementChildNodesLength = element . childNodes . length ;
204+ if ( element && element . childNodes ) {
208205
209- for ( var j = 0 ; j < elementChildNodesLength ; j ++ ) {
206+ for ( var i = 0 ; i < element . childNodes . length ; i ++ ) {
210207
211- var child = element . childNodes [ j ] ;
208+ var child = element . childNodes [ i ] ;
212209
213210 switch ( child . nodeName ) {
214211
@@ -931,8 +928,18 @@ THREE.ColladaLoader = function () {
931928 } ;
932929
933930 function getLibraryNode ( id ) {
934-
935- return COLLADA . querySelectorAll ( 'library_nodes node#' + id ) [ 0 ] ; //returns 'undefined' if nothing is matched
931+
932+ var nodes = COLLADA . querySelectorAll ( 'library_nodes node' ) ;
933+
934+ for ( var i = 0 ; i < nodes . length ; i ++ ) {
935+
936+ var attObj = nodes [ i ] . attributes . getNamedItem ( 'id' ) ;
937+ if ( attObj && attObj . value === id ) {
938+ return nodes [ i ] ;
939+ }
940+ }
941+
942+ return undefined ;
936943
937944 } ;
938945
@@ -2425,7 +2432,7 @@ THREE.ColladaLoader = function () {
24252432 input = inputs [ j ] ;
24262433
24272434 var offset = input . offset + 1 ;
2428- maxOffset = ( maxOffset < offset ) ? offset : maxOffset ;
2435+ maxOffset = ( maxOffset < offset ) ? offset : maxOffset ;
24292436
24302437 switch ( input . semantic ) {
24312438
@@ -3036,7 +3043,7 @@ THREE.ColladaLoader = function () {
30363043 repeatU : 1 ,
30373044 repeatV : 1 ,
30383045 wrapU : 1 ,
3039- wrapV : 1 ,
3046+ wrapV : 1
30403047 } ;
30413048 this . parseTexture ( child ) ;
30423049 break ;
@@ -3090,7 +3097,7 @@ THREE.ColladaLoader = function () {
30903097
30913098 // some dae have a value of true which becomes NaN via parseInt
30923099
3093- if ( child . textContent . toUpperCase ( ) == 'TRUE' ) {
3100+ if ( child . textContent . toUpperCase ( ) === 'TRUE' ) {
30943101
30953102 this . texOpts [ child . nodeName ] = 1 ;
30963103
@@ -3099,6 +3106,7 @@ THREE.ColladaLoader = function () {
30993106 this . texOpts [ child . nodeName ] = parseInt ( child . textContent ) ;
31003107
31013108 }
3109+ break ;
31023110
31033111 default :
31043112
0 commit comments