plotly.js
Version:
The open source javascript graphing library that powers plotly
56 lines (44 loc) • 1.6 kB
JavaScript
var Lib = require('../../lib');
var Axes = require('../../plots/cartesian/axes');
module.exports = function convert(scene) {
var fullSceneLayout = scene.fullSceneLayout;
var anns = fullSceneLayout.annotations;
for(var i = 0; i < anns.length; i++) {
mockAnnAxes(anns[i], scene);
}
scene.fullLayout._infolayer
.selectAll('.annotation-' + scene.id)
.remove();
};
function mockAnnAxes(ann, scene) {
var fullSceneLayout = scene.fullSceneLayout;
var domain = fullSceneLayout.domain;
var size = scene.fullLayout._size;
var base = {
// this gets fill in on render
pdata: null,
// to get setConvert to not execute cleanly
type: 'linear',
// don't try to update them on `editable: true`
autorange: false,
// set infinite range so that annotation draw routine
// does not try to remove 'outside-range' annotations,
// this case is handled in the render loop
range: [-Infinity, Infinity]
};
ann._xa = {};
Lib.extendFlat(ann._xa, base);
Axes.setConvert(ann._xa);
ann._xa._offset = size.l + domain.x[0] * size.w;
ann._xa.l2p = function() {
return 0.5 * (1 + ann._pdata[0] / ann._pdata[3]) * size.w * (domain.x[1] - domain.x[0]);
};
ann._ya = {};
Lib.extendFlat(ann._ya, base);
Axes.setConvert(ann._ya);
ann._ya._offset = size.t + (1 - domain.y[1]) * size.h;
ann._ya.l2p = function() {
return 0.5 * (1 - ann._pdata[1] / ann._pdata[3]) * size.h * (domain.y[1] - domain.y[0]);
};
}
;