From 0800ec13e74327226150fcdf1c3fb2ebfe9160da Mon Sep 17 00:00:00 2001 From: alteredq Date: Thu, 25 Oct 2012 00:06:00 +0200 Subject: [PATCH] Editor: made active camera changes be reflected in Object properties UI. --- editor/index.html | 1 + editor/js/ui/Sidebar.Properties.Object3D.js | 62 +++++++++++++-------- editor/js/ui/Viewport.js | 11 ++++ 3 files changed, 51 insertions(+), 23 deletions(-) diff --git a/editor/index.html b/editor/index.html index 77aa779685..1c908f9822 100644 --- a/editor/index.html +++ b/editor/index.html @@ -67,6 +67,7 @@ objectChanged: new SIGNALS.Signal(), materialChanged: new SIGNALS.Signal(), clearColorChanged: new SIGNALS.Signal(), + cameraChanged: new SIGNALS.Signal(), windowResize: new SIGNALS.Signal() }; diff --git a/editor/js/ui/Sidebar.Properties.Object3D.js b/editor/js/ui/Sidebar.Properties.Object3D.js index ccf919d37f..1a1b2d7ca9 100644 --- a/editor/js/ui/Sidebar.Properties.Object3D.js +++ b/editor/js/ui/Sidebar.Properties.Object3D.js @@ -298,51 +298,67 @@ Sidebar.Properties.Object3D = function ( signals ) { } ); + signals.cameraChanged.add( function ( camera ) { + + if ( camera && camera === selected ) { + + refreshObjectUI( camera ); + + } + + } ); + signals.objectChanged.add( function ( object ) { if ( object ) { - container.setDisplay( 'block' ); + refreshObjectUI( object ); - objectType.setValue( getObjectInstanceName( object ).toUpperCase() ); + } - objectName.setValue( object.name ); + } ); - objectPositionX.setValue( object.position.x ); - objectPositionY.setValue( object.position.y ); - objectPositionZ.setValue( object.position.z ); + function refreshObjectUI( object ) { - objectRotationX.setValue( object.rotation.x ); - objectRotationY.setValue( object.rotation.y ); - objectRotationZ.setValue( object.rotation.z ); + container.setDisplay( 'block' ); - objectScaleX.setValue( object.scale.x ); - objectScaleY.setValue( object.scale.y ); - objectScaleZ.setValue( object.scale.z ); + objectType.setValue( getObjectInstanceName( object ).toUpperCase() ); - if ( object.fov !== undefined ) { + objectName.setValue( object.name ); - objectFov.setValue( object.fov ); + objectPositionX.setValue( object.position.x ); + objectPositionY.setValue( object.position.y ); + objectPositionZ.setValue( object.position.z ); - } + objectRotationX.setValue( object.rotation.x ); + objectRotationY.setValue( object.rotation.y ); + objectRotationZ.setValue( object.rotation.z ); - if ( object.near !== undefined ) { + objectScaleX.setValue( object.scale.x ); + objectScaleY.setValue( object.scale.y ); + objectScaleZ.setValue( object.scale.z ); - objectNear.setValue( object.near ); + if ( object.fov !== undefined ) { - } + objectFov.setValue( object.fov ); - if ( object.far !== undefined ) { + } - objectFar.setValue( object.far ); + if ( object.near !== undefined ) { - } + objectNear.setValue( object.near ); - objectVisible.setValue( object.visible ); + } + + if ( object.far !== undefined ) { + + objectFar.setValue( object.far ); } - } ); + objectVisible.setValue( object.visible ); + + } return container; diff --git a/editor/js/ui/Viewport.js b/editor/js/ui/Viewport.js index 7172b1f8bd..1f17e20ce9 100644 --- a/editor/js/ui/Viewport.js +++ b/editor/js/ui/Viewport.js @@ -172,6 +172,16 @@ var Viewport = function ( signals ) { }; + var onMouseMove = function ( event ) { + + if ( controls.enabled ) { + + signals.cameraChanged.dispatch( camera ); + + } + + }; + var onMouseUp = function ( event ) { // clear selection when clicking in empty space @@ -213,6 +223,7 @@ var Viewport = function ( signals ) { }; + container.dom.addEventListener( 'mousemove', onMouseMove, false ); container.dom.addEventListener( 'mousedown', onMouseDown, false ); container.dom.addEventListener( 'mouseup', onMouseUp, false ); container.dom.addEventListener( 'click', onClick, false ); -- GitLab