mirror of
https://kevinblog.sytes.net/Code/Jibo-Revival-Group/RoboCommander.git
synced 2026-06-16 04:36:01 +00:00
Initial commit
This commit is contained in:
79
node_modules/d3-hierarchy/src/pack/index.js
generated
vendored
Normal file
79
node_modules/d3-hierarchy/src/pack/index.js
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
import {packEnclose} from "./siblings";
|
||||
import {optional} from "../accessors";
|
||||
import constant, {constantZero} from "../constant";
|
||||
|
||||
function defaultRadius(d) {
|
||||
return Math.sqrt(d.value);
|
||||
}
|
||||
|
||||
export default function() {
|
||||
var radius = null,
|
||||
dx = 1,
|
||||
dy = 1,
|
||||
padding = constantZero;
|
||||
|
||||
function pack(root) {
|
||||
root.x = dx / 2, root.y = dy / 2;
|
||||
if (radius) {
|
||||
root.eachBefore(radiusLeaf(radius))
|
||||
.eachAfter(packChildren(padding, 0.5))
|
||||
.eachBefore(translateChild(1));
|
||||
} else {
|
||||
root.eachBefore(radiusLeaf(defaultRadius))
|
||||
.eachAfter(packChildren(constantZero, 1))
|
||||
.eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))
|
||||
.eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));
|
||||
}
|
||||
return root;
|
||||
}
|
||||
|
||||
pack.radius = function(x) {
|
||||
return arguments.length ? (radius = optional(x), pack) : radius;
|
||||
};
|
||||
|
||||
pack.size = function(x) {
|
||||
return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];
|
||||
};
|
||||
|
||||
pack.padding = function(x) {
|
||||
return arguments.length ? (padding = typeof x === "function" ? x : constant(+x), pack) : padding;
|
||||
};
|
||||
|
||||
return pack;
|
||||
}
|
||||
|
||||
function radiusLeaf(radius) {
|
||||
return function(node) {
|
||||
if (!node.children) {
|
||||
node.r = Math.max(0, +radius(node) || 0);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function packChildren(padding, k) {
|
||||
return function(node) {
|
||||
if (children = node.children) {
|
||||
var children,
|
||||
i,
|
||||
n = children.length,
|
||||
r = padding(node) * k || 0,
|
||||
e;
|
||||
|
||||
if (r) for (i = 0; i < n; ++i) children[i].r += r;
|
||||
e = packEnclose(children);
|
||||
if (r) for (i = 0; i < n; ++i) children[i].r -= r;
|
||||
node.r = e + r;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function translateChild(k) {
|
||||
return function(node) {
|
||||
var parent = node.parent;
|
||||
node.r *= k;
|
||||
if (parent) {
|
||||
node.x = parent.x + k * node.x;
|
||||
node.y = parent.y + k * node.y;
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user