Skip to content

Commit 63e8e6b

Browse files
committed
scaling also considers node sizes in Graph.rescale()
1 parent 8279471 commit 63e8e6b

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

src/core/graph.js

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -441,17 +441,17 @@ function Graph() {
441441
yMin = Math.min(node['y'], yMin || node['y']);
442442
});
443443

444+
xMax += self.p.maxNodeSize || sizeMax;
445+
xMin -= self.p.maxNodeSize || sizeMax;
446+
yMax += self.p.maxNodeSize || sizeMax;
447+
yMin -= self.p.maxNodeSize || sizeMax;
448+
444449
var scale = self.p.scalingMode == 'outside' ?
445450
Math.max(w / Math.max(xMax - xMin, 1),
446451
h / Math.max(yMax - yMin, 1)) :
447452
Math.min(w / Math.max(xMax - xMin, 1),
448453
h / Math.max(yMax - yMin, 1));
449454

450-
xMax += self.p.maxNodeSize;
451-
xMin -= self.p.maxNodeSize;
452-
yMax += self.p.maxNodeSize;
453-
yMin -= self.p.maxNodeSize;
454-
455455
// Size homothetic parameters:
456456
var a, b;
457457
if (!self.p.maxNodeSize && !self.p.minNodeSize) {
@@ -481,20 +481,15 @@ function Graph() {
481481
parseNodes && self.nodes.forEach(function(node) {
482482
node['displaySize'] = node['size'] * a + b;
483483

484-
if (!node['fixed']) {
485-
node['displayX'] = (node['x'] - (xMax + xMin) / 2) * scale + w / 2;
486-
node['displayY'] = (node['y'] - (yMax + yMin) / 2) * scale + h / 2;
487-
488-
if(node['displayX'] < self.p.maxNodeSize) {
489-
node['displayX'] += self.p.maxNodeSize;
490-
} else if(node['displayX'] >= (w - self.p.maxNodeSize)) {
491-
node['displayX'] -= self.p.maxNodeSize;
492-
}
493-
if(node['displayY'] < self.p.maxNodeSize) {
494-
node['displayY'] += self.p.maxNodeSize;
495-
} else if(node['displayY'] >= (h - self.p.maxNodeSize)) {
496-
node['displayY'] -= self.p.maxNodeSize;
497-
}
484+
if (
485+
!node['fixed'] ||
486+
node['displayX'] == undefined ||
487+
node['displayY'] == undefined
488+
) {
489+
node['displayX'] = (node['x'] - (xMax + xMin) / 2) * scale +
490+
w / 2;
491+
node['displayY'] = (node['y'] - (yMax + yMin) / 2) * scale +
492+
h / 2;
498493
}
499494
});
500495

0 commit comments

Comments
 (0)