Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
1c52fa6
Merge pull request #1 from plotly/master
ErwanMAS Sep 8, 2018
bdc94ce
Merge pull request #2 from plotly/master
ErwanMAS Sep 12, 2018
e69e2d6
Merge pull request #3 from plotly/master
ErwanMAS Sep 30, 2018
52020a9
Fix https://codepen.io/erwanmas/pen/JaymVr
ErwanMAS Sep 7, 2018
304083e
fix lint issues
ErwanMAS Sep 7, 2018
05343b8
only one big mock for the 3 tests
ErwanMAS Sep 7, 2018
51d6688
add simple shape for line in scattergl
ErwanMAS Sep 11, 2018
831f508
add shape to scattergl
ErwanMAS Sep 12, 2018
39eb303
remove some empty lines
ErwanMAS Sep 12, 2018
283b50d
update of the baseline images
ErwanMAS Sep 12, 2018
02e924c
we don't reuse scatter files ... because partialy impelemented
ErwanMAS Sep 12, 2018
a49e6d0
fix lint
ErwanMAS Sep 13, 2018
5d3a924
- remove line_shape_defaults.js , moe the code into scattergl/default…
ErwanMAS Sep 14, 2018
f670af2
fix lint issues
ErwanMAS Sep 14, 2018
93b61bc
- modify one test to add GL/REG version
ErwanMAS Sep 30, 2018
346a32a
- remove some console.log
ErwanMAS Sep 30, 2018
9cf7172
add baseline for the gl2d_order_error
ErwanMAS Sep 30, 2018
987e6cd
fix lint issues
ErwanMAS Sep 30, 2018
95c602e
last version , we display by order only .
ErwanMAS Oct 1, 2018
be43294
- fix gl2d_scatter_fill_self_next ( rollback the baselines test/image…
ErwanMAS Oct 5, 2018
126e29c
fix lint issues
ErwanMAS Oct 5, 2018
9cc641a
Merge branch 'master' into pr-2979
etpinard Oct 5, 2018
075bd14
DRY up fill ordering logic
etpinard Oct 5, 2018
6ae6283
DRY up scatter / scattergl fill ordering in linkTraces
etpinard Oct 5, 2018
54d8240
improve gl2d_scatter_fill_self_next_vs_nogl mock
etpinard Oct 9, 2018
d8297a0
improve line.shape 'vh' by @ErwanMAS
etpinard Oct 11, 2018
d708132
merge 'push' calls together
etpinard Oct 11, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
DRY up fill ordering logic
... by using _nexttrace and _prevtrace like SVG scatter does
  • Loading branch information
etpinard committed Oct 5, 2018
commit 075bd145e9122a87456cf511d729b2e05e45859a
91 changes: 40 additions & 51 deletions src/traces/scattergl/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -256,64 +256,38 @@ function sceneUpdate(gd, subplot) {

// draw traces in proper order
scene.draw = function draw() {
var i;
var we_must_draw_previous_line_marker = 0;
for(i = 0; i < scene.count; i++) {
var we_defer_somes_draw = 0;
if(scene.fill2d && scene.fillOptions[i] && scene.fillOptions[i].fillmode && scene.fillOptions[i].fillmode === 'tonext') {
we_defer_somes_draw = 1;
} else {
if(we_must_draw_previous_line_marker && scene.line2d && scene.lineOptions[i - 1]) {
scene.line2d.draw(i - 1);
}
if(we_must_draw_previous_line_marker && scene.scatter2d && scene.markerOptions[i - 1]) {
scene.scatter2d.draw(i - 1);
}
we_must_draw_previous_line_marker = 0;
}
if(scene.fill2d && scene.fillOptions[i]) {
scene.fill2d.draw(i);
var count = scene.count;
var fill2d = scene.fill2d;
var error2d = scene.error2d;
var line2d = scene.line2d;
var scatter2d = scene.scatter2d;
var glText = scene.glText;
var select2d = scene.select2d;
var selectBatch = scene.selectBatch;
var unselectBatch = scene.unselectBatch;

for(var i = 0; i < count; i++) {
if(fill2d && scene.fillOrder[i]) {
fill2d.draw(scene.fillOrder[i]);
}
// we draw line2d
if(we_must_draw_previous_line_marker && scene.line2d && scene.lineOptions[i - 1]) {
scene.line2d.draw(i - 1);
if(line2d && scene.lineOptions[i]) {
line2d.draw(i);
}
if(scene.line2d && scene.lineOptions[i]) {
if(we_defer_somes_draw === 0) {
scene.line2d.draw(i);
}
if(error2d) {
if(scene.errorXOptions[i]) error2d.draw(i);
if(scene.errorYOptions[i]) error2d.draw(i + count);
}
if(scene.error2d && scene.errorXOptions[i]) {
scene.error2d.draw(i);
if(scatter2d && scene.markerOptions[i] && (!selectBatch || !selectBatch[i])) {
scatter2d.draw(i);
}
if(scene.error2d && scene.errorYOptions[i]) {
scene.error2d.draw(i + scene.count);
}
// we draw scatter2d
if(!scene.selectBatch || !scene.selectBatch[i]) {
if(we_must_draw_previous_line_marker && scene.scatter2d && scene.markerOptions[i - 1]) {
scene.scatter2d.draw(i - 1);
}
if(scene.scatter2d && scene.markerOptions[i]) {
if(we_defer_somes_draw === 0) {
scene.scatter2d.draw(i);
}
}
}
if(scene.glText[i] && scene.textOptions[i]) {
scene.glText[i].render();
}
if(we_defer_somes_draw === 1) {
we_must_draw_previous_line_marker = 1;
} else {
we_must_draw_previous_line_marker = 0;
if(glText[i] && scene.textOptions[i]) {
glText[i].render();
}
}

// draw traces in selection mode
if(scene.scatter2d && scene.select2d && scene.selectBatch) {
scene.select2d.draw(scene.selectBatch);
scene.scatter2d.draw(scene.unselectBatch);
if(scatter2d && select2d && selectBatch) {
select2d.draw(selectBatch);
scatter2d.draw(unselectBatch);
}

scene.dirty = false;
Expand Down Expand Up @@ -448,7 +422,9 @@ function plot(gd, subplot, cdata) {
if(scene.scatter2d) {
scene.scatter2d.update(scene.markerOptions);
}

// fill requires linked traces, so we generate it's positions here
scene.fillOrder = Lib.repeat(null, scene.count);
if(scene.fill2d) {
scene.fillOptions = scene.fillOptions.map(function(fillOptions, i) {
var cdscatter = cdata[i];
Expand All @@ -459,6 +435,19 @@ function plot(gd, subplot, cdata) {
var lineOptions = scene.lineOptions[i];
var last, j;

var fillData = [];
if(trace.fill && (trace.fill.substr(0, 6) === 'tozero' || trace.fill === 'toself' ||
(trace.fill.substr(0, 2) === 'to' && !trace._prevtrace))
) {
fillData.push(i)
}
if(trace._nexttrace) {
// make the fill-to-next path now for the NEXT trace, so it shows
// behind both lines.
fillData.push(i + 1);
}
if(fillData.length) scene.fillOrder[i] = fillData;

var pos = [], srcPos = (lineOptions && lineOptions.positions) || stash.positions;

if(trace.fill === 'tozeroy') {
Expand Down