@@ -1489,6 +1489,103 @@ describe('Test gl3d relayout calls', function() {
1489
1489
. catch ( failTest )
1490
1490
. then ( done ) ;
1491
1491
} ) ;
1492
+
1493
+ it ( '@gl should maintain projection type when resetCamera buttons clicked after switching projection type from perspective to orthographic' , function ( done ) {
1494
+ Plotly . plot ( gd , {
1495
+ data : [ {
1496
+ type : 'surface' ,
1497
+ x : [ 0 , 1 ] ,
1498
+ y : [ 0 , 1 ] ,
1499
+ z : [ [ 0 , 1 ] , [ 1 , 0 ] ]
1500
+ } ] ,
1501
+ layout : {
1502
+ width : 300 ,
1503
+ height : 200 ,
1504
+ scene : {
1505
+ camera : {
1506
+ eye : {
1507
+ x : 2 ,
1508
+ y : 1 ,
1509
+ z : 0.5
1510
+ }
1511
+ }
1512
+ }
1513
+ }
1514
+ } )
1515
+ . then ( function ( ) {
1516
+ expect ( gd . _fullLayout . scene . _scene . camera . _ortho ) . toEqual ( false , 'perspective' ) ;
1517
+ } )
1518
+ . then ( function ( ) {
1519
+ return Plotly . relayout ( gd , 'scene.camera.projection.type' , 'orthographic' ) ;
1520
+ } )
1521
+ . then ( function ( ) {
1522
+ expect ( gd . _fullLayout . scene . _scene . camera . _ortho ) . toEqual ( true , 'orthographic' ) ;
1523
+ } )
1524
+ . then ( function ( ) {
1525
+ return selectButton ( gd . _fullLayout . _modeBar , 'resetCameraLastSave3d' ) . click ( ) ;
1526
+ } )
1527
+ . then ( function ( ) {
1528
+ expect ( gd . _fullLayout . scene . _scene . camera . _ortho ) . toEqual ( true , 'orthographic' ) ;
1529
+ } )
1530
+ . then ( function ( ) {
1531
+ return selectButton ( gd . _fullLayout . _modeBar , 'resetCameraDefault3d' ) . click ( ) ;
1532
+ } )
1533
+ . then ( function ( ) {
1534
+ expect ( gd . _fullLayout . scene . _scene . camera . _ortho ) . toEqual ( true , 'orthographic' ) ;
1535
+ } )
1536
+ . catch ( failTest )
1537
+ . then ( done ) ;
1538
+ } ) ;
1539
+
1540
+ it ( '@gl should maintain projection type when resetCamera buttons clicked after switching projection type from orthographic to perspective' , function ( done ) {
1541
+ Plotly . plot ( gd , {
1542
+ data : [ {
1543
+ type : 'surface' ,
1544
+ x : [ 0 , 1 ] ,
1545
+ y : [ 0 , 1 ] ,
1546
+ z : [ [ 0 , 1 ] , [ 1 , 0 ] ]
1547
+ } ] ,
1548
+ layout : {
1549
+ width : 300 ,
1550
+ height : 200 ,
1551
+ scene : {
1552
+ camera : {
1553
+ eye : {
1554
+ x : 2 ,
1555
+ y : 1 ,
1556
+ z : 0.5
1557
+ } ,
1558
+ projection : {
1559
+ type : 'orthographic'
1560
+ }
1561
+ }
1562
+ }
1563
+ }
1564
+ } )
1565
+ . then ( function ( ) {
1566
+ expect ( gd . _fullLayout . scene . _scene . camera . _ortho ) . toEqual ( true , 'orthographic' ) ;
1567
+ } )
1568
+ . then ( function ( ) {
1569
+ return Plotly . relayout ( gd , 'scene.camera.projection.type' , 'perspective' ) ;
1570
+ } )
1571
+ . then ( function ( ) {
1572
+ expect ( gd . _fullLayout . scene . _scene . camera . _ortho ) . toEqual ( false , 'perspective' ) ;
1573
+ } )
1574
+ . then ( function ( ) {
1575
+ return selectButton ( gd . _fullLayout . _modeBar , 'resetCameraLastSave3d' ) . click ( ) ;
1576
+ } )
1577
+ . then ( function ( ) {
1578
+ expect ( gd . _fullLayout . scene . _scene . camera . _ortho ) . toEqual ( false , 'perspective' ) ;
1579
+ } )
1580
+ . then ( function ( ) {
1581
+ return selectButton ( gd . _fullLayout . _modeBar , 'resetCameraDefault3d' ) . click ( ) ;
1582
+ } )
1583
+ . then ( function ( ) {
1584
+ expect ( gd . _fullLayout . scene . _scene . camera . _ortho ) . toEqual ( false , 'perspective' ) ;
1585
+ } )
1586
+ . catch ( failTest )
1587
+ . then ( done ) ;
1588
+ } ) ;
1492
1589
} ) ;
1493
1590
1494
1591
describe ( 'Test gl3d annotations' , function ( ) {
0 commit comments