diff --git a/draftlogs/6938_add.md b/draftlogs/6938_add.md new file mode 100644 index 00000000000..6e4816e6815 --- /dev/null +++ b/draftlogs/6938_add.md @@ -0,0 +1,2 @@ + - Add "raw" sizemode to cone trace [[#6938](https://github.com/plotly/plotly.js/pull/6938)] + diff --git a/src/traces/cone/attributes.js b/src/traces/cone/attributes.js index d951562f69a..7d78371f226 100644 --- a/src/traces/cone/attributes.js +++ b/src/traces/cone/attributes.js @@ -96,13 +96,14 @@ var attrs = { sizemode: { valType: 'enumerated', - values: ['scaled', 'absolute'], + values: ['scaled', 'absolute', 'raw'], editType: 'calc', dflt: 'scaled', description: [ 'Determines whether `sizeref` is set as a *scaled* (i.e unitless) scalar', '(normalized by the max u/v/w norm in the vector field) or as', - '*absolute* value (in the same units as the vector field).' + '*absolute* value (in the same units as the vector field).', + 'To display sizes in actual vector length use *raw*.' ].join(' ') }, sizeref: { @@ -115,7 +116,8 @@ var attrs = { 'This factor (computed internally) corresponds to the minimum "time" to travel across', 'two successive x/y/z positions at the average velocity of those two successive positions.', 'All cones in a given trace use the same factor.', - 'With `sizemode` set to *scaled*, `sizeref` is unitless, its default value is *0.5*', + 'With `sizemode` set to *raw*, its default value is *1*.', + 'With `sizemode` set to *scaled*, `sizeref` is unitless, its default value is *0.5*.', 'With `sizemode` set to *absolute*, `sizeref` has the same units as the u/v/w vector field,', 'its the default value is half the sample\'s maximum vector norm.' ].join(' ') diff --git a/src/traces/cone/convert.js b/src/traces/cone/convert.js index 75a35c32477..0662e5535af 100644 --- a/src/traces/cone/convert.js +++ b/src/traces/cone/convert.js @@ -79,15 +79,20 @@ function convert(scene, trace) { coneOpts.vertexIntensityBounds = [cOpts.min / trace._normMax, cOpts.max / trace._normMax]; coneOpts.coneOffset = anchor2coneOffset[trace.anchor]; - if(trace.sizemode === 'scaled') { + + var sizemode = trace.sizemode; + if(sizemode === 'scaled') { // unitless sizeref coneOpts.coneSize = trace.sizeref || 0.5; - } else { + } else if(sizemode === 'absolute') { // sizeref here has unit of velocity coneOpts.coneSize = trace.sizeref && trace._normMax ? trace.sizeref / trace._normMax : 0.5; + } else if(sizemode === 'raw') { + coneOpts.coneSize = trace.sizeref; } + coneOpts.coneSizemode = sizemode; var meshData = conePlot(coneOpts); diff --git a/src/traces/cone/defaults.js b/src/traces/cone/defaults.js index 0516c8635d1..6aa4249d6ec 100644 --- a/src/traces/cone/defaults.js +++ b/src/traces/cone/defaults.js @@ -26,8 +26,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout return; } - coerce('sizeref'); - coerce('sizemode'); + var sizemode = coerce('sizemode'); + coerce('sizeref', sizemode === 'raw' ? 1 : 0.5); coerce('anchor'); diff --git a/stackgl_modules/index.js b/stackgl_modules/index.js index c34c92d42bf..286015a1c42 100644 --- a/stackgl_modules/index.js +++ b/stackgl_modules/index.js @@ -13782,6 +13782,7 @@ module.exports = function(vectorfield, bounds) { var positionVectors = []; var vectorScale = Infinity; var skipIt = false; + var rawSizemodemode = vectorfield.coneSizemode === 'raw'; for (var i = 0; i < positions.length; i++) { var p = positions[i]; minX = Math.min(p[0], minX); @@ -13795,7 +13796,7 @@ module.exports = function(vectorfield, bounds) { if (vec3.length(u) > maxNorm) { maxNorm = vec3.length(u); } - if (i) { + if (i && !rawSizemodemode) { // Find vector scale [w/ units of time] using "successive" positions // (not "adjacent" with would be O(n^2)), // @@ -13834,7 +13835,9 @@ module.exports = function(vectorfield, bounds) { } geo.vectorScale = vectorScale; - var coneScale = vectorfield.coneSize || 0.5; + var coneScale = vectorfield.coneSize || ( + rawSizemodemode ? 1 :0.5 + ); if (vectorfield.absoluteConeSize) { coneScale = vectorfield.absoluteConeSize * invertedMaxNorm; diff --git a/stackgl_modules/package-lock.json b/stackgl_modules/package-lock.json index 047dbdbe291..5e7b123d774 100644 --- a/stackgl_modules/package-lock.json +++ b/stackgl_modules/package-lock.json @@ -10,7 +10,7 @@ "box-intersect": "plotly/box-intersect#v1.1.0", "convex-hull": "^1.0.3", "delaunay-triangulate": "^1.1.6", - "gl-cone3d": "^1.5.2", + "gl-cone3d": "^1.6.0", "gl-error3d": "^1.0.16", "gl-heatmap2d": "^1.1.1", "gl-line3d": "1.2.1", @@ -3738,9 +3738,9 @@ } }, "node_modules/gl-cone3d": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/gl-cone3d/-/gl-cone3d-1.5.2.tgz", - "integrity": "sha512-1JNeHH4sUtUmDA4ZK7Om8/kShwb8IZVAsnxaaB7IPRJsNGciLj1sTpODrJGeMl41RNkex5kXD2SQFrzyEAR2Rw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/gl-cone3d/-/gl-cone3d-1.6.0.tgz", + "integrity": "sha512-RcL9Jm/HQm/O+aaraUh6lpHy6dChYTRjd4l+V2cY8Ct0SZPUVL1ZZMwEI9YQS/EAnBSZG0uUjWxGxvKBJwuVxQ==", "dependencies": { "colormap": "^2.3.1", "gl-buffer": "^2.1.2", @@ -9696,9 +9696,9 @@ } }, "gl-cone3d": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/gl-cone3d/-/gl-cone3d-1.5.2.tgz", - "integrity": "sha512-1JNeHH4sUtUmDA4ZK7Om8/kShwb8IZVAsnxaaB7IPRJsNGciLj1sTpODrJGeMl41RNkex5kXD2SQFrzyEAR2Rw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/gl-cone3d/-/gl-cone3d-1.6.0.tgz", + "integrity": "sha512-RcL9Jm/HQm/O+aaraUh6lpHy6dChYTRjd4l+V2cY8Ct0SZPUVL1ZZMwEI9YQS/EAnBSZG0uUjWxGxvKBJwuVxQ==", "requires": { "colormap": "^2.3.1", "gl-buffer": "^2.1.2", diff --git a/stackgl_modules/package.json b/stackgl_modules/package.json index ffbcc1c2e3c..84d5f87fc7a 100644 --- a/stackgl_modules/package.json +++ b/stackgl_modules/package.json @@ -13,7 +13,7 @@ "box-intersect": "plotly/box-intersect#v1.1.0", "convex-hull": "^1.0.3", "delaunay-triangulate": "^1.1.6", - "gl-cone3d": "^1.5.2", + "gl-cone3d": "^1.6.0", "gl-error3d": "^1.0.16", "gl-heatmap2d": "^1.1.1", "gl-line3d": "1.2.1", diff --git a/test/image/baselines/zz-gl3d_cone-sizemode_vector.png b/test/image/baselines/zz-gl3d_cone-sizemode_vector.png new file mode 100644 index 00000000000..8db680c242b Binary files /dev/null and b/test/image/baselines/zz-gl3d_cone-sizemode_vector.png differ diff --git a/test/image/baselines/zz-gl3d_cone-sizemode_vector2.png b/test/image/baselines/zz-gl3d_cone-sizemode_vector2.png new file mode 100644 index 00000000000..54ffc6fbc75 Binary files /dev/null and b/test/image/baselines/zz-gl3d_cone-sizemode_vector2.png differ diff --git a/test/image/baselines/zz-gl3d_cone-sizemode_vector3.png b/test/image/baselines/zz-gl3d_cone-sizemode_vector3.png new file mode 100644 index 00000000000..73fcf488409 Binary files /dev/null and b/test/image/baselines/zz-gl3d_cone-sizemode_vector3.png differ diff --git a/test/image/mocks/zz-gl3d_cone-sizemode_vector.json b/test/image/mocks/zz-gl3d_cone-sizemode_vector.json new file mode 100644 index 00000000000..9638fcb90d8 --- /dev/null +++ b/test/image/mocks/zz-gl3d_cone-sizemode_vector.json @@ -0,0 +1,65 @@ +{ + "data": [ + { + "type": "cone", + "x": [1, 2, 3], + "y": [1, 2, 3], + "z": [1, 2, 3], + "u": [1, 0, 0], + "v": [0, 3, 0], + "w": [0, 0, 2], + "sizemode": "raw", + "anchor": "tip", + "colorbar": { + "title": { "text": "raw
sizeref: 1" }, + "x": 0, + "xanchor": "right" + } + }, + { + "type": "cone", + "x": [1, 2, 3], + "y": [1, 2, 3], + "z": [1, 2, 3], + "u": [0.5, 0, 0], + "v": [0, 1.5, 0], + "w": [0, 0, 1], + "sizemode": "raw", + "anchor": "tip", + "colorbar": { + "title": { "text": "rawr
sizeref: 1" } + }, + "scene": "scene2" + } + ], + "layout": { + "scene": { + "domain": {"x": [0, 0.5]}, + "aspectratio": { + "x": 1.5, + "y": 1.5, + "z": 1.5 + }, + "camera": { + "projection": {"type": "orthographic"}, + "up": {"x": 0, "y": 1, "z": 0}, + "eye": {"x": 0, "y": 0, "z": 3} + } + }, + "scene2": { + "domain": {"x": [0.5, 1]}, + "aspectratio": { + "x": 1.5, + "y": 1.5, + "z": 1.5 + }, + "camera": { + "projection": {"type": "orthographic"}, + "up": {"x": 0, "y": 1, "z": 0}, + "eye": {"x": 0, "y": 0, "z": 3} + } + }, + "width": 1000, + "height": 500 + } +} diff --git a/test/image/mocks/zz-gl3d_cone-sizemode_vector2.json b/test/image/mocks/zz-gl3d_cone-sizemode_vector2.json new file mode 100644 index 00000000000..41f68d3fdc0 --- /dev/null +++ b/test/image/mocks/zz-gl3d_cone-sizemode_vector2.json @@ -0,0 +1,67 @@ +{ + "data": [ + { + "type": "cone", + "x": [1, 2, 3], + "y": [1, 2, 3], + "z": [1, 2, 3], + "u": [1, 0, 0], + "v": [0, 3, 0], + "w": [0, 0, 2], + "sizemode": "raw", + "anchor": "tip", + "sizeref": 0.5, + "colorbar": { + "title": { "text": "raw
sizeref: 2" }, + "x": 0, + "xanchor": "right" + } + }, + { + "type": "cone", + "x": [1, 2, 3], + "y": [1, 2, 3], + "z": [1, 2, 3], + "u": [0.5, 0, 0], + "v": [0, 1.5, 0], + "w": [0, 0, 1], + "sizemode": "raw", + "anchor": "tip", + "sizeref": 2, + "colorbar": { + "title": { "text": "raw
sizeref: 2" } + }, + "scene": "scene2" + } + ], + "layout": { + "scene": { + "domain": {"x": [0, 0.5]}, + "aspectratio": { + "x": 1.5, + "y": 1.5, + "z": 1.5 + }, + "camera": { + "projection": {"type": "orthographic"}, + "up": {"x": 0, "y": 1, "z": 0}, + "eye": {"x": 0, "y": 0, "z": 3} + } + }, + "scene2": { + "domain": {"x": [0.5, 1]}, + "aspectratio": { + "x": 1.5, + "y": 1.5, + "z": 1.5 + }, + "camera": { + "projection": {"type": "orthographic"}, + "up": {"x": 0, "y": 1, "z": 0}, + "eye": {"x": 0, "y": 0, "z": 3} + } + }, + "width": 1000, + "height": 500 + } +} diff --git a/test/image/mocks/zz-gl3d_cone-sizemode_vector3.json b/test/image/mocks/zz-gl3d_cone-sizemode_vector3.json new file mode 100644 index 00000000000..a9202ef1dc7 --- /dev/null +++ b/test/image/mocks/zz-gl3d_cone-sizemode_vector3.json @@ -0,0 +1,225 @@ +{ + "data": [ + { + "type": "cone", + "sizemode": "raw", + "anchor": "tip", + "u": [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0.259, -0.125, 0.224, -0.092, 0.129, -0.033, 0, 0.033, -0.129, 0.092, + -0.224, 0.125, -0.259, 0.125, -0.224, 0.092, -0.129, 0.033, 0, -0.033, + 0.129, -0.092, 0.224, -0.125, 0.259, 0.5, 0.483, 0.433, 0.354, 0.25, + 0.129, 0, -0.129, -0.25, -0.354, -0.433, -0.483, -0.5, -0.483, -0.433, + -0.354, -0.25, -0.129, 0, 0.129, 0.25, 0.354, 0.433, 0.483, 0.5, 0.707, + -0.342, 0.612, -0.25, 0.354, -0.092, 0, 0.092, -0.354, 0.25, -0.612, + 0.342, -0.707, 0.342, -0.612, 0.25, -0.354, 0.092, 0, -0.092, 0.354, + -0.25, 0.612, -0.342, 0.707, 0.866, 0.837, 0.75, 0.612, 0.433, 0.224, 0, + -0.224, -0.433, -0.612, -0.75, -0.837, -0.866, -0.837, -0.75, -0.612, + -0.433, -0.224, 0, 0.224, 0.433, 0.612, 0.75, 0.837, 0.866, 0.966, + -0.467, 0.837, -0.342, 0.483, -0.125, 0, 0.125, -0.483, 0.342, -0.837, + 0.467, -0.966, 0.467, -0.837, 0.342, -0.483, 0.125, 0, -0.125, 0.483, + -0.342, 0.837, -0.467, 0.966, 1, 0.966, 0.866, 0.707, 0.5, 0.259, 0, + -0.259, -0.5, -0.707, -0.866, -0.966, -1, -0.966, -0.866, -0.707, -0.5, + -0.259, 0, 0.259, 0.5, 0.707, 0.866, 0.966, 1, 0.966, -0.467, 0.837, + -0.342, 0.483, -0.125, 0, 0.125, -0.483, 0.342, -0.837, 0.467, -0.966, + 0.467, -0.837, 0.342, -0.483, 0.125, 0, -0.125, 0.483, -0.342, 0.837, + -0.467, 0.966, 0.866, 0.837, 0.75, 0.612, 0.433, 0.224, 0, -0.224, + -0.433, -0.612, -0.75, -0.837, -0.866, -0.837, -0.75, -0.612, -0.433, + -0.224, 0, 0.224, 0.433, 0.612, 0.75, 0.837, 0.866, 0.707, -0.342, + 0.612, -0.25, 0.354, -0.092, 0, 0.092, -0.354, 0.25, -0.612, 0.342, + -0.707, 0.342, -0.612, 0.25, -0.354, 0.092, 0, -0.092, 0.354, -0.25, + 0.612, -0.342, 0.707, 0.5, 0.483, 0.433, 0.354, 0.25, 0.129, 0, -0.129, + -0.25, -0.354, -0.433, -0.483, -0.5, -0.483, -0.433, -0.354, -0.25, + -0.129, 0, 0.129, 0.25, 0.354, 0.433, 0.483, 0.5, 0.259, -0.125, 0.224, + -0.092, 0.129, -0.033, 0, 0.033, -0.129, 0.092, -0.224, 0.125, -0.259, + 0.125, -0.224, 0.092, -0.129, 0.033, 0, -0.033, 0.129, -0.092, 0.224, + -0.125, 0.259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 + ], + "v": [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -0.033, 0.129, -0.092, 0.224, -0.125, 0.259, -0.125, 0.224, + -0.092, 0.129, -0.033, 0, 0.033, -0.129, 0.092, -0.224, 0.125, -0.259, + 0.125, -0.224, 0.092, -0.129, 0.033, 0, 0, 0.129, 0.25, 0.354, 0.433, + 0.483, 0.5, 0.483, 0.433, 0.354, 0.25, 0.129, 0, -0.129, -0.25, -0.354, + -0.433, -0.483, -0.5, -0.483, -0.433, -0.354, -0.25, -0.129, 0, 0, + -0.092, 0.354, -0.25, 0.612, -0.342, 0.707, -0.342, 0.612, -0.25, 0.354, + -0.092, 0, 0.092, -0.354, 0.25, -0.612, 0.342, -0.707, 0.342, -0.612, + 0.25, -0.354, 0.092, 0, 0, 0.224, 0.433, 0.612, 0.75, 0.837, 0.866, + 0.837, 0.75, 0.612, 0.433, 0.224, 0, -0.224, -0.433, -0.612, -0.75, + -0.837, -0.866, -0.837, -0.75, -0.612, -0.433, -0.224, 0, 0, -0.125, + 0.483, -0.342, 0.837, -0.467, 0.966, -0.467, 0.837, -0.342, 0.483, + -0.125, 0, 0.125, -0.483, 0.342, -0.837, 0.467, -0.966, 0.467, -0.837, + 0.342, -0.483, 0.125, 0, 0, 0.259, 0.5, 0.707, 0.866, 0.966, 1, 0.966, + 0.866, 0.707, 0.5, 0.259, 0, -0.259, -0.5, -0.707, -0.866, -0.966, -1, + -0.966, -0.866, -0.707, -0.5, -0.259, 0, 0, -0.125, 0.483, -0.342, + 0.837, -0.467, 0.966, -0.467, 0.837, -0.342, 0.483, -0.125, 0, 0.125, + -0.483, 0.342, -0.837, 0.467, -0.966, 0.467, -0.837, 0.342, -0.483, + 0.125, 0, 0, 0.224, 0.433, 0.612, 0.75, 0.837, 0.866, 0.837, 0.75, + 0.612, 0.433, 0.224, 0, -0.224, -0.433, -0.612, -0.75, -0.837, -0.866, + -0.837, -0.75, -0.612, -0.433, -0.224, 0, 0, -0.092, 0.354, -0.25, + 0.612, -0.342, 0.707, -0.342, 0.612, -0.25, 0.354, -0.092, 0, 0.092, + -0.354, 0.25, -0.612, 0.342, -0.707, 0.342, -0.612, 0.25, -0.354, 0.092, + 0, 0, 0.129, 0.25, 0.354, 0.433, 0.483, 0.5, 0.483, 0.433, 0.354, 0.25, + 0.129, 0, -0.129, -0.25, -0.354, -0.433, -0.483, -0.5, -0.483, -0.433, + -0.354, -0.25, -0.129, 0, 0, -0.033, 0.129, -0.092, 0.224, -0.125, + 0.259, -0.125, 0.224, -0.092, 0.129, -0.033, 0, 0.033, -0.129, 0.092, + -0.224, 0.125, -0.259, 0.125, -0.224, 0.092, -0.129, 0.033, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + ], + "w": [ + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -0.966, 0.483, -0.966, 0.483, -0.966, 0.483, + -0.966, 0.483, -0.966, 0.483, -0.966, 0.483, -0.966, 0.483, -0.966, + 0.483, -0.966, 0.483, -0.966, 0.483, -0.966, 0.483, -0.966, 0.483, + -0.966, -0.866, -0.866, -0.866, -0.866, -0.866, -0.866, -0.866, -0.866, + -0.866, -0.866, -0.866, -0.866, -0.866, -0.866, -0.866, -0.866, -0.866, + -0.866, -0.866, -0.866, -0.866, -0.866, -0.866, -0.866, -0.866, -0.707, + 0.354, -0.707, 0.354, -0.707, 0.354, -0.707, 0.354, -0.707, 0.354, + -0.707, 0.354, -0.707, 0.354, -0.707, 0.354, -0.707, 0.354, -0.707, + 0.354, -0.707, 0.354, -0.707, 0.354, -0.707, -0.5, -0.5, -0.5, -0.5, + -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, + -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.259, 0.129, + -0.259, 0.129, -0.259, 0.129, -0.259, 0.129, -0.259, 0.129, -0.259, + 0.129, -0.259, 0.129, -0.259, 0.129, -0.259, 0.129, -0.259, 0.129, + -0.259, 0.129, -0.259, 0.129, -0.259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.259, -0.129, 0.259, -0.129, + 0.259, -0.129, 0.259, -0.129, 0.259, -0.129, 0.259, -0.129, 0.259, + -0.129, 0.259, -0.129, 0.259, -0.129, 0.259, -0.129, 0.259, -0.129, + 0.259, -0.129, 0.259, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, + 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, + 0.5, 0.707, -0.354, 0.707, -0.354, 0.707, -0.354, 0.707, -0.354, 0.707, + -0.354, 0.707, -0.354, 0.707, -0.354, 0.707, -0.354, 0.707, -0.354, + 0.707, -0.354, 0.707, -0.354, 0.707, -0.354, 0.707, 0.866, 0.866, 0.866, + 0.866, 0.866, 0.866, 0.866, 0.866, 0.866, 0.866, 0.866, 0.866, 0.866, + 0.866, 0.866, 0.866, 0.866, 0.866, 0.866, 0.866, 0.866, 0.866, 0.866, + 0.866, 0.866, 0.966, -0.483, 0.966, -0.483, 0.966, -0.483, 0.966, + -0.483, 0.966, -0.483, 0.966, -0.483, 0.966, -0.483, 0.966, -0.483, + 0.966, -0.483, 0.966, -0.483, 0.966, -0.483, 0.966, -0.483, 0.966, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + ], + "x": [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2.588, 2.5, 2.241, 1.83, 1.294, 0.67, 0, -0.67, -1.294, -1.83, + -2.241, -2.5, -2.588, -2.5, -2.241, -1.83, -1.294, -0.67, 0, 0.67, + 1.294, 1.83, 2.241, 2.5, 2.588, 5, 4.83, 4.33, 3.536, 2.5, 1.294, 0, + -1.294, -2.5, -3.536, -4.33, -4.83, -5, -4.83, -4.33, -3.536, -2.5, + -1.294, 0, 1.294, 2.5, 3.536, 4.33, 4.83, 5, 7.071, 6.83, 6.124, 5, + 3.536, 1.83, 0, -1.83, -3.536, -5, -6.124, -6.83, -7.071, -6.83, -6.124, + -5, -3.536, -1.83, 0, 1.83, 3.536, 5, 6.124, 6.83, 7.071, 8.66, 8.365, + 7.5, 6.124, 4.33, 2.241, 0, -2.241, -4.33, -6.124, -7.5, -8.365, -8.66, + -8.365, -7.5, -6.124, -4.33, -2.241, 0, 2.241, 4.33, 6.124, 7.5, 8.365, + 8.66, 9.659, 9.33, 8.365, 6.83, 4.83, 2.5, 0, -2.5, -4.83, -6.83, + -8.365, -9.33, -9.659, -9.33, -8.365, -6.83, -4.83, -2.5, 0, 2.5, 4.83, + 6.83, 8.365, 9.33, 9.659, 10, 9.659, 8.66, 7.071, 5, 2.588, 0, -2.588, + -5, -7.071, -8.66, -9.659, -10, -9.659, -8.66, -7.071, -5, -2.588, 0, + 2.588, 5, 7.071, 8.66, 9.659, 10, 9.659, 9.33, 8.365, 6.83, 4.83, 2.5, + 0, -2.5, -4.83, -6.83, -8.365, -9.33, -9.659, -9.33, -8.365, -6.83, + -4.83, -2.5, 0, 2.5, 4.83, 6.83, 8.365, 9.33, 9.659, 8.66, 8.365, 7.5, + 6.124, 4.33, 2.241, 0, -2.241, -4.33, -6.124, -7.5, -8.365, -8.66, + -8.365, -7.5, -6.124, -4.33, -2.241, 0, 2.241, 4.33, 6.124, 7.5, 8.365, + 8.66, 7.071, 6.83, 6.124, 5, 3.536, 1.83, 0, -1.83, -3.536, -5, -6.124, + -6.83, -7.071, -6.83, -6.124, -5, -3.536, -1.83, 0, 1.83, 3.536, 5, + 6.124, 6.83, 7.071, 5, 4.83, 4.33, 3.536, 2.5, 1.294, 0, -1.294, -2.5, + -3.536, -4.33, -4.83, -5, -4.83, -4.33, -3.536, -2.5, -1.294, 0, 1.294, + 2.5, 3.536, 4.33, 4.83, 5, 2.588, 2.5, 2.241, 1.83, 1.294, 0.67, 0, + -0.67, -1.294, -1.83, -2.241, -2.5, -2.588, -2.5, -2.241, -1.83, -1.294, + -0.67, 0, 0.67, 1.294, 1.83, 2.241, 2.5, 2.588, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + ], + "y": [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0.67, 1.294, 1.83, 2.241, 2.5, 2.588, 2.5, 2.241, 1.83, 1.294, + 0.67, 0, -0.67, -1.294, -1.83, -2.241, -2.5, -2.588, -2.5, -2.241, + -1.83, -1.294, -0.67, 0, 0, 1.294, 2.5, 3.536, 4.33, 4.83, 5, 4.83, + 4.33, 3.536, 2.5, 1.294, 0, -1.294, -2.5, -3.536, -4.33, -4.83, -5, + -4.83, -4.33, -3.536, -2.5, -1.294, 0, 0, 1.83, 3.536, 5, 6.124, 6.83, + 7.071, 6.83, 6.124, 5, 3.536, 1.83, 0, -1.83, -3.536, -5, -6.124, -6.83, + -7.071, -6.83, -6.124, -5, -3.536, -1.83, 0, 0, 2.241, 4.33, 6.124, 7.5, + 8.365, 8.66, 8.365, 7.5, 6.124, 4.33, 2.241, 0, -2.241, -4.33, -6.124, + -7.5, -8.365, -8.66, -8.365, -7.5, -6.124, -4.33, -2.241, 0, 0, 2.5, + 4.83, 6.83, 8.365, 9.33, 9.659, 9.33, 8.365, 6.83, 4.83, 2.5, 0, -2.5, + -4.83, -6.83, -8.365, -9.33, -9.659, -9.33, -8.365, -6.83, -4.83, -2.5, + 0, 0, 2.588, 5, 7.071, 8.66, 9.659, 10, 9.659, 8.66, 7.071, 5, 2.588, 0, + -2.588, -5, -7.071, -8.66, -9.659, -10, -9.659, -8.66, -7.071, -5, + -2.588, 0, 0, 2.5, 4.83, 6.83, 8.365, 9.33, 9.659, 9.33, 8.365, 6.83, + 4.83, 2.5, 0, -2.5, -4.83, -6.83, -8.365, -9.33, -9.659, -9.33, -8.365, + -6.83, -4.83, -2.5, 0, 0, 2.241, 4.33, 6.124, 7.5, 8.365, 8.66, 8.365, + 7.5, 6.124, 4.33, 2.241, 0, -2.241, -4.33, -6.124, -7.5, -8.365, -8.66, + -8.365, -7.5, -6.124, -4.33, -2.241, 0, 0, 1.83, 3.536, 5, 6.124, 6.83, + 7.071, 6.83, 6.124, 5, 3.536, 1.83, 0, -1.83, -3.536, -5, -6.124, -6.83, + -7.071, -6.83, -6.124, -5, -3.536, -1.83, 0, 0, 1.294, 2.5, 3.536, 4.33, + 4.83, 5, 4.83, 4.33, 3.536, 2.5, 1.294, 0, -1.294, -2.5, -3.536, -4.33, + -4.83, -5, -4.83, -4.33, -3.536, -2.5, -1.294, 0, 0, 0.67, 1.294, 1.83, + 2.241, 2.5, 2.588, 2.5, 2.241, 1.83, 1.294, 0.67, 0, -0.67, -1.294, + -1.83, -2.241, -2.5, -2.588, -2.5, -2.241, -1.83, -1.294, -0.67, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + ], + "z": [ + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -9.659, -9.659, + -9.659, -9.659, -9.659, -9.659, -9.659, -9.659, -9.659, -9.659, -9.659, + -9.659, -9.659, -9.659, -9.659, -9.659, -9.659, -9.659, -9.659, -9.659, + -9.659, -9.659, -9.659, -9.659, -9.659, -8.66, -8.66, -8.66, -8.66, + -8.66, -8.66, -8.66, -8.66, -8.66, -8.66, -8.66, -8.66, -8.66, -8.66, + -8.66, -8.66, -8.66, -8.66, -8.66, -8.66, -8.66, -8.66, -8.66, -8.66, + -8.66, -7.071, -7.071, -7.071, -7.071, -7.071, -7.071, -7.071, -7.071, + -7.071, -7.071, -7.071, -7.071, -7.071, -7.071, -7.071, -7.071, -7.071, + -7.071, -7.071, -7.071, -7.071, -7.071, -7.071, -7.071, -7.071, -5, -5, + -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, + -5, -5, -5, -5, -5, -2.588, -2.588, -2.588, -2.588, -2.588, -2.588, + -2.588, -2.588, -2.588, -2.588, -2.588, -2.588, -2.588, -2.588, -2.588, + -2.588, -2.588, -2.588, -2.588, -2.588, -2.588, -2.588, -2.588, -2.588, + -2.588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2.588, 2.588, 2.588, 2.588, 2.588, 2.588, 2.588, 2.588, + 2.588, 2.588, 2.588, 2.588, 2.588, 2.588, 2.588, 2.588, 2.588, 2.588, + 2.588, 2.588, 2.588, 2.588, 2.588, 2.588, 2.588, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7.071, 7.071, 7.071, + 7.071, 7.071, 7.071, 7.071, 7.071, 7.071, 7.071, 7.071, 7.071, 7.071, + 7.071, 7.071, 7.071, 7.071, 7.071, 7.071, 7.071, 7.071, 7.071, 7.071, + 7.071, 7.071, 8.66, 8.66, 8.66, 8.66, 8.66, 8.66, 8.66, 8.66, 8.66, + 8.66, 8.66, 8.66, 8.66, 8.66, 8.66, 8.66, 8.66, 8.66, 8.66, 8.66, 8.66, + 8.66, 8.66, 8.66, 8.66, 9.659, 9.659, 9.659, 9.659, 9.659, 9.659, 9.659, + 9.659, 9.659, 9.659, 9.659, 9.659, 9.659, 9.659, 9.659, 9.659, 9.659, + 9.659, 9.659, 9.659, 9.659, 9.659, 9.659, 9.659, 9.659, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10 + ] + } + ], + "layout": { + "width": 800, + "height": 800, + "scene": { + "xaxis": { + "dtick": 1 + }, + "yaxis": { + "dtick": 1 + }, + "zaxis": { + "dtick": 1 + }, + "aspectratio": { + "x": 1.8, + "y": 1.8, + "z": 1.8 + }, + "camera": { + "projection": { + "type": "orthographic" + }, + "up": { + "x": 0, + "y": 1, + "z": 0 + }, + "eye": { + "x": 0, + "y": 0, + "z": 1 + } + } + } + } +} diff --git a/test/plot-schema.json b/test/plot-schema.json index 9b3a8816729..8cd2c5eb0c5 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -22456,17 +22456,18 @@ "valType": "boolean" }, "sizemode": { - "description": "Determines whether `sizeref` is set as a *scaled* (i.e unitless) scalar (normalized by the max u/v/w norm in the vector field) or as *absolute* value (in the same units as the vector field).", + "description": "Determines whether `sizeref` is set as a *scaled* (i.e unitless) scalar (normalized by the max u/v/w norm in the vector field) or as *absolute* value (in the same units as the vector field). To display sizes in actual vector length use *raw*.", "dflt": "scaled", "editType": "calc", "valType": "enumerated", "values": [ "scaled", - "absolute" + "absolute", + "raw" ] }, "sizeref": { - "description": "Adjusts the cone size scaling. The size of the cones is determined by their u/v/w norm multiplied a factor and `sizeref`. This factor (computed internally) corresponds to the minimum \"time\" to travel across two successive x/y/z positions at the average velocity of those two successive positions. All cones in a given trace use the same factor. With `sizemode` set to *scaled*, `sizeref` is unitless, its default value is *0.5* With `sizemode` set to *absolute*, `sizeref` has the same units as the u/v/w vector field, its the default value is half the sample's maximum vector norm.", + "description": "Adjusts the cone size scaling. The size of the cones is determined by their u/v/w norm multiplied a factor and `sizeref`. This factor (computed internally) corresponds to the minimum \"time\" to travel across two successive x/y/z positions at the average velocity of those two successive positions. All cones in a given trace use the same factor. With `sizemode` set to *raw*, its default value is *1*. With `sizemode` set to *scaled*, `sizeref` is unitless, its default value is *0.5*. With `sizemode` set to *absolute*, `sizeref` has the same units as the u/v/w vector field, its the default value is half the sample's maximum vector norm.", "editType": "calc", "min": 0, "valType": "number"