diff --git a/src/extras/loaders/SceneLoader.js b/src/extras/loaders/SceneLoader.js index 17fef5448eb1a6c65539573c65e066dcdc02ebb1..52a2f640f310bb4fcc3de73848a08db523662efa 100644 --- a/src/extras/loaders/SceneLoader.js +++ b/src/extras/loaders/SceneLoader.js @@ -159,6 +159,7 @@ THREE.SceneLoader.prototype.createScene = function ( json, callbackFinished, url r = o.rotation; q = o.quaternion; s = o.scale; + m = o.matrix; // turn off quaternions, for the moment @@ -181,21 +182,34 @@ THREE.SceneLoader.prototype.createScene = function ( json, callbackFinished, url object = new THREE.Mesh( geometry, material ); object.name = dd; - object.position.set( p[0], p[1], p[2] ); - - if ( q ) { - - object.quaternion.set( q[0], q[1], q[2], q[3] ); - object.useQuaternion = true; - + + if ( m ) { + + object.matrixAutoUpdate = false; + object.matrix.set( m[0], m[1], m[2], m[3], + m[4], m[5], m[6], m[7], + m[8], m[9], m[10], m[11], + m[12], m[13], m[14], m[15]); + } else { - - object.rotation.set( r[0], r[1], r[2] ); - + + object.position.set( p[0], p[1], p[2] ); + + if ( q ) { + + object.quaternion.set( q[0], q[1], q[2], q[3] ); + object.useQuaternion = true; + + } else { + + object.rotation.set( r[0], r[1], r[2] ); + + } + + object.scale.set( s[0], s[1], s[2] ); + } - object.scale.set( s[0], s[1], s[2] ); - object.visible = o.visible; object.doubleSided = o.doubleSided; object.castShadow = o.castShadow;