提交 8edd6bd0 编写于 作者: M Mr.doob

Fixed Euler/Rotation change breakage.

上级 8d5c224d
......@@ -67,10 +67,10 @@ THREE.TransformControls = function ( camera, domElement, doc ) {
var parentScale = new THREE.Vector3();
var worldPosition = new THREE.Vector3();
var worldRotation = new THREE.Vector3();
var worldRotation = new THREE.Euler();
var worldRotationMatrix = new THREE.Matrix4();
var camPosition = new THREE.Vector3();
var camRotation = new THREE.Vector3();
var camRotation = new THREE.Euler();
var displayAxes = {};
var pickerAxes = {};
......@@ -379,11 +379,11 @@ THREE.TransformControls = function ( camera, domElement, doc ) {
this.object.updateMatrixWorld();
worldPosition.getPositionFromMatrix( this.object.matrixWorld );
worldRotation.setFromRotationMatrix( tempMatrix.extractRotation(this.object.matrixWorld ));
worldRotation.setFromRotationMatrix( tempMatrix.extractRotation( this.object.matrixWorld ) );
this.camera.updateMatrixWorld();
camPosition.getPositionFromMatrix( this.camera.matrixWorld );
camRotation.setFromRotationMatrix( tempMatrix.extractRotation( this.camera.matrixWorld ));
camRotation.setFromRotationMatrix( tempMatrix.extractRotation( this.camera.matrixWorld ) );
scale = worldPosition.distanceTo( camPosition ) / 6 * this.scale;
this.gizmo.position.copy( worldPosition )
......@@ -437,17 +437,9 @@ THREE.TransformControls = function ( camera, domElement, doc ) {
object.rotation.set( 0, 0, 0 );
if ( name == 'RX' ) {
object.rotation.setX( Math.atan2( -eye.y, eye.z ) );
}
if ( name == 'RY' ) {
object.rotation.setY( Math.atan2( eye.x, eye.z ) );
}
if ( name == 'RZ' ) {
object.rotation.setZ( Math.atan2( eye.y, eye.x ) );
}
if ( name == 'RX' ) object.rotation.setX( Math.atan2( -eye.y, eye.z ) );
if ( name == 'RY' ) object.rotation.setY( Math.atan2( eye.x, eye.z ) );
if ( name == 'RZ' ) object.rotation.setZ( Math.atan2( eye.y, eye.x ) );
}
......
......@@ -51,6 +51,8 @@ THREE.Rotation.prototype = {
},
//
set: function ( x, y, z ) {
this.euler.x = x;
......@@ -59,6 +61,50 @@ THREE.Rotation.prototype = {
this.quaternion.setFromEuler( this.euler );
return this;
},
setX: function ( x ) {
this.x = x;
return this;
},
setY: function ( y ) {
this.y = y;
return this;
},
setZ: function ( z ) {
this.z = z;
return this;
},
setFromRotationMatrix: function ( m, order ) {
this.euler.setFromRotationMatrix( m, order );
this.quaternion.setFromEuler( this.euler );
return this;
},
setFromQuaternion: function ( q, order ) {
this.euler.setFromQuaternion( q, order );
this.quaternion.copy( q );
return this;
},
copy: function ( rotation ) {
......@@ -66,13 +112,17 @@ THREE.Rotation.prototype = {
this.euler.copy( rotation.euler );
this.quaternion.setFromEuler( this.euler );
return this;
},
fromArray: function( array ) {
fromArray: function ( array ) {
this.euler.fromArray( array );
this.quaternion.setFromEuler( this.euler );
return this;
},
toArray: function () {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册