Skip to content

Commit 98900a2

Browse files
committed
refactor dragbox
1 parent 6c60a32 commit 98900a2

File tree

4 files changed

+230
-188
lines changed

4 files changed

+230
-188
lines changed

Diff for: src/constants/numerical.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,10 @@ module.exports = {
4242
* For fast conversion btwn world calendars and epoch ms, the Julian Day Number
4343
* of the unix epoch. From calendars.instance().newDate(1970, 1, 1).toJD()
4444
*/
45-
EPOCHJD: 2440587.5
45+
EPOCHJD: 2440587.5,
46+
47+
/*
48+
* Are two values nearly equal? Compare to 1PPM
49+
*/
50+
ALMOST_EQUAL: 1 - 1e-6
4651
};

Diff for: src/plots/cartesian/constraints.js

+4-12
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
'use strict';
1111

1212
var id2name = require('./axis_ids').id2name;
13+
var scaleZoom = require('./scale_zoom');
1314

14-
var ALMOST_EQUAL = 1 - 1e-6;
15+
var ALMOST_EQUAL = require('../../constants/numerical').ALMOST_EQUAL;
1516

1617

1718
module.exports = function enforceAxisConstraints(gd) {
1819
var fullLayout = gd._fullLayout;
19-
var layout = gd.layout;
2020
var constraintGroups = fullLayout._axisConstraintGroups;
2121

2222
var i, j, axisID, ax, normScale;
@@ -52,16 +52,8 @@ module.exports = function enforceAxisConstraints(gd) {
5252
for(j = 0; j < axisIDs.length; j++) {
5353
axisID = axisIDs[j];
5454
normScale = normScales[axisID];
55-
if(normScale > minScale) {
56-
ax = axes[axisID];
57-
var rangeLinear = [ax.r2l(ax.range[0]), ax.r2l(ax.range[1])];
58-
var center = (rangeLinear[0] + rangeLinear[1]) / 2;
59-
var newHalfSpan = (center - rangeLinear[0]) * normScale / minScale;
60-
ax.range = layout[id2name(axisID)].range = [
61-
ax.l2r(center - newHalfSpan),
62-
ax.l2r(center + newHalfSpan)
63-
];
64-
}
55+
56+
if(normScale > minScale) scaleZoom(axes[axisID], normScale / minScale);
6557
}
6658
}
6759
};

0 commit comments

Comments
 (0)