From 379ffae015494073404de1b66733d8eaacfe4349 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Tue, 8 Jan 2019 10:40:51 -0500 Subject: [PATCH 1/4] fix reversescale for gl3d traces --- src/lib/gl_format_color.js | 6 +++++- src/traces/cone/convert.js | 2 +- src/traces/mesh3d/convert.js | 2 +- src/traces/streamtube/convert.js | 2 +- src/traces/surface/convert.js | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/lib/gl_format_color.js b/src/lib/gl_format_color.js index 383f434a52a..35be62a2b7e 100644 --- a/src/lib/gl_format_color.js +++ b/src/lib/gl_format_color.js @@ -82,9 +82,13 @@ function formatColor(containerIn, opacityIn, len) { return colorOut; } -function parseColorScale(colorscale, alpha) { +function parseColorScale(cont, alpha) { if(alpha === undefined) alpha = 1; + var colorscale = cont.reversescale ? + Colorscale.flipScale(cont.colorscale) : + cont.colorscale; + return colorscale.map(function(elem) { var index = elem[0]; var color = tinycolor(elem[1]); diff --git a/src/traces/cone/convert.js b/src/traces/cone/convert.js index 8ef950d6bd1..ee74707a413 100644 --- a/src/traces/cone/convert.js +++ b/src/traces/cone/convert.js @@ -80,7 +80,7 @@ function convert(scene, trace) { trace._len ); - coneOpts.colormap = parseColorScale(trace.colorscale); + coneOpts.colormap = parseColorScale(trace); coneOpts.vertexIntensityBounds = [trace.cmin / trace._normMax, trace.cmax / trace._normMax]; coneOpts.coneOffset = anchor2coneOffset[trace.anchor]; diff --git a/src/traces/mesh3d/convert.js b/src/traces/mesh3d/convert.js index 9b2c926f738..250c480b44e 100644 --- a/src/traces/mesh3d/convert.js +++ b/src/traces/mesh3d/convert.js @@ -162,7 +162,7 @@ proto.update = function(data) { this.color = '#fff'; config.vertexIntensity = data.intensity; config.vertexIntensityBounds = [data.cmin, data.cmax]; - config.colormap = parseColorScale(data.colorscale); + config.colormap = parseColorScale(data); } else if(data.vertexcolor) { this.color = data.vertexcolor[0]; config.vertexColors = parseColorArray(data.vertexcolor); diff --git a/src/traces/streamtube/convert.js b/src/traces/streamtube/convert.js index 52488c1ea44..d663c262fb5 100644 --- a/src/traces/streamtube/convert.js +++ b/src/traces/streamtube/convert.js @@ -153,7 +153,7 @@ function convert(scene, trace) { tubeOpts.startingPositions = startingPositions; } - tubeOpts.colormap = parseColorScale(trace.colorscale); + tubeOpts.colormap = parseColorScale(trace); tubeOpts.tubeSize = trace.sizeref; tubeOpts.maxLength = trace.maxdisplayed; diff --git a/src/traces/surface/convert.js b/src/traces/surface/convert.js index a5f4147462e..74397d78ae5 100644 --- a/src/traces/surface/convert.js +++ b/src/traces/surface/convert.js @@ -364,7 +364,7 @@ proto.update = function(data) { var sceneLayout = scene.fullSceneLayout; var surface = this.surface; var alpha = data.opacity; - var colormap = parseColorScale(data.colorscale, alpha); + var colormap = parseColorScale(data, alpha); var scaleFactor = scene.dataScale; var xlen = data.z[0].length; var ylen = data._ylength; From d408d9a685b23445d66d4b4c5a569337ecb540d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Tue, 8 Jan 2019 10:41:01 -0500 Subject: [PATCH 2/4] add gl3d reversescale mock --- test/image/baselines/gl3d_reversescale.png | Bin 0 -> 53554 bytes test/image/mocks/gl3d_reversescale.json | 148 +++++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 test/image/baselines/gl3d_reversescale.png create mode 100644 test/image/mocks/gl3d_reversescale.json diff --git a/test/image/baselines/gl3d_reversescale.png b/test/image/baselines/gl3d_reversescale.png new file mode 100644 index 0000000000000000000000000000000000000000..9cfb4378f6bdc07c92cf751d34e2bee49e9827f2 GIT binary patch literal 53554 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

)_ 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 E0Nq>ZDF6Tf literal 0 HcmV?d00001 diff --git a/test/image/mocks/gl3d_reversescale.json b/test/image/mocks/gl3d_reversescale.json new file mode 100644 index 00000000000..0c211ee392e --- /dev/null +++ b/test/image/mocks/gl3d_reversescale.json @@ -0,0 +1,148 @@ +{ + "data": [{ + "type": "surface", + "z": [ + [8.41, 3, 4], + [1, 2, 3], + [2, 43, 1] + ], + "reversescale": true, + "colorbar": { + "title": "surface", + "x": -0.15, + "len": 0.3, + "y": 0.7 + } + }, { + "type":"mesh3d", + "name": "colorscale + intensity", + "x":[0, 1, 2, 0], + "y":[0, 0, 1, 2], + "z":[0, 2, 0, 1], + "i":[0, 0, 0, 1], + "j":[1, 2, 3, 2], + "k":[2, 3, 1, 3], + "colorscale": [ + [0, "rgb(0, 0, 0)"], + [0.33, "rgb(255, 0, 0)"], + [0.66, "rgb(0, 255, 0)"], + [1, "rgb(0, 0, 255)"] + ], + "intensity": [0, 0.33, 0.66, 1], + "reversescale": true, + "colorbar": { + "title": "mesh3d", + "x": -0.15, + "len": 0.3, + "y": 0.4 + } + }, { + "type": "streamtube", + "x": [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2], + "y": [0, 0, 0, 1, 1, 1, 2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 2], + "z": [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2], + "u": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1.8414709848078965, + 1.8414709848078965, + 1.8414709848078965, + 1.8414709848078965, + 1.8414709848078965, + 1.8414709848078965, + 1.8414709848078965, + 1.8414709848078965, + 1.8414709848078965, + 1.9092974268256817, + 1.9092974268256817, + 1.9092974268256817, + 1.9092974268256817, + 1.9092974268256817, + 1.9092974268256817, + 1.9092974268256817, + 1.9092974268256817, + 1.9092974268256817 + ], + "v": [ + 1, + 1, + 1, + 0.5403023058681398, + 0.5403023058681398, + 0.5403023058681398, + -0.4161468365471424, + -0.4161468365471424, + -0.4161468365471424, + 1, + 1, + 1, + 0.5403023058681398, + 0.5403023058681398, + 0.5403023058681398, + -0.4161468365471424, + -0.4161468365471424, + -0.4161468365471424, + 1, + 1, + 1, + 0.5403023058681398, + 0.5403023058681398, + 0.5403023058681398, + -0.4161468365471424, + -0.4161468365471424, + -0.4161468365471424 + ], + "w": [ + 0, + 0.08865606199840186, + 0.1693927420185106, + 0, + 0.08865606199840186, + 0.1693927420185106, + 0, + 0.08865606199840186, + 0.1693927420185106, + 0, + 0.08865606199840186, + 0.1693927420185106, + 0, + 0.08865606199840186, + 0.1693927420185106, + 0, + 0.08865606199840186, + 0.1693927420185106, + 0, + 0.08865606199840186, + 0.1693927420185106, + 0, + 0.08865606199840186, + 0.1693927420185106, + 0, + 0.08865606199840186, + 0.1693927420185106 + ], + "reversescale": true, + "colorbar": { + "title": "streamtube", + "x": -0.15, + "len": 0.3, + "y": 0, + "yanchor": "bottom" + } + }], + "layout": { + "title": "gl3d trace with reversescale:true", + "scene": { + "camera": { + "eye": {"x": -2, "y": -0.35, "z": 0.34} + } + } + } +} From 5cc458dc5353457573dc465a133d2b1c57ec06a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Tue, 8 Jan 2019 11:33:48 -0500 Subject: [PATCH 3/4] use 'title.text' in mocks --- test/image/mocks/gl3d_reversescale.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/image/mocks/gl3d_reversescale.json b/test/image/mocks/gl3d_reversescale.json index 0c211ee392e..95e0ff09274 100644 --- a/test/image/mocks/gl3d_reversescale.json +++ b/test/image/mocks/gl3d_reversescale.json @@ -8,7 +8,7 @@ ], "reversescale": true, "colorbar": { - "title": "surface", + "title": {"text": "surface"}, "x": -0.15, "len": 0.3, "y": 0.7 @@ -31,7 +31,7 @@ "intensity": [0, 0.33, 0.66, 1], "reversescale": true, "colorbar": { - "title": "mesh3d", + "title": {"text": "mesh3d"}, "x": -0.15, "len": 0.3, "y": 0.4 @@ -130,7 +130,7 @@ ], "reversescale": true, "colorbar": { - "title": "streamtube", + "title": {"text": "streamtube"}, "x": -0.15, "len": 0.3, "y": 0, @@ -138,7 +138,7 @@ } }], "layout": { - "title": "gl3d trace with reversescale:true", + "title": {"text": "gl3d trace with reversescale:true"}, "scene": { "camera": { "eye": {"x": -2, "y": -0.35, "z": 0.34} From 454eed814f53f38d2ee4b0748f1dfb19f081d429 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Tue, 8 Jan 2019 11:47:51 -0500 Subject: [PATCH 4/4] :hocho: duplicate `coerce('colorscale')` --- src/traces/surface/defaults.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/traces/surface/defaults.js b/src/traces/surface/defaults.js index 9bdad26a812..54c0ffc5033 100644 --- a/src/traces/surface/defaults.js +++ b/src/traces/surface/defaults.js @@ -6,7 +6,6 @@ * LICENSE file in the root directory of this source tree. */ - 'use strict'; var Registry = require('../../registry'); @@ -15,7 +14,6 @@ var Lib = require('../../lib'); var colorscaleDefaults = require('../../components/colorscale/defaults'); var attributes = require('./attributes'); - module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) { var i, j; @@ -61,8 +59,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout var surfaceColor = coerce('surfacecolor'); - coerce('colorscale'); - var dims = ['x', 'y', 'z']; for(i = 0; i < 3; ++i) {