|
@@ -134,14 +134,6 @@ var Viewport = function ( editor ) {
|
|
|
|
|
|
sceneHelpers.add( transformControls );
|
|
|
|
|
|
- // fog
|
|
|
-
|
|
|
- var oldFogType = "None";
|
|
|
- var oldFogColor = 0xaaaaaa;
|
|
|
- var oldFogNear = 1;
|
|
|
- var oldFogFar = 5000;
|
|
|
- var oldFogDensity = 0.00025;
|
|
|
-
|
|
|
// object picking
|
|
|
|
|
|
var raycaster = new THREE.Raycaster();
|
|
@@ -496,53 +488,50 @@ var Viewport = function ( editor ) {
|
|
|
|
|
|
} );
|
|
|
|
|
|
- signals.fogTypeChanged.add( function ( fogType ) {
|
|
|
-
|
|
|
- if ( fogType !== oldFogType ) {
|
|
|
-
|
|
|
- if ( fogType === "None" ) {
|
|
|
+ // fog
|
|
|
|
|
|
- scene.fog = null;
|
|
|
+ var currentFogType = null;
|
|
|
|
|
|
- } else if ( fogType === "Fog" ) {
|
|
|
+ signals.fogChanged.add( function ( fogType, fogColor, fogNear, fogFar, fogDensity ) {
|
|
|
|
|
|
- scene.fog = new THREE.Fog( oldFogColor, oldFogNear, oldFogFar );
|
|
|
+ if ( currentFogType !== fogType ) {
|
|
|
|
|
|
- } else if ( fogType === "FogExp2" ) {
|
|
|
+ switch ( fogType ) {
|
|
|
|
|
|
- scene.fog = new THREE.FogExp2( oldFogColor, oldFogDensity );
|
|
|
+ case 'None':
|
|
|
+ scene.fog = null;
|
|
|
+ break;
|
|
|
+ case 'Fog':
|
|
|
+ scene.fog = new THREE.Fog();
|
|
|
+ break;
|
|
|
+ case 'FogExp2':
|
|
|
+ scene.fog = new THREE.FogExp2();
|
|
|
+ break;
|
|
|
|
|
|
}
|
|
|
|
|
|
- oldFogType = fogType;
|
|
|
+ currentFogType = fogType;
|
|
|
|
|
|
}
|
|
|
|
|
|
- render();
|
|
|
+ if ( scene.fog instanceof THREE.Fog ) {
|
|
|
|
|
|
- } );
|
|
|
+ scene.fog.color.setHex( fogColor );
|
|
|
+ scene.fog.near = fogNear;
|
|
|
+ scene.fog.far = fogFar;
|
|
|
|
|
|
- signals.fogColorChanged.add( function ( fogColor ) {
|
|
|
+ } else if ( scene.fog instanceof THREE.FogExp2 ) {
|
|
|
|
|
|
- oldFogColor = fogColor;
|
|
|
+ scene.fog.color.setHex( fogColor );
|
|
|
+ scene.fog.density = fogDensity;
|
|
|
|
|
|
- updateFog( scene );
|
|
|
+ }
|
|
|
|
|
|
render();
|
|
|
|
|
|
} );
|
|
|
|
|
|
- signals.fogParametersChanged.add( function ( near, far, density ) {
|
|
|
-
|
|
|
- oldFogNear = near;
|
|
|
- oldFogFar = far;
|
|
|
- oldFogDensity = density;
|
|
|
-
|
|
|
- updateFog( scene );
|
|
|
-
|
|
|
- render();
|
|
|
-
|
|
|
- } );
|
|
|
+ //
|
|
|
|
|
|
signals.windowResize.add( function () {
|
|
|
|
|
@@ -569,20 +558,6 @@ var Viewport = function ( editor ) {
|
|
|
|
|
|
//
|
|
|
|
|
|
- function updateFog( root ) {
|
|
|
-
|
|
|
- if ( root.fog ) {
|
|
|
-
|
|
|
- root.fog.color.setHex( oldFogColor );
|
|
|
-
|
|
|
- if ( root.fog.near !== undefined ) root.fog.near = oldFogNear;
|
|
|
- if ( root.fog.far !== undefined ) root.fog.far = oldFogFar;
|
|
|
- if ( root.fog.density !== undefined ) root.fog.density = oldFogDensity;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
function animate() {
|
|
|
|
|
|
requestAnimationFrame( animate );
|