From 6033cc5f84f03d2d50fa2840ae0a24c37c7b37f0 Mon Sep 17 00:00:00 2001 From: ruijin Date: Fri, 24 Apr 2020 22:18:34 -0700 Subject: [PATCH 1/7] keep null in x,y so regl knows the end of polygon --- src/traces/scattergl/plot.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/traces/scattergl/plot.js b/src/traces/scattergl/plot.js index abc58a2314c..dbbf4eb5756 100644 --- a/src/traces/scattergl/plot.js +++ b/src/traces/scattergl/plot.js @@ -186,6 +186,7 @@ module.exports = function plot(gd, subplot, cdata) { if(isNaN(srcPos[j]) || isNaN(srcPos[j + 1])) { pos = pos.concat(srcPos.slice(last, j)); pos.push(srcPos[last], srcPos[last + 1]); + pos.push(null, null); // keep null to mark end of polygon last = j + 2; } } From 438913a49db7a67ec045dd1d2aa4ebc59facf55f Mon Sep 17 00:00:00 2001 From: Ruijin Wu Date: Sat, 19 Dec 2020 15:20:36 -0800 Subject: [PATCH 2/7] add test to toself_tonext with >2 segments --- .../mocks/gl2d_scatter_fill_self_next.json | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/test/image/mocks/gl2d_scatter_fill_self_next.json b/test/image/mocks/gl2d_scatter_fill_self_next.json index 718e8d397cb..a262f8a89aa 100644 --- a/test/image/mocks/gl2d_scatter_fill_self_next.json +++ b/test/image/mocks/gl2d_scatter_fill_self_next.json @@ -17,7 +17,29 @@ "y": [5, 6, 5], "fill": "toself", "type": "scattergl" - } + }, + { + "x": [1.1, 1.1, 2.1, null, + -1.9,-1.9,-0.9,null, + -4.9,-4.9,-3.9], + "y": [6.1, 7.1, 7.1, null, + 1.1, 2.1, 2.1, null, + 1.1, 2.1, 2.1], + "type": "scattergl", + "fill": "tonext" + }, + { + "x": [ 0, 0, 2, 2, 0, null, + 1,1,3,3,1,null, + -2,-2,0,0,-2,null, + -5,-5,-3,-3,-5], + "y": [9, 10, 10, 9, 9, null, + 6,8, 8, 6,6,null, + 1,3,3,1, 1,null, + 1,3,3,1,1], + "type": "scattergl", + "fill": "tonext" + } ], "layout":{ "title": {"text": "Fill toself and tonext"}, From 5f779e094c5ff9308956125b623d821b65a6d231 Mon Sep 17 00:00:00 2001 From: Ruijin Wu Date: Mon, 21 Dec 2020 21:35:06 -0800 Subject: [PATCH 3/7] update package to use fixed regl2d; add baseline image for new test --- package-lock.json | 85 +----------------- package.json | 2 +- .../baselines/gl2d_scatter_fill_self_next.png | Bin 14877 -> 17026 bytes 3 files changed, 3 insertions(+), 84 deletions(-) diff --git a/package-lock.json b/package-lock.json index 26d1d2416bb..22794d7cdbd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10292,9 +10292,8 @@ } }, "regl-line2d": { - "version": "3.0.18", - "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.0.18.tgz", - "integrity": "sha512-yX1TlV0SHBdn8EkU+9K+K19qx7WSDOchrKx+h43rE2NCWuPlVj/MPDgrIXnzhnd42XhQtvvnkSc7aCSLjGAhZQ==", + "version": "git://github.com/ruijin/regl-line2d.git#e9d0198ece05e135557e786d8815c23ed3fb0e9f", + "from": "git://github.com/ruijin/regl-line2d.git#e9d0198ece05e135557e786d8815c23ed3fb0e9f", "requires": { "array-bounds": "^1.0.1", "array-normalize": "^1.1.4", @@ -10307,86 +10306,6 @@ "parse-rect": "^1.2.0", "pick-by-alias": "^1.2.0", "to-float32": "^1.0.1" - }, - "dependencies": { - "glslify": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", - "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", - "requires": { - "bl": "^2.2.1", - "concat-stream": "^1.5.2", - "duplexify": "^3.4.5", - "falafel": "^2.1.0", - "from2": "^2.3.0", - "glsl-resolve": "0.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glslify-bundle": "^5.0.0", - "glslify-deps": "^1.2.5", - "minimist": "^1.2.5", - "resolve": "^1.1.5", - "stack-trace": "0.0.9", - "static-eval": "^2.0.5", - "through2": "^2.0.1", - "xtend": "^4.0.0" - } - }, - "glslify-deps": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", - "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", - "requires": { - "@choojs/findup": "^0.2.0", - "events": "^3.2.0", - "glsl-resolve": "0.0.1", - "glsl-tokenizer": "^2.0.0", - "graceful-fs": "^4.1.2", - "inherits": "^2.0.1", - "map-limit": "0.0.1", - "resolve": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } } }, "regl-scatter2d": { diff --git a/package.json b/package.json index e0421eb178c..4096f3d617d 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "polybooljs": "^1.2.0", "regl": "^1.6.1", "regl-error2d": "^2.0.11", - "regl-line2d": "^3.0.18", + "regl-line2d": "git://github.com/ruijin/regl-line2d.git#e9d0198ece05e135557e786d8815c23ed3fb0e9f", "regl-scatter2d": "^3.2.1", "regl-splom": "^1.0.12", "right-now": "^1.0.0", diff --git a/test/image/baselines/gl2d_scatter_fill_self_next.png b/test/image/baselines/gl2d_scatter_fill_self_next.png index 9ba9dd841858c80c662d6f42d7ad6c630803674f..8f6f374e5758489be748a9555a0708b36bbbad11 100644 GIT binary patch literal 17026 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 HSN{J4hDX0m literal 14877 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 From 90cacae11c55fd75ee0a8cdace8cc3f8557712c1 Mon Sep 17 00:00:00 2001 From: Ruijin Wu Date: Mon, 21 Dec 2020 22:56:56 -0800 Subject: [PATCH 4/7] fix issue with tozeroy/tozerox by only enable new fill behavior for toself/tonext --- package-lock.json | 4 ++-- package.json | 2 +- src/traces/scattergl/plot.js | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 22794d7cdbd..ea5cdef7047 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10292,8 +10292,8 @@ } }, "regl-line2d": { - "version": "git://github.com/ruijin/regl-line2d.git#e9d0198ece05e135557e786d8815c23ed3fb0e9f", - "from": "git://github.com/ruijin/regl-line2d.git#e9d0198ece05e135557e786d8815c23ed3fb0e9f", + "version": "git://github.com/ruijin/regl-line2d.git#75188f75010ed77e5f376e7f7dc153cd89813c88", + "from": "git://github.com/ruijin/regl-line2d.git#75188f75010ed77e5f376e7f7dc153cd89813c88", "requires": { "array-bounds": "^1.0.1", "array-normalize": "^1.1.4", diff --git a/package.json b/package.json index 4096f3d617d..fe966323e5f 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "polybooljs": "^1.2.0", "regl": "^1.6.1", "regl-error2d": "^2.0.11", - "regl-line2d": "git://github.com/ruijin/regl-line2d.git#e9d0198ece05e135557e786d8815c23ed3fb0e9f", + "regl-line2d": "git://github.com/ruijin/regl-line2d.git#75188f75010ed77e5f376e7f7dc153cd89813c88", "regl-scatter2d": "^3.2.1", "regl-splom": "^1.0.12", "right-now": "^1.0.0", diff --git a/src/traces/scattergl/plot.js b/src/traces/scattergl/plot.js index dbbf4eb5756..b6d7aefa7c0 100644 --- a/src/traces/scattergl/plot.js +++ b/src/traces/scattergl/plot.js @@ -182,6 +182,9 @@ module.exports = function plot(gd, subplot, cdata) { } else if(trace.fill === 'toself' || trace.fill === 'tonext') { pos = []; last = 0; + + fillOptions.splitNull = true + for(j = 0; j < srcPos.length; j += 2) { if(isNaN(srcPos[j]) || isNaN(srcPos[j + 1])) { pos = pos.concat(srcPos.slice(last, j)); From 3b628515b44be0ac3bf5bf8d85a1e4efa61f401f Mon Sep 17 00:00:00 2001 From: Ruijin Wu Date: Mon, 21 Dec 2020 23:35:54 -0800 Subject: [PATCH 5/7] fix coding style to pass test-syntax --- src/traces/scattergl/plot.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/traces/scattergl/plot.js b/src/traces/scattergl/plot.js index b6d7aefa7c0..4ca1b35b6b5 100644 --- a/src/traces/scattergl/plot.js +++ b/src/traces/scattergl/plot.js @@ -183,8 +183,8 @@ module.exports = function plot(gd, subplot, cdata) { pos = []; last = 0; - fillOptions.splitNull = true - + fillOptions.splitNull = true; + for(j = 0; j < srcPos.length; j += 2) { if(isNaN(srcPos[j]) || isNaN(srcPos[j + 1])) { pos = pos.concat(srcPos.slice(last, j)); From 4c19b403fe6be140eb4655b2cb62e8ab228fb043 Mon Sep 17 00:00:00 2001 From: Ruijin Wu Date: Wed, 23 Dec 2020 00:23:36 -0800 Subject: [PATCH 6/7] update regl-lin2d with findIndex polyfill to be comatible with old version of node in image test server --- package-lock.json | 8 ++++---- package.json | 2 +- .../baselines/gl2d_scatter_fill_self_next.png | Bin 17026 -> 17520 bytes 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index ea5cdef7047..c1aebd093c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -682,8 +682,7 @@ "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" }, "array-from": { "version": "2.1.1", @@ -10292,10 +10291,11 @@ } }, "regl-line2d": { - "version": "git://github.com/ruijin/regl-line2d.git#75188f75010ed77e5f376e7f7dc153cd89813c88", - "from": "git://github.com/ruijin/regl-line2d.git#75188f75010ed77e5f376e7f7dc153cd89813c88", + "version": "git://github.com/ruijin/regl-line2d.git#d66c94274f53e7683f501f2192bde68c93e2221c", + "from": "git://github.com/ruijin/regl-line2d.git#d66c94274f53e7683f501f2192bde68c93e2221c", "requires": { "array-bounds": "^1.0.1", + "array-find-index": "^1.0.2", "array-normalize": "^1.1.4", "color-normalize": "^1.5.0", "earcut": "^2.1.5", diff --git a/package.json b/package.json index fe966323e5f..a061c74b4b2 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "polybooljs": "^1.2.0", "regl": "^1.6.1", "regl-error2d": "^2.0.11", - "regl-line2d": "git://github.com/ruijin/regl-line2d.git#75188f75010ed77e5f376e7f7dc153cd89813c88", + "regl-line2d": "git://github.com/ruijin/regl-line2d.git#d66c94274f53e7683f501f2192bde68c93e2221c", "regl-scatter2d": "^3.2.1", "regl-splom": "^1.0.12", "right-now": "^1.0.0", diff --git a/test/image/baselines/gl2d_scatter_fill_self_next.png b/test/image/baselines/gl2d_scatter_fill_self_next.png index 8f6f374e5758489be748a9555a0708b36bbbad11..285e4765863ef636911c390299d5ee727bf053b3 100644 GIT binary patch literal 17520 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 HSN{J4hDX0m From 477503049ee0121ad4b1f65f2717ea9ac92d62dd Mon Sep 17 00:00:00 2001 From: Ruijin Wu Date: Sat, 26 Dec 2020 01:14:09 +0000 Subject: [PATCH 7/7] update regl-line2d to 3.1.0 --- package-lock.json | 5 +++-- package.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c1aebd093c2..91ca83f35f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10291,8 +10291,9 @@ } }, "regl-line2d": { - "version": "git://github.com/ruijin/regl-line2d.git#d66c94274f53e7683f501f2192bde68c93e2221c", - "from": "git://github.com/ruijin/regl-line2d.git#d66c94274f53e7683f501f2192bde68c93e2221c", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.0.tgz", + "integrity": "sha512-8dB3SyAW5zTU759LrIJdkOe128htl1xlONHrknsFl1tAxZVqTc+WO/2k9pAJDuyiKu1v/6bosiuEDOB7G3dm4w==", "requires": { "array-bounds": "^1.0.1", "array-find-index": "^1.0.2", diff --git a/package.json b/package.json index a061c74b4b2..ee641feec65 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "polybooljs": "^1.2.0", "regl": "^1.6.1", "regl-error2d": "^2.0.11", - "regl-line2d": "git://github.com/ruijin/regl-line2d.git#d66c94274f53e7683f501f2192bde68c93e2221c", + "regl-line2d": "^3.1.0", "regl-scatter2d": "^3.2.1", "regl-splom": "^1.0.12", "right-now": "^1.0.0",