提交 85b6dfb2 编写于 作者: M Mr.doob

Editor: Refactored uniform scaling code.

上级 5299bbb3
...@@ -56,7 +56,7 @@ Sidebar.Object3D = function ( signals ) { ...@@ -56,7 +56,7 @@ Sidebar.Object3D = function ( signals ) {
// scale // scale
var objectScaleRow = new UI.Panel(); var objectScaleRow = new UI.Panel();
var objectScaleLock = new UI.Checkbox().setPosition( 'absolute' ).setLeft( '75px' ).onChange( updateScaleLock ); var objectScaleLock = new UI.Checkbox().setPosition( 'absolute' ).setLeft( '75px' );
var objectScaleX = new UI.Number( 1 ).setWidth( '50px' ).onChange( updateScaleX ); var objectScaleX = new UI.Number( 1 ).setWidth( '50px' ).onChange( updateScaleX );
var objectScaleY = new UI.Number( 1 ).setWidth( '50px' ).onChange( updateScaleY ); var objectScaleY = new UI.Number( 1 ).setWidth( '50px' ).onChange( updateScaleY );
var objectScaleZ = new UI.Number( 1 ).setWidth( '50px' ).onChange( updateScaleZ ); var objectScaleZ = new UI.Number( 1 ).setWidth( '50px' ).onChange( updateScaleZ );
...@@ -200,45 +200,47 @@ Sidebar.Object3D = function ( signals ) { ...@@ -200,45 +200,47 @@ Sidebar.Object3D = function ( signals ) {
var scene = null; var scene = null;
var uniformScale = 1; function updateScaleX() {
var scaleRatioX = 1;
var scaleRatioY = 1;
var scaleRatioZ = 1;
var scaleLock = false;
function updateScaleLock() {
scaleLock = objectScaleLock.getValue(); if ( objectScaleLock.getValue() === true ) {
if ( scaleLock ) { var scale = objectScaleX.getValue() / selected.scale.x;
scaleRatioX = objectScaleX.getValue() / uniformScale; objectScaleY.setValue( objectScaleY.getValue() * scale );
scaleRatioY = objectScaleY.getValue() / uniformScale; objectScaleZ.setValue( objectScaleZ.getValue() * scale );
scaleRatioZ = objectScaleZ.getValue() / uniformScale;
} }
}
function updateScaleX() {
uniformScale = objectScaleX.getValue();
update(); update();
} }
function updateScaleY() { function updateScaleY() {
uniformScale = objectScaleY.getValue(); if ( objectScaleLock.getValue() === true ) {
var scale = objectScaleY.getValue() / selected.scale.y;
objectScaleX.setValue( objectScaleX.getValue() * scale );
objectScaleZ.setValue( objectScaleZ.getValue() * scale );
}
update(); update();
} }
function updateScaleZ() { function updateScaleZ() {
uniformScale = objectScaleZ.getValue(); if ( objectScaleLock.getValue() === true ) {
var scale = objectScaleZ.getValue() / selected.scale.z;
objectScaleX.setValue( objectScaleX.getValue() * scale );
objectScaleY.setValue( objectScaleY.getValue() * scale );
}
update(); update();
} }
...@@ -279,14 +281,6 @@ Sidebar.Object3D = function ( signals ) { ...@@ -279,14 +281,6 @@ Sidebar.Object3D = function ( signals ) {
selected.rotation.y = objectRotationY.getValue(); selected.rotation.y = objectRotationY.getValue();
selected.rotation.z = objectRotationZ.getValue(); selected.rotation.z = objectRotationZ.getValue();
if ( scaleLock ) {
objectScaleX.setValue( uniformScale * scaleRatioX );
objectScaleY.setValue( uniformScale * scaleRatioY );
objectScaleZ.setValue( uniformScale * scaleRatioZ );
}
selected.scale.x = objectScaleX.getValue(); selected.scale.x = objectScaleX.getValue();
selected.scale.y = objectScaleY.getValue(); selected.scale.y = objectScaleY.getValue();
selected.scale.z = objectScaleZ.getValue(); selected.scale.z = objectScaleZ.getValue();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册