|
@@ -140,58 +140,67 @@ var Viewport = function ( editor ) {
|
|
var cameras = {};
|
|
var cameras = {};
|
|
|
|
|
|
var sceneCameraDisplay = new UI.Row();
|
|
var sceneCameraDisplay = new UI.Row();
|
|
- sceneCameraDisplay.setId('cameraSelect');
|
|
|
|
- sceneCameraDisplay.dom.setAttribute('layout', config.getKey('project/renderer/sceneCameras') || 'topLeft');
|
|
|
|
- sceneCameraDisplay.setDisplay('none');
|
|
|
|
- document.body.appendChild(sceneCameraDisplay.dom);
|
|
|
|
-
|
|
|
|
- var canvas = document.createElement('canvas');
|
|
|
|
- sceneCameraDisplay.dom.appendChild(canvas);
|
|
|
|
- var ctx = canvas.getContext('2d');
|
|
|
|
-
|
|
|
|
- var cameraSelect = new UI.Select().onChange(render);
|
|
|
|
- sceneCameraDisplay.add(cameraSelect);
|
|
|
|
-
|
|
|
|
- signals.objectAdded.add(function(object)
|
|
|
|
- {
|
|
|
|
- if(object !== null)
|
|
|
|
- {
|
|
|
|
- object.traverse(addCamera);
|
|
|
|
- cameraSelect.setOptions(cameras);
|
|
|
|
- sceneCameraDisplay.setDisplay(config.getKey('project/renderer/showSceneCameras') === true && Object.keys(cameras).length > 0 ? 'block' : 'none');
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- signals.objectRemoved.add(function(object)
|
|
|
|
- {
|
|
|
|
- if(object !== null)
|
|
|
|
- {
|
|
|
|
- object.traverse(removeCamera);
|
|
|
|
- cameraSelect.setOptions(cameras);
|
|
|
|
- sceneCameraDisplay.setDisplay(config.getKey('project/renderer/showSceneCameras') === true && Object.keys(cameras).length > 0 ? 'block' : 'none');
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- signals.sceneCamerasChanged.add(function()
|
|
|
|
- {
|
|
|
|
- sceneCameraDisplay.dom.setAttribute('layout', config.getKey('project/renderer/sceneCameras') || 'topLeft');
|
|
|
|
- sceneCameraDisplay.setDisplay(config.getKey('project/renderer/showSceneCameras') === true && Object.keys(cameras).length > 0 ? 'block' : 'none');
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- function addCamera(object)
|
|
|
|
- {
|
|
|
|
- if(object.isCamera === true)
|
|
|
|
- {
|
|
|
|
- cameras[object.uuid] = object.name;
|
|
|
|
|
|
+ sceneCameraDisplay.setId( 'cameraSelect' );
|
|
|
|
+ sceneCameraDisplay.dom.setAttribute( 'layout', config.getKey( 'project/renderer/sceneCameras' ) || 'topLeft' );
|
|
|
|
+ sceneCameraDisplay.setDisplay( 'none' );
|
|
|
|
+ document.body.appendChild( sceneCameraDisplay.dom );
|
|
|
|
+
|
|
|
|
+ var canvas = document.createElement( 'canvas' );
|
|
|
|
+ sceneCameraDisplay.dom.appendChild( canvas );
|
|
|
|
+ var ctx = canvas.getContext( '2d' );
|
|
|
|
+
|
|
|
|
+ var cameraSelect = new UI.Select().onChange( render );
|
|
|
|
+ sceneCameraDisplay.add( cameraSelect );
|
|
|
|
+
|
|
|
|
+ signals.objectAdded.add( function ( object ) {
|
|
|
|
+
|
|
|
|
+ if ( object !== null ) {
|
|
|
|
+
|
|
|
|
+ object.traverse( addCamera );
|
|
|
|
+ cameraSelect.setOptions( cameras );
|
|
|
|
+ sceneCameraDisplay.setDisplay( config.getKey( 'project/renderer/showSceneCameras' ) === true && Object.keys( cameras ).length > 0 ? 'block' : 'none' );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } );
|
|
|
|
+
|
|
|
|
+ signals.objectRemoved.add( function ( object ) {
|
|
|
|
+
|
|
|
|
+ if ( object !== null ) {
|
|
|
|
+
|
|
|
|
+ object.traverse( removeCamera );
|
|
|
|
+ cameraSelect.setOptions( cameras );
|
|
|
|
+ sceneCameraDisplay.setDisplay( config.getKey( 'project/renderer/showSceneCameras' ) === true && Object.keys( cameras ).length > 0 ? 'block' : 'none' );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } );
|
|
|
|
+
|
|
|
|
+ signals.sceneCamerasChanged.add( function () {
|
|
|
|
+
|
|
|
|
+ sceneCameraDisplay.dom.setAttribute( 'layout', config.getKey( 'project/renderer/sceneCameras' ) || 'topLeft' );
|
|
|
|
+ sceneCameraDisplay.setDisplay( config.getKey( 'project/renderer/showSceneCameras' ) === true && Object.keys( cameras ).length > 0 ? 'block' : 'none' );
|
|
|
|
+
|
|
|
|
+ } );
|
|
|
|
+
|
|
|
|
+ function addCamera( object ) {
|
|
|
|
+
|
|
|
|
+ if ( object.isCamera === true ) {
|
|
|
|
+
|
|
|
|
+ cameras[ object.uuid ] = object.name;
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
- function removeCamera(object)
|
|
|
|
- {
|
|
|
|
- if(object.isCamera === true)
|
|
|
|
- {
|
|
|
|
- delete cameras[object.uuid];
|
|
|
|
|
|
+ function removeCamera( object ) {
|
|
|
|
+
|
|
|
|
+ if ( object.isCamera === true ) {
|
|
|
|
+
|
|
|
|
+ delete cameras[ object.uuid ];
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
// object picking
|
|
// object picking
|
|
@@ -609,15 +618,17 @@ var Viewport = function ( editor ) {
|
|
sceneHelpers.updateMatrixWorld();
|
|
sceneHelpers.updateMatrixWorld();
|
|
scene.updateMatrixWorld();
|
|
scene.updateMatrixWorld();
|
|
|
|
|
|
- if(sceneCameraDisplay.dom.style.display != 'none')
|
|
|
|
- {
|
|
|
|
- var cam = scene.getObjectByProperty('uuid', cameraSelect.getValue());
|
|
|
|
- if(cam !== undefined && cam.isCamera === true)
|
|
|
|
- {
|
|
|
|
- renderer.render(scene, cam);
|
|
|
|
|
|
+ if ( sceneCameraDisplay.dom.style.display != 'none' ) {
|
|
|
|
+
|
|
|
|
+ var cam = scene.getObjectByProperty( 'uuid', cameraSelect.getValue() );
|
|
|
|
+ if ( cam !== undefined && cam.isCamera === true ) {
|
|
|
|
+
|
|
|
|
+ renderer.render( scene, cam );
|
|
var dom = renderer.domElement;
|
|
var dom = renderer.domElement;
|
|
- ctx.drawImage(dom, 0, 0, dom.width, dom.height, 0, 0, canvas.width, canvas.height);
|
|
|
|
|
|
+ ctx.drawImage( dom, 0, 0, dom.width, dom.height, 0, 0, canvas.width, canvas.height );
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
renderer.render( scene, camera );
|
|
renderer.render( scene, camera );
|
|
@@ -627,7 +638,7 @@ var Viewport = function ( editor ) {
|
|
renderer.render( sceneHelpers, camera );
|
|
renderer.render( sceneHelpers, camera );
|
|
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
return container;
|
|
return container;
|