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

Skip to content

Commit 99ad3cb

Browse files
committed
add doCamera subroutine
- which calls scene.setCamera in relayout/update
1 parent f276f84 commit 99ad3cb

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/plot_api/plot_api.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1724,6 +1724,7 @@ Plotly.relayout = function relayout(gd, astr, val) {
17241724
if(flags.dolayoutstyle) seq.push(subroutines.layoutStyles);
17251725
if(flags.doticks) seq.push(subroutines.doTicksRelayout);
17261726
if(flags.domodebar) seq.push(subroutines.doModeBar);
1727+
if(flags.docamera) seq.push(subroutines.doCamera);
17271728
}
17281729

17291730
Queue.add(gd,
@@ -1771,6 +1772,7 @@ function _relayout(gd, aobj) {
17711772
doplot: false,
17721773
docalc: false,
17731774
domodebar: false,
1775+
docamera: false,
17741776
layoutReplot: false
17751777
};
17761778

@@ -1967,7 +1969,10 @@ function _relayout(gd, aobj) {
19671969
var pp1 = String(p.parts[1] || '');
19681970
// check whether we can short-circuit a full redraw
19691971
// 3d or geo at this point just needs to redraw.
1970-
if(p.parts[0].indexOf('scene') === 0) flags.doplot = true;
1972+
if(p.parts[0].indexOf('scene') === 0) {
1973+
if(p.parts[1] === 'camera') flags.docamera = true;
1974+
else flags.doplot = true;
1975+
}
19711976
else if(p.parts[0].indexOf('geo') === 0) flags.doplot = true;
19721977
else if(p.parts[0].indexOf('ternary') === 0) flags.doplot = true;
19731978
else if(ai === 'paper_bgcolor') flags.doplot = true;
@@ -2119,6 +2124,7 @@ Plotly.update = function update(gd, traceUpdate, layoutUpdate, traces) {
21192124
if(relayoutFlags.dolayoutstyle) seq.push(subroutines.layoutStyles);
21202125
if(relayoutFlags.doticks) seq.push(subroutines.doTicksRelayout);
21212126
if(relayoutFlags.domodebar) seq.push(subroutines.doModeBar);
2127+
if(relayoutFlags.doCamera) seq.push(subroutines.doCamera);
21222128
}
21232129

21242130
Queue.add(gd,

src/plot_api/subroutines.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,3 +314,15 @@ exports.doModeBar = function(gd) {
314314

315315
return Plots.previousPromises(gd);
316316
};
317+
318+
exports.doCamera = function(gd) {
319+
var fullLayout = gd._fullLayout,
320+
sceneIds = Plots.getSubplotIds(fullLayout, 'gl3d');
321+
322+
for(var i = 0; i < sceneIds.length; i++) {
323+
var sceneLayout = fullLayout[sceneIds[i]],
324+
scene = sceneLayout._scene;
325+
326+
scene.setCamera(sceneLayout.camera);
327+
}
328+
};

0 commit comments

Comments
 (0)