1111var createLine = require ( 'regl-line2d' ) ;
1212
1313var Registry = require ( '../../registry' ) ;
14- var Lib = require ( '../../lib' ) ;
1514var prepareRegl = require ( '../../lib/prepare_regl' ) ;
1615var getModuleCalcData = require ( '../../plots/get_data' ) . getModuleCalcData ;
1716var Cartesian = require ( '../../plots/cartesian' ) ;
18- var AxisIDs = require ( '../../plots/cartesian/axis_ids' ) ;
17+ var getFromId = require ( '../../plots/cartesian/axis_ids' ) . getFromId ;
18+ var shouldShowZeroLine = require ( '../../plots/cartesian/axes' ) . shouldShowZeroLine ;
1919
2020var SPLOM = 'splom' ;
2121
@@ -63,13 +63,13 @@ function dragOne(gd, trace, stash, scene) {
6363 var i = visibleDims [ k ] ;
6464 var rng = ranges [ k ] = new Array ( 4 ) ;
6565
66- var xa = AxisIDs . getFromId ( gd , trace . _diag [ i ] [ 0 ] ) ;
66+ var xa = getFromId ( gd , trace . _diag [ i ] [ 0 ] ) ;
6767 if ( xa ) {
6868 rng [ 0 ] = xa . r2l ( xa . range [ 0 ] ) ;
6969 rng [ 2 ] = xa . r2l ( xa . range [ 1 ] ) ;
7070 }
7171
72- var ya = AxisIDs . getFromId ( gd , trace . _diag [ i ] [ 1 ] ) ;
72+ var ya = getFromId ( gd , trace . _diag [ i ] [ 1 ] ) ;
7373 if ( ya ) {
7474 rng [ 1 ] = ya . r2l ( ya . range [ 0 ] ) ;
7575 rng [ 3 ] = ya . r2l ( ya . range [ 1 ] ) ;
@@ -144,17 +144,17 @@ function makeGridData(gd) {
144144 push ( 'grid' , xa , x , yOffset , x , yOffset + ya . _length ) ;
145145 }
146146 }
147- if ( showZeroLine ( xa ) ) {
148- x = xa . _offset + xa . l2p ( 0 ) ;
149- push ( 'zeroline' , xa , x , yOffset , x , yOffset + ya . _length ) ;
150- }
151147 if ( ya . showgrid ) {
152148 for ( k = 0 ; k < yVals . length ; k ++ ) {
153149 y = yOffset + yb + ym * yVals [ k ] . x ;
154150 push ( 'grid' , ya , xa . _offset , y , xa . _offset + xa . _length , y ) ;
155151 }
156152 }
157- if ( showZeroLine ( ya ) ) {
153+ if ( shouldShowZeroLine ( gd , xa , ya ) ) {
154+ x = xa . _offset + xa . l2p ( 0 ) ;
155+ push ( 'zeroline' , xa , x , yOffset , x , yOffset + ya . _length ) ;
156+ }
157+ if ( shouldShowZeroLine ( gd , ya , xa ) ) {
158158 y = yOffset + yb + 0 ;
159159 push ( 'zeroline' , ya , xa . _offset , y , xa . _offset + xa . _length , y ) ;
160160 }
@@ -168,20 +168,6 @@ function makeGridData(gd) {
168168 return gridBatches ;
169169}
170170
171- // just like in Axes.doTicks but without the loop over traces
172- function showZeroLine ( ax ) {
173- var rng = Lib . simpleMap ( ax . range , ax . r2l ) ;
174- var p0 = ax . l2p ( 0 ) ;
175-
176- return (
177- ax . zeroline &&
178- ax . _vals && ax . _vals . length &&
179- ( rng [ 0 ] * rng [ 1 ] <= 0 ) &&
180- ( ax . type === 'linear' || ax . type === '-' ) &&
181- ( ( p0 > 1 && p0 < ax . _length - 1 ) || ! ax . showline )
182- ) ;
183- }
184-
185171function clean ( newFullData , newFullLayout , oldFullData , oldFullLayout , oldCalcdata ) {
186172 var oldModules = oldFullLayout . _modules || [ ] ;
187173 var newModules = newFullLayout . _modules || [ ] ;
0 commit comments