diff --git a/src/plots/gl3d/layout/defaults.js b/src/plots/gl3d/layout/defaults.js index 3d208a09d04..c38a3de222d 100644 --- a/src/plots/gl3d/layout/defaults.js +++ b/src/plots/gl3d/layout/defaults.js @@ -16,7 +16,9 @@ var Registry = require('../../../registry'); var handleSubplotDefaults = require('../../subplot_defaults'); var supplyGl3dAxisLayoutDefaults = require('./axis_defaults'); var layoutAttributes = require('./layout_attributes'); +var getSubplotData = require('../../get_data').getSubplotData; +var GL3D = 'gl3d'; module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) { var hasNon3D = layoutOut._basePlotModules.length > 1; @@ -31,7 +33,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) { } handleSubplotDefaults(layoutIn, layoutOut, fullData, { - type: 'gl3d', + type: GL3D, attributes: layoutAttributes, handleDefaults: handleGl3dDefaults, fullLayout: layoutOut, @@ -97,10 +99,12 @@ function handleGl3dDefaults(sceneLayoutIn, sceneLayoutOut, coerce, opts) { sceneLayoutIn.aspectmode = sceneLayoutOut.aspectmode; } + var fullGl3dData = getSubplotData(opts.fullData, GL3D, opts.id); + supplyGl3dAxisLayoutDefaults(sceneLayoutIn, sceneLayoutOut, { font: opts.font, scene: opts.id, - data: opts.fullData, + data: fullGl3dData, bgColor: bgColorCombined, calendar: opts.calendar, fullLayout: opts.fullLayout diff --git a/test/image/baselines/gl3d_surface_after_heatmap.png b/test/image/baselines/gl3d_surface_after_heatmap.png new file mode 100644 index 00000000000..e2e84ff714a Binary files /dev/null and b/test/image/baselines/gl3d_surface_after_heatmap.png differ diff --git a/test/image/mocks/gl3d_surface_after_heatmap.json b/test/image/mocks/gl3d_surface_after_heatmap.json new file mode 100644 index 00000000000..bd34b7f8c70 --- /dev/null +++ b/test/image/mocks/gl3d_surface_after_heatmap.json @@ -0,0 +1,29 @@ +{ + "data": [ + { + "type": "heatmap", + "x": [0, 1, 2], + "y": [0, 1, 2], + "z": [ + [0, 1, 0], + [1, 0, 1], + [0, 1, 0] + ] + }, + { + "type": "surface", + "x": [0, 1, 2], + "y": [0, 1, 2], + "z": [ + [0, 1, 0], + [1, 0, 1], + [0, 1, 0] + ] + } + ], + "layout": { + "title": "Surface 3d plot on top of 2d heatmap!", + "width": 600, + "height": 400 + } +}