diff --git a/src/loaders/ObjectLoader.js b/src/loaders/ObjectLoader.js index b6df8bc0f95cb03c5a844b6ae617e56dd253fb8e..62a2fbbd57143e93ec2887f57bde02cf5a2a2324 100644 --- a/src/loaders/ObjectLoader.js +++ b/src/loaders/ObjectLoader.js @@ -260,10 +260,20 @@ THREE.ObjectLoader.prototype = { } - matrix.fromArray( data.matrix ); - matrix.decompose( object.position, object.quaternion, object.scale ); + if ( data.matrix !== undefined ) { - object.rotation.updateEuler(); + matrix.fromArray( data.matrix ); + matrix.decompose( object.position, object.quaternion, object.scale ); + + object.rotation.updateEuler(); + + } else { + + if ( data.position !== undefined ) object.position.fromArray( data.position ); + if ( data.rotation !== undefined ) object.rotation.fromArray( data.rotation ); + if ( data.scale !== undefined ) object.scale.fromArray( data.scale ); + + } if ( data.id !== undefined ) object.id = data.id; if ( data.name !== undefined ) object.name = data.name; diff --git a/src/math/Rotation.js b/src/math/Rotation.js index 610c0df33037707c3e74cf8b7a279b2203834e8b..e355f60703141790ecdd371aca0b1a4a8e983387 100644 --- a/src/math/Rotation.js +++ b/src/math/Rotation.js @@ -131,6 +131,7 @@ THREE.Rotation.prototype = { fromArray: function ( array ) { this.euler.fromArray( array ); + this.updateQuaternion(); return this;