| 998 | } |
| 999 | |
| 1000 | function complete3DCallback(camera3D) { |
| 1001 | return function (transitioner) { |
| 1002 | const scene = transitioner._scene; |
| 1003 | scene._mode = SceneMode.SCENE3D; |
| 1004 | scene.morphTime = SceneMode.getMorphTime(SceneMode.SCENE3D); |
| 1005 | |
| 1006 | destroyMorphHandler(transitioner); |
| 1007 | |
| 1008 | const camera = scene.camera; |
| 1009 | if ( |
| 1010 | transitioner._previousMode !== SceneMode.MORPHING || |
| 1011 | transitioner._morphCancelled |
| 1012 | ) { |
| 1013 | transitioner._morphCancelled = false; |
| 1014 | |
| 1015 | Cartesian3.clone(camera3D.position, camera.position); |
| 1016 | Cartesian3.clone(camera3D.direction, camera.direction); |
| 1017 | Cartesian3.clone(camera3D.up, camera.up); |
| 1018 | Cartesian3.cross(camera.direction, camera.up, camera.right); |
| 1019 | Cartesian3.normalize(camera.right, camera.right); |
| 1020 | |
| 1021 | camera.frustum = camera3D.frustum.clone(); |
| 1022 | } |
| 1023 | |
| 1024 | const frustum = camera.frustum; |
| 1025 | if (scene.frameState.useLogDepth) { |
| 1026 | frustum.near = 0.1; |
| 1027 | frustum.far = 10000000000.0; |
| 1028 | } |
| 1029 | |
| 1030 | const wasMorphing = defined(transitioner._completeMorph); |
| 1031 | transitioner._completeMorph = undefined; |
| 1032 | scene.camera.update(scene.mode); |
| 1033 | transitioner._scene.morphComplete.raiseEvent( |
| 1034 | transitioner, |
| 1035 | transitioner._previousMode, |
| 1036 | SceneMode.SCENE3D, |
| 1037 | wasMorphing, |
| 1038 | ); |
| 1039 | }; |
| 1040 | } |
| 1041 | |
| 1042 | function complete2DCallback(camera2D) { |
| 1043 | return function (transitioner) { |