@@ -126,11 +126,12 @@ define([
126
126
127
127
if ( duration > 0.0 ) {
128
128
position . x = 0.0 ;
129
- position . y = 0.0 ;
130
- position . z = 5.0 * ellipsoid . maximumRadius ;
129
+ position . y = - 1.0 ;
130
+ position . z = 1.0 ;
131
+ position = Cartesian3 . multiplyByScalar ( Cartesian3 . normalize ( position , position ) , 5.0 * ellipsoid . maximumRadius , position ) ;
131
132
132
- Cartesian3 . negate ( Cartesian3 . UNIT_Z , direction ) ;
133
- Cartesian3 . clone ( Cartesian3 . UNIT_Y , up ) ;
133
+ Cartesian3 . negate ( Cartesian3 . normalize ( position , direction ) , direction ) ;
134
+ Cartesian3 . cross ( Cartesian3 . UNIT_X , direction , up ) ;
134
135
} else {
135
136
var camera = scene . camera ;
136
137
if ( this . _previousMode === SceneMode . SCENE2D ) {
@@ -694,48 +695,42 @@ define([
694
695
var scene = transitioner . _scene ;
695
696
var camera = scene . camera ;
696
697
697
- var startPos = Cartesian3 . clone ( camera . position , scratch3DToCVStartPos ) ;
698
- var startDir = Cartesian3 . clone ( camera . direction , scratch3DToCVStartDir ) ;
699
- var startUp = Cartesian3 . clone ( camera . up , scratch3DToCVStartUp ) ;
700
-
701
698
var endPos = Cartesian3 . clone ( cameraCV . position , scratch3DToCVEndPos ) ;
702
699
var endDir = Cartesian3 . clone ( cameraCV . direction , scratch3DToCVEndDir ) ;
703
700
var endUp = Cartesian3 . clone ( cameraCV . up , scratch3DToCVEndUp ) ;
704
701
705
- var startRight = camera . frustum . right ;
706
- var endRight = endPos . z * 0.5 ;
707
-
708
- function update ( value ) {
709
- columbusViewMorph ( startPos , endPos , value . time , camera . position ) ;
710
- columbusViewMorph ( startDir , endDir , value . time , camera . direction ) ;
711
- columbusViewMorph ( startUp , endUp , value . time , camera . up ) ;
712
- Cartesian3 . cross ( camera . direction , camera . up , camera . right ) ;
713
- Cartesian3 . normalize ( camera . right , camera . right ) ;
714
-
715
- var frustum = camera . frustum ;
716
- frustum . right = CesiumMath . lerp ( startRight , endRight , value . time ) ;
717
- frustum . left = - frustum . right ;
718
- frustum . top = frustum . right * ( scene . drawingBufferHeight / scene . drawingBufferWidth ) ;
719
- frustum . bottom = - frustum . top ;
720
-
721
- camera . position . z = 2.0 * scene . mapProjection . ellipsoid . maximumRadius ;
722
- }
723
- var tween = scene . tweens . add ( {
724
- duration : duration ,
725
- easingFunction : EasingFunction . QUARTIC_OUT ,
726
- startObject : {
727
- time : 0.0
728
- } ,
729
- stopObject : {
730
- time : 1.0
731
- } ,
732
- update : update ,
733
- complete : function ( ) {
734
- scene . _mode = SceneMode . MORPHING ;
735
- morphOrthographicToPerspective ( transitioner , duration , cameraCV , complete ) ;
702
+ scene . _mode = SceneMode . MORPHING ;
703
+ morphOrthographicToPerspective ( transitioner , 0.0 , cameraCV , function ( ) {
704
+ camera . frustum = cameraCV . frustum . clone ( ) ;
705
+
706
+ var startPos = Cartesian3 . clone ( camera . position , scratch3DToCVStartPos ) ;
707
+ var startDir = Cartesian3 . clone ( camera . direction , scratch3DToCVStartDir ) ;
708
+ var startUp = Cartesian3 . clone ( camera . up , scratch3DToCVStartUp ) ;
709
+ startPos . z = endPos . z ;
710
+
711
+ function update ( value ) {
712
+ columbusViewMorph ( startPos , endPos , value . time , camera . position ) ;
713
+ columbusViewMorph ( startDir , endDir , value . time , camera . direction ) ;
714
+ columbusViewMorph ( startUp , endUp , value . time , camera . up ) ;
715
+ Cartesian3 . cross ( camera . direction , camera . up , camera . right ) ;
716
+ Cartesian3 . normalize ( camera . right , camera . right ) ;
736
717
}
718
+ var tween = scene . tweens . add ( {
719
+ duration : duration ,
720
+ easingFunction : EasingFunction . QUARTIC_OUT ,
721
+ startObject : {
722
+ time : 0.0
723
+ } ,
724
+ stopObject : {
725
+ time : 1.0
726
+ } ,
727
+ update : update ,
728
+ complete : function ( ) {
729
+ complete ( transitioner ) ;
730
+ }
731
+ } ) ;
732
+ transitioner . _currentTweens . push ( tween ) ;
737
733
} ) ;
738
- transitioner . _currentTweens . push ( tween ) ;
739
734
}
740
735
741
736
var scratch3DToCVStartPos = new Cartesian3 ( ) ;
0 commit comments