diff options
author | talasila <talasila@research.att.com> | 2017-02-07 11:47:55 -0500 |
---|---|---|
committer | talasila <talasila@research.att.com> | 2017-02-07 12:51:32 -0500 |
commit | 1faf201e8608dfa4d7af3460fd3d1fc7ebec398b (patch) | |
tree | 2208f76271cc6b1a81dbfb9143cd7118b071a909 /ecomp-sdk/sdk-app/src/main/webapp/app/fusion/external/d3/js/hive.js | |
parent | ca23569858b8cc9f60010e193b7041feb2d3227b (diff) |
Initial OpenECOMP Portal SDK commit
Change-Id: I66a3491600a4b9ea241128dc29267eed6a78ed76
Signed-off-by: talasila <talasila@research.att.com>
Diffstat (limited to 'ecomp-sdk/sdk-app/src/main/webapp/app/fusion/external/d3/js/hive.js')
-rw-r--r-- | ecomp-sdk/sdk-app/src/main/webapp/app/fusion/external/d3/js/hive.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/ecomp-sdk/sdk-app/src/main/webapp/app/fusion/external/d3/js/hive.js b/ecomp-sdk/sdk-app/src/main/webapp/app/fusion/external/d3/js/hive.js new file mode 100644 index 00000000..06e53aed --- /dev/null +++ b/ecomp-sdk/sdk-app/src/main/webapp/app/fusion/external/d3/js/hive.js @@ -0,0 +1,80 @@ +d3.hive = {}; + +d3.hive.link = function() { + var source = function(d) { return d.source; }, + target = function(d) { return d.target; }, + angle = function(d) { return d.angle; }, + startRadius = function(d) { return d.radius; }, + endRadius = startRadius, + arcOffset = -Math.PI / 2; + + function link(d, i) { + var s = node(source, this, d, i), + t = node(target, this, d, i), + x; + if (t.a < s.a) x = t, t = s, s = x; + if (t.a - s.a > Math.PI) s.a += 2 * Math.PI; + var a1 = s.a + (t.a - s.a) / 3, + a2 = t.a - (t.a - s.a) / 3; + return s.r0 - s.r1 || t.r0 - t.r1 + ? "M" + Math.cos(s.a) * s.r0 + "," + Math.sin(s.a) * s.r0 + + "L" + Math.cos(s.a) * s.r1 + "," + Math.sin(s.a) * s.r1 + + "C" + Math.cos(a1) * s.r1 + "," + Math.sin(a1) * s.r1 + + " " + Math.cos(a2) * t.r1 + "," + Math.sin(a2) * t.r1 + + " " + Math.cos(t.a) * t.r1 + "," + Math.sin(t.a) * t.r1 + + "L" + Math.cos(t.a) * t.r0 + "," + Math.sin(t.a) * t.r0 + + "C" + Math.cos(a2) * t.r0 + "," + Math.sin(a2) * t.r0 + + " " + Math.cos(a1) * s.r0 + "," + Math.sin(a1) * s.r0 + + " " + Math.cos(s.a) * s.r0 + "," + Math.sin(s.a) * s.r0 + : "M" + Math.cos(s.a) * s.r0 + "," + Math.sin(s.a) * s.r0 + + "C" + Math.cos(a1) * s.r1 + "," + Math.sin(a1) * s.r1 + + " " + Math.cos(a2) * t.r1 + "," + Math.sin(a2) * t.r1 + + " " + Math.cos(t.a) * t.r1 + "," + Math.sin(t.a) * t.r1; + } + + function node(method, thiz, d, i) { + var node = method.call(thiz, d, i), + a = +(typeof angle === "function" ? angle.call(thiz, node, i) : angle) + arcOffset, + r0 = +(typeof startRadius === "function" ? startRadius.call(thiz, node, i) : startRadius), + r1 = (startRadius === endRadius ? r0 : +(typeof endRadius === "function" ? endRadius.call(thiz, node, i) : endRadius)); + return {r0: r0, r1: r1, a: a}; + } + + link.source = function(_) { + if (!arguments.length) return source; + source = _; + return link; + }; + + link.target = function(_) { + if (!arguments.length) return target; + target = _; + return link; + }; + + link.angle = function(_) { + if (!arguments.length) return angle; + angle = _; + return link; + }; + + link.radius = function(_) { + if (!arguments.length) return startRadius; + startRadius = endRadius = _; + return link; + }; + + link.startRadius = function(_) { + if (!arguments.length) return startRadius; + startRadius = _; + return link; + }; + + link.endRadius = function(_) { + if (!arguments.length) return endRadius; + endRadius = _; + return link; + }; + + return link; +}; |