MCPcopy Index your code
hub / github.com/idank/explainshell / d3_interpolateTransform

Function d3_interpolateTransform

explainshell/web/static/js/d3.v3.js:4692–4743  ·  view source on GitHub ↗
(a, b)

Source from the content-addressed store, hash-verified

4690 }
4691 d3.interpolateTransform = d3_interpolateTransform;
4692 function d3_interpolateTransform(a, b) {
4693 var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;
4694 if (ta[0] != tb[0] || ta[1] != tb[1]) {
4695 s.push("translate(", null, ",", null, ")");
4696 q.push({
4697 i: 1,
4698 x: d3_interpolateNumber(ta[0], tb[0])
4699 }, {
4700 i: 3,
4701 x: d3_interpolateNumber(ta[1], tb[1])
4702 });
4703 } else if (tb[0] || tb[1]) {
4704 s.push("translate(" + tb + ")");
4705 } else {
4706 s.push("");
4707 }
4708 if (ra != rb) {
4709 if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
4710 q.push({
4711 i: s.push(s.pop() + "rotate(", null, ")") - 2,
4712 x: d3_interpolateNumber(ra, rb)
4713 });
4714 } else if (rb) {
4715 s.push(s.pop() + "rotate(" + rb + ")");
4716 }
4717 if (wa != wb) {
4718 q.push({
4719 i: s.push(s.pop() + "skewX(", null, ")") - 2,
4720 x: d3_interpolateNumber(wa, wb)
4721 });
4722 } else if (wb) {
4723 s.push(s.pop() + "skewX(" + wb + ")");
4724 }
4725 if (ka[0] != kb[0] || ka[1] != kb[1]) {
4726 n = s.push(s.pop() + "scale(", null, ",", null, ")");
4727 q.push({
4728 i: n - 4,
4729 x: d3_interpolateNumber(ka[0], kb[0])
4730 }, {
4731 i: n - 2,
4732 x: d3_interpolateNumber(ka[1], kb[1])
4733 });
4734 } else if (kb[0] != 1 || kb[1] != 1) {
4735 s.push(s.pop() + "scale(" + kb + ")");
4736 }
4737 n = q.length;
4738 return function(t) {
4739 var i = -1, o;
4740 while (++i < n) s[(o = q[i]).i] = o.x(t);
4741 return s.join("");
4742 };
4743 }
4744 d3.interpolateObject = d3_interpolateObject;
4745 function d3_interpolateObject(a, b) {
4746 var i = {}, c = {}, k;

Callers

nothing calls this directly

Calls 1

d3_interpolateNumberFunction · 0.85

Tested by

no test coverage detected