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