10
10
11
11
var createScatter = require ( 'regl-scatter2d' ) ;
12
12
var createLine = require ( 'regl-line2d' ) ;
13
- var createErrorX = require ( 'regl-error2d' ) ;
14
- var createErrorY = require ( 'regl-error2d' ) ;
13
+ var createError = require ( 'regl-error2d' ) ;
15
14
var cluster = require ( 'point-cluster' ) ;
16
15
var arrayRange = require ( 'array-range' ) ;
17
16
var Text = require ( 'gl-text' ) ;
@@ -108,8 +107,7 @@ function calc(gd, trace) {
108
107
if ( opts . fill && ! scene . fill2d ) scene . fill2d = true ;
109
108
if ( opts . marker && ! scene . scatter2d ) scene . scatter2d = true ;
110
109
if ( opts . line && ! scene . line2d ) scene . line2d = true ;
111
- if ( opts . errorX && ! scene . errorX2d ) scene . errorX2d = true ;
112
- if ( opts . errorY && ! scene . errorY2d ) scene . errorY2d = true ;
110
+ if ( ( opts . errorX || opts . errorY ) && ! scene . error2d ) scene . error2d = true ;
113
111
if ( opts . text && ! scene . glText ) scene . glText = true ;
114
112
115
113
// FIXME: organize it in a more appropriate manner, probably in sceneOptions
@@ -163,15 +161,12 @@ function sceneOptions(gd, subplot, trace, positions, x, y) {
163
161
) ;
164
162
}
165
163
166
- var errors ;
167
- if ( opts . errorX ) {
168
- errors = convert . errorBarPositions ( gd , trace , positions , x , y ) ;
164
+ if ( opts . errorX || opts . errorY ) {
165
+ var errors = convert . errorBarPositions ( gd , trace , positions , x , y ) ;
166
+
169
167
if ( opts . errorX ) {
170
168
Lib . extendFlat ( opts . errorX , errors . x ) ;
171
169
}
172
- }
173
- if ( opts . errorY ) {
174
- errors = convert . errorBarPositions ( gd , trace , positions , x , y ) ;
175
170
if ( opts . errorY ) {
176
171
Lib . extendFlat ( opts . errorY , errors . y ) ;
177
172
}
@@ -227,8 +222,7 @@ function sceneUpdate(gd, subplot) {
227
222
// regl- component stubs, initialized in dirty plot call
228
223
fill2d : false ,
229
224
scatter2d : false ,
230
- errorX2d : false ,
231
- errorY2d : false ,
225
+ error2d : false ,
232
226
line2d : false ,
233
227
glText : false ,
234
228
select2d : null
@@ -250,8 +244,7 @@ function sceneUpdate(gd, subplot) {
250
244
if ( scene . fill2d ) scene . fill2d . update ( opts ) ;
251
245
if ( scene . scatter2d ) scene . scatter2d . update ( opts ) ;
252
246
if ( scene . line2d ) scene . line2d . update ( opts ) ;
253
- if ( scene . errorX2d ) scene . errorX2d . update ( opts ) ;
254
- if ( scene . errorY2d ) scene . errorY2d . update ( opts ) ;
247
+ if ( scene . error2d ) scene . error2d . update ( opts . concat ( opts ) ) ;
255
248
if ( scene . select2d ) scene . select2d . update ( opts ) ;
256
249
if ( scene . glText ) {
257
250
for ( var i = 0 ; i < scene . count ; i ++ ) {
@@ -264,8 +257,7 @@ function sceneUpdate(gd, subplot) {
264
257
scene . draw = function draw ( ) {
265
258
var count = scene . count ;
266
259
var fill2d = scene . fill2d ;
267
- var errorX2d = scene . errorX2d ;
268
- var errorY2d = scene . errorY2d ;
260
+ var error2d = scene . error2d ;
269
261
var line2d = scene . line2d ;
270
262
var scatter2d = scene . scatter2d ;
271
263
var glText = scene . glText ;
@@ -280,11 +272,9 @@ function sceneUpdate(gd, subplot) {
280
272
if ( line2d && scene . lineOptions [ i ] ) {
281
273
line2d . draw ( i ) ;
282
274
}
283
- if ( errorX2d && scene . errorXOptions [ i ] ) {
284
- errorX2d . draw ( i ) ;
285
- }
286
- if ( errorY2d && scene . errorYOptions [ i ] ) {
287
- errorY2d . draw ( i ) ;
275
+ if ( error2d ) {
276
+ if ( scene . errorXOptions [ i ] ) error2d . draw ( i ) ;
277
+ if ( scene . errorYOptions [ i ] ) error2d . draw ( i + count ) ;
288
278
}
289
279
if ( scatter2d && scene . markerOptions [ i ] && ( ! selectBatch || ! selectBatch [ i ] ) ) {
290
280
scatter2d . draw ( i ) ;
@@ -306,8 +296,7 @@ function sceneUpdate(gd, subplot) {
306
296
scene . destroy = function destroy ( ) {
307
297
if ( scene . fill2d && scene . fill2d . destroy ) scene . fill2d . destroy ( ) ;
308
298
if ( scene . scatter2d && scene . scatter2d . destroy ) scene . scatter2d . destroy ( ) ;
309
- if ( scene . errorX2d && scene . errorX2d . destroy ) scene . errorX2d . destroy ( ) ;
310
- if ( scene . errorY2d && scene . errorY2d . destroy ) scene . errorY2d . destroy ( ) ;
299
+ if ( scene . error2d && scene . error2d . destroy ) scene . error2d . destroy ( ) ;
311
300
if ( scene . line2d && scene . line2d . destroy ) scene . line2d . destroy ( ) ;
312
301
if ( scene . select2d && scene . select2d . destroy ) scene . select2d . destroy ( ) ;
313
302
if ( scene . glText ) {
@@ -381,11 +370,8 @@ function plot(gd, subplot, cdata) {
381
370
382
371
if ( scene . dirty ) {
383
372
// make sure scenes are created
384
- if ( scene . errorX2d === true ) {
385
- scene . errorX2d = createErrorX ( regl ) ;
386
- }
387
- if ( scene . errorY2d === true ) {
388
- scene . errorY2d = createErrorY ( regl ) ;
373
+ if ( scene . error2d === true ) {
374
+ scene . error2d = createError ( regl ) ;
389
375
}
390
376
if ( scene . line2d === true ) {
391
377
scene . line2d = createLine ( regl ) ;
@@ -442,11 +428,9 @@ function plot(gd, subplot, cdata) {
442
428
} ) ;
443
429
scene . line2d . update ( scene . lineOptions ) ;
444
430
}
445
- if ( scene . errorX2d ) {
446
- scene . errorX2d . update ( scene . errorXOptions ) ;
447
- }
448
- if ( scene . errorY2d ) {
449
- scene . errorY2d . update ( scene . errorYOptions ) ;
431
+ if ( scene . error2d ) {
432
+ var errorBatch = ( scene . errorXOptions || [ ] ) . concat ( scene . errorYOptions || [ ] ) ;
433
+ scene . error2d . update ( errorBatch ) ;
450
434
}
451
435
if ( scene . scatter2d ) {
452
436
scene . scatter2d . update ( scene . markerOptions ) ;
@@ -685,11 +669,8 @@ function plot(gd, subplot, cdata) {
685
669
if ( scene . line2d ) {
686
670
scene . line2d . update ( vpRange ) ;
687
671
}
688
- if ( scene . errorX2d ) {
689
- scene . errorX2d . update ( vpRange ) ;
690
- }
691
- if ( scene . errorY2d ) {
692
- scene . errorY2d . update ( vpRange ) ;
672
+ if ( scene . error2d ) {
673
+ scene . error2d . update ( vpRange . concat ( vpRange ) ) ;
693
674
}
694
675
if ( scene . scatter2d ) {
695
676
scene . scatter2d . update ( vpRange ) ;
0 commit comments