@@ -42,8 +42,8 @@ function calc(gd, trace) {
4242 var xa = AxisIDs . getFromId ( gd , trace . xaxis ) ;
4343 var ya = AxisIDs . getFromId ( gd , trace . yaxis ) ;
4444 var subplot = fullLayout . _plots [ trace . xaxis + trace . yaxis ] ;
45- var count = trace . _length ;
46- var count2 = count * 2 ;
45+ var len = trace . _length ;
46+ var len2 = len * 2 ;
4747 var stash = { } ;
4848 var i , xx , yy ;
4949
@@ -52,21 +52,21 @@ function calc(gd, trace) {
5252
5353 // we need hi-precision for scatter2d,
5454 // regl-scatter2d uses NaNs for bad/missing values
55- var positions = new Array ( count2 ) ;
56- for ( i = 0 ; i < count ; i ++ ) {
55+ var positions = new Array ( len2 ) ;
56+ for ( i = 0 ; i < len ; i ++ ) {
5757 xx = x [ i ] ;
5858 yy = y [ i ] ;
5959 positions [ i * 2 ] = xx === BADNUM ? NaN : xx ;
6060 positions [ i * 2 + 1 ] = yy === BADNUM ? NaN : yy ;
6161 }
6262
6363 if ( xa . type === 'log' ) {
64- for ( i = 0 ; i < count2 ; i += 2 ) {
64+ for ( i = 0 ; i < len2 ; i += 2 ) {
6565 positions [ i ] = xa . c2l ( positions [ i ] ) ;
6666 }
6767 }
6868 if ( ya . type === 'log' ) {
69- for ( i = 1 ; i < count2 ; i += 2 ) {
69+ for ( i = 1 ; i < len2 ; i += 2 ) {
7070 positions [ i ] = ya . c2l ( positions [ i ] ) ;
7171 }
7272 }
@@ -77,8 +77,8 @@ function calc(gd, trace) {
7777 // FIXME: delegate this to webworker
7878 stash . tree = cluster ( positions ) ;
7979 } else {
80- var ids = stash . ids = new Array ( count ) ;
81- for ( i = 0 ; i < count ; i ++ ) {
80+ var ids = stash . ids = new Array ( len ) ;
81+ for ( i = 0 ; i < len ; i ++ ) {
8282 ids [ i ] = i ;
8383 }
8484 }
@@ -92,12 +92,9 @@ function calc(gd, trace) {
9292 // For graphs with very large number of points and array marker.size,
9393 // use average marker size instead to speed things up.
9494 setFirstScatter ( fullLayout , trace ) ;
95- var ppad ;
96- if ( count < TOO_MANY_POINTS ) {
97- ppad = calcMarkerSize ( trace , count ) ;
98- } else if ( opts . marker ) {
99- ppad = 2 * ( opts . marker . sizeAvg || Math . max ( opts . marker . size , 3 ) ) ;
100- }
95+ var ppad = len < TOO_MANY_POINTS ?
96+ calcMarkerSize ( trace , len ) :
97+ 2 * ( opts . marker . sizeAvg || Math . max ( opts . marker . size , 3 ) ) ;
10198 calcAxisExpansion ( gd , trace , xa , ya , x , y , ppad ) ;
10299 if ( opts . errorX ) expandForErrorBars ( trace , xa , opts . errorX ) ;
103100 if ( opts . errorY ) expandForErrorBars ( trace , ya , opts . errorY ) ;
@@ -111,7 +108,7 @@ function calc(gd, trace) {
111108
112109 // FIXME: organize it in a more appropriate manner, probably in sceneOptions
113110 // put point-cluster instance for optimized regl calc
114- if ( opts . marker && count >= TOO_MANY_POINTS ) {
111+ if ( opts . marker && len >= TOO_MANY_POINTS ) {
115112 opts . marker . cluster = stash . tree ;
116113 }
117114
@@ -129,13 +126,10 @@ function calc(gd, trace) {
129126
130127 // stash scene ref
131128 stash . _scene = scene ;
132- stash . index = scene . count ;
129+ stash . index = scene . count ++ ;
133130 stash . x = x ;
134131 stash . y = y ;
135132 stash . positions = positions ;
136- stash . count = count ;
137-
138- scene . count ++ ;
139133
140134 return [ { x : false , y : false , t : stash , trace : trace } ] ;
141135}
@@ -554,6 +548,7 @@ function plot(gd, subplot, cdata) {
554548 var trace = cd0 . trace ;
555549 var stash = cd0 . t ;
556550 var index = stash . index ;
551+ var len = trace . _length ;
557552 var x = stash . x ;
558553 var y = stash . y ;
559554
@@ -574,7 +569,7 @@ function plot(gd, subplot, cdata) {
574569 selDict [ selPts [ j ] ] = 1 ;
575570 }
576571 var unselPts = [ ] ;
577- for ( j = 0 ; j < stash . count ; j ++ ) {
572+ for ( j = 0 ; j < len ; j ++ ) {
578573 if ( ! selDict [ j ] ) unselPts . push ( j ) ;
579574 }
580575 scene . unselectBatch [ index ] = unselPts ;
@@ -585,9 +580,9 @@ function plot(gd, subplot, cdata) {
585580 // - spin that in a webworker
586581 // - compute selection from polygons in data coordinates
587582 // (maybe just for linear axes)
588- var xpx = stash . xpx = new Array ( stash . count ) ;
589- var ypx = stash . ypx = new Array ( stash . count ) ;
590- for ( j = 0 ; j < stash . count ; j ++ ) {
583+ var xpx = stash . xpx = new Array ( len ) ;
584+ var ypx = stash . ypx = new Array ( len ) ;
585+ for ( j = 0 ; j < len ; j ++ ) {
591586 xpx [ j ] = xaxis . c2p ( x [ j ] ) ;
592587 ypx [ j ] = yaxis . c2p ( y [ j ] ) ;
593588 }
@@ -849,6 +844,7 @@ function selectPoints(searchInfo, selectionTester) {
849844 var selection = [ ] ;
850845 var trace = cd [ 0 ] . trace ;
851846 var stash = cd [ 0 ] . t ;
847+ var len = trace . _length ;
852848 var x = stash . x ;
853849 var y = stash . y ;
854850 var scene = stash . _scene ;
@@ -868,7 +864,7 @@ function selectPoints(searchInfo, selectionTester) {
868864 var i ;
869865 if ( selectionTester !== false && ! selectionTester . degenerate ) {
870866 els = [ ] , unels = [ ] ;
871- for ( i = 0 ; i < stash . count ; i ++ ) {
867+ for ( i = 0 ; i < len ; i ++ ) {
872868 if ( selectionTester . contains ( [ stash . xpx [ i ] , stash . ypx [ i ] ] , false , i , searchInfo ) ) {
873869 els . push ( i ) ;
874870 selection . push ( {
@@ -882,7 +878,7 @@ function selectPoints(searchInfo, selectionTester) {
882878 }
883879 }
884880 } else {
885- unels = arrayRange ( stash . count ) ;
881+ unels = arrayRange ( len ) ;
886882 }
887883
888884 // make sure selectBatch is created
@@ -916,6 +912,7 @@ function selectPoints(searchInfo, selectionTester) {
916912
917913function styleTextSelection ( cd ) {
918914 var cd0 = cd [ 0 ] ;
915+ var trace = cd0 . trace ;
919916 var stash = cd0 . t ;
920917 var scene = stash . _scene ;
921918 var index = stash . index ;
@@ -932,8 +929,7 @@ function styleTextSelection(cd) {
932929 var utc = unselOpts . color ;
933930 var base = baseOpts . color ;
934931 var hasArrayBase = Array . isArray ( base ) ;
935- opts . color = new Array ( stash . count ) ;
936-
932+ opts . color = new Array ( trace . _length ) ;
937933
938934 for ( i = 0 ; i < els . length ; i ++ ) {
939935 j = els [ i ] ;
0 commit comments