提交 68087aed 编写于 作者: M Mr.doob

Merge remote-tracking branch 'alteredq/dev' into dev

......@@ -56,15 +56,25 @@ Sidebar.Properties.Object3D = function ( signals ) {
// scale
var objectScaleRow = new UI.Panel();
var objectScaleX = new UI.Number( 'absolute' ).setValue( 1 ).setLeft( '100px' ).setWidth( '50px' ).onChange( update );
var objectScaleY = new UI.Number( 'absolute' ).setValue( 1 ).setLeft( '160px' ).setWidth( '50px' ).onChange( update );
var objectScaleZ = new UI.Number( 'absolute' ).setValue( 1 ).setLeft( '220px' ).setWidth( '50px' ).onChange( update );
var objectScaleX = new UI.Number( 'absolute' ).setValue( 1 ).setLeft( '100px' ).setWidth( '50px' ).onChange( updateScaleX );
var objectScaleY = new UI.Number( 'absolute' ).setValue( 1 ).setLeft( '160px' ).setWidth( '50px' ).onChange( updateScaleY );
var objectScaleZ = new UI.Number( 'absolute' ).setValue( 1 ).setLeft( '220px' ).setWidth( '50px' ).onChange( updateScaleZ );
objectScaleRow.add( new UI.Text().setValue( 'Scale' ).setColor( '#666' ) );
objectScaleRow.add( objectScaleX, objectScaleY, objectScaleZ );
container.add( objectScaleRow );
// uniform scale lock
var objectScaleLockRow = new UI.Panel();
var objectScaleLock = new UI.Checkbox( 'absolute' ).setLeft( '100px' ).onChange( updateScaleLock );
objectScaleLockRow.add( new UI.Text().setValue( 'Uniform scale' ).setColor( '#666' ) );
objectScaleLockRow.add( objectScaleLock );
container.add( objectScaleLockRow );
// visible
var objectVisibleRow = new UI.Panel();
......@@ -75,7 +85,6 @@ Sidebar.Properties.Object3D = function ( signals ) {
container.add( objectVisibleRow );
// fov
var objectFovRow = new UI.Panel();
......@@ -111,6 +120,49 @@ Sidebar.Properties.Object3D = function ( signals ) {
var selected = null;
var uniformScale = 1;
var scaleRatioX = 1;
var scaleRatioY = 1;
var scaleRatioZ = 1;
var scaleLock = false;
function updateScaleLock() {
scaleLock = objectScaleLock.getValue();
if ( scaleLock ) {
scaleRatioX = objectScaleX.getValue() / uniformScale;
scaleRatioY = objectScaleY.getValue() / uniformScale;
scaleRatioZ = objectScaleZ.getValue() / uniformScale;
}
}
function updateScaleX() {
uniformScale = objectScaleX.getValue();
update();
}
function updateScaleY() {
uniformScale = objectScaleY.getValue();
update();
}
function updateScaleZ() {
uniformScale = objectScaleZ.getValue();
update();
}
function update() {
if ( selected ) {
......@@ -125,6 +177,14 @@ Sidebar.Properties.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.
先完成此消息的编辑!
想要评论请 注册