Browse Source

Editor: made active camera changes be reflected in Object properties UI.

alteredq 12 years ago
parent
commit
0800ec13e7
3 changed files with 51 additions and 23 deletions
  1. 1 0
      editor/index.html
  2. 39 23
      editor/js/ui/Sidebar.Properties.Object3D.js
  3. 11 0
      editor/js/ui/Viewport.js

+ 1 - 0
editor/index.html

@@ -67,6 +67,7 @@
 				objectChanged: new SIGNALS.Signal(),
 				objectChanged: new SIGNALS.Signal(),
 				materialChanged: new SIGNALS.Signal(),
 				materialChanged: new SIGNALS.Signal(),
 				clearColorChanged: new SIGNALS.Signal(),
 				clearColorChanged: new SIGNALS.Signal(),
+				cameraChanged: new SIGNALS.Signal(),
 				windowResize: new SIGNALS.Signal()
 				windowResize: new SIGNALS.Signal()
 
 
 			};
 			};

+ 39 - 23
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 ) {
 	signals.objectChanged.add( function ( object ) {
 
 
 		if ( 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;
 	return container;
 
 

+ 11 - 0
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 ) {
 	var onMouseUp = function ( event ) {
 
 
 		// clear selection when clicking in empty space
 		// 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( 'mousedown', onMouseDown, false );
 	container.dom.addEventListener( 'mouseup', onMouseUp, false );
 	container.dom.addEventListener( 'mouseup', onMouseUp, false );
 	container.dom.addEventListener( 'click', onClick, false );
 	container.dom.addEventListener( 'click', onClick, false );