Browse Source

Editor: Wired up Camera fov, near and far.

Mr.doob 13 years ago
parent
commit
cb0cfc4517

+ 21 - 15
editor/js/ui/Sidebar.Properties.Material.js

@@ -290,22 +290,28 @@ Sidebar.Properties.Material = function ( signals ) {
 
 
 	function updateRows() {
 	function updateRows() {
 
 
-		var material = selected.material;
+		var properties = {
+			'color': materialColorRow,
+			'ambient': materialAmbientRow,
+			'emissive': materialEmissiveRow,
+			'specular': materialSpecularRow,
+			'shininess': materialShininessRow,
+			'lightMap': materialLightMapRow,
+			'bumpMap': materialBumpMapRow,
+			'normalMap': materialNormalMapRow,
+			'specularMap': materialSpecularMapRow,
+			'envMap': materialEnvMapRow,
+			'opacity': materialOpacityRow,
+			'transparent': materialTransparentRow,
+			'wireframe': materialWireframeRow
+
+		};
+
+		for ( var property in properties ) {
+
+			properties[ property ].setDisplay( selected.material[ property ] !== undefined ? '' : 'none' );
 
 
-		materialColorRow.setDisplay( material.color !== undefined ? '' : 'none' );
-		materialAmbientRow.setDisplay( material.ambient !== undefined ? '' : 'none' );
-		materialEmissiveRow.setDisplay( material.emissive !== undefined ? '' : 'none' );
-		materialSpecularRow.setDisplay( material.specular !== undefined ? '' : 'none' );
-		materialShininessRow.setDisplay( material.shininess !== undefined ? '' : 'none' );
-		materialMapRow.setDisplay( material.map !== undefined ? '' : 'none' );
-		materialLightMapRow.setDisplay( material.lightMap !== undefined ? '' : 'none' );
-		materialBumpMapRow.setDisplay( material.bumpMap !== undefined ? '' : 'none' );
-		materialNormalMapRow.setDisplay( material.normalMap !== undefined ? '' : 'none' );
-		materialSpecularMapRow.setDisplay( material.specularMap !== undefined ? '' : 'none' );
-		materialEnvMapRow.setDisplay( material.envMap !== undefined ? '' : 'none' );
-		materialOpacityRow.setDisplay( material.opacity !== undefined ? '' : 'none' );
-		materialTransparentRow.setDisplay( material.transparent !== undefined ? '' : 'none' );
-		materialWireframeRow.setDisplay( material.wireframe !== undefined ? '' : 'none' );
+		}
 
 
 	};
 	};
 
 

+ 86 - 0
editor/js/ui/Sidebar.Properties.Object3D.js

@@ -73,6 +73,38 @@ Sidebar.Properties.Object3D = function ( signals ) {
 
 
 	container.add( objectVisibleRow );
 	container.add( objectVisibleRow );
 
 
+
+	// fov
+
+	var objectFovRow = new UI.Panel();
+	var objectFov = new UI.Number( 'absolute' ).setLeft( '100px' ).onChange( update );
+
+	objectFovRow.add( new UI.Text().setValue( 'Fov' ).setColor( '#666' ) );
+	objectFovRow.add( objectFov );
+
+	container.add( objectFovRow );
+
+	// near
+
+	var objectNearRow = new UI.Panel();
+	var objectNear = new UI.Number( 'absolute' ).setLeft( '100px' ).onChange( update );
+
+	objectNearRow.add( new UI.Text().setValue( 'Near' ).setColor( '#666' ) );
+	objectNearRow.add( objectNear );
+
+	container.add( objectNearRow );
+
+	// far
+
+	var objectFarRow = new UI.Panel();
+	var objectFar = new UI.Number( 'absolute' ).setLeft( '100px' ).onChange( update );
+
+	objectFarRow.add( new UI.Text().setValue( 'Far' ).setColor( '#666' ) );
+	objectFarRow.add( objectFar );
+
+	container.add( objectFarRow );
+
+
 	container.add( new UI.Break() );
 	container.add( new UI.Break() );
 
 
 	//
 	//
@@ -97,12 +129,46 @@ Sidebar.Properties.Object3D = function ( signals ) {
 
 
 			selected.visible = objectVisible.getValue();
 			selected.visible = objectVisible.getValue();
 
 
+			if ( selected.fov !== undefined ) {
+
+				selected.fov = objectFov.getValue();
+
+			}
+
+			if ( selected.near !== undefined ) {
+
+				selected.near = objectNear.getValue();
+
+			}
+
+			if ( selected.far !== undefined ) {
+
+				selected.far = objectFar.getValue();
+
+			}
+
 			signals.objectChanged.dispatch( selected );
 			signals.objectChanged.dispatch( selected );
 
 
 		}
 		}
 
 
 	}
 	}
 
 
+	function updateRows() {
+
+		var properties = {
+			'fov': objectFovRow,
+			'near': objectNearRow,
+			'far': objectFarRow
+		};
+
+		for ( var property in properties ) {
+
+			properties[ property ].setDisplay( selected[ property ] !== undefined ? '' : 'none' );
+
+		}
+
+	}
+
 	function getObjectInstanceName( object ) {
 	function getObjectInstanceName( object ) {
 
 
 		for ( var key in objects ) {
 		for ( var key in objects ) {
@@ -139,8 +205,28 @@ Sidebar.Properties.Object3D = function ( signals ) {
 			objectScaleY.setValue( object.scale.y );
 			objectScaleY.setValue( object.scale.y );
 			objectScaleZ.setValue( object.scale.z );
 			objectScaleZ.setValue( object.scale.z );
 
 
+			if ( object.fov !== undefined ) {
+
+				objectFov.setValue( object.fov );
+
+			}
+
+			if ( object.near !== undefined ) {
+
+				objectNear.setValue( object.near );
+
+			}
+
+			if ( object.far !== undefined ) {
+
+				objectFar.setValue( object.far );
+
+			}
+
 			objectVisible.setValue( object.visible );
 			objectVisible.setValue( object.visible );
 
 
+			updateRows();
+
 		} else {
 		} else {
 
 
 			container.setDisplay( 'none' );
 			container.setDisplay( 'none' );

+ 6 - 0
editor/js/ui/Viewport.js

@@ -123,6 +123,12 @@ var Viewport = function ( signals ) {
 
 
 	signals.objectChanged.add( function ( object ) {
 	signals.objectChanged.add( function ( object ) {
 
 
+		if ( object instanceof THREE.Camera ) {
+
+			object.updateProjectionMatrix();
+
+		}
+
 		render();
 		render();
 
 
 	} );
 	} );