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

Editor: Refactored uniform scaling code.

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