MCPcopy Create free account
hub / github.com/breck7/scroll / transformer

Function transformer

external/.d3.js:16936–16986  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

16934}
16935
16936function transformer() {
16937 var x0 = 0,
16938 x1 = 0.5,
16939 x2 = 1,
16940 s = 1,
16941 t0,
16942 t1,
16943 t2,
16944 k10,
16945 k21,
16946 interpolator = identity$3,
16947 transform,
16948 clamp = false,
16949 unknown;
16950
16951 function scale(x) {
16952 return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));
16953 }
16954
16955 scale.domain = function(_) {
16956 return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];
16957 };
16958
16959 scale.clamp = function(_) {
16960 return arguments.length ? (clamp = !!_, scale) : clamp;
16961 };
16962
16963 scale.interpolator = function(_) {
16964 return arguments.length ? (interpolator = _, scale) : interpolator;
16965 };
16966
16967 function range(interpolate) {
16968 return function(_) {
16969 var r0, r1, r2;
16970 return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];
16971 };
16972 }
16973
16974 scale.range = range(interpolate$2);
16975
16976 scale.rangeRound = range(interpolateRound);
16977
16978 scale.unknown = function(_) {
16979 return arguments.length ? (unknown = _, scale) : unknown;
16980 };
16981
16982 return function(t) {
16983 transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;
16984 return scale;
16985 };
16986}
16987
16988function diverging$1() {
16989 var scale = linearish(transformer()(identity$3));

Callers 4

diverging$1Function · 0.85
divergingLogFunction · 0.85
divergingSymlogFunction · 0.85
divergingPowFunction · 0.85

Calls 3

rangeFunction · 0.85
transformFunction · 0.70
tFunction · 0.70

Tested by

no test coverage detected