(domain, range, interpolate)
| 107064 | } |
| 107065 | |
| 107066 | function polymap(domain, range, interpolate) { |
| 107067 | var j = Math.min(domain.length, range.length) - 1, |
| 107068 | d = new Array(j), |
| 107069 | r = new Array(j), |
| 107070 | i = -1; // Reverse descending domains. |
| 107071 | |
| 107072 | if (domain[j] < domain[0]) { |
| 107073 | domain = domain.slice().reverse(); |
| 107074 | range = range.slice().reverse(); |
| 107075 | } |
| 107076 | |
| 107077 | while (++i < j) { |
| 107078 | d[i] = normalize(domain[i], domain[i + 1]); |
| 107079 | r[i] = interpolate(range[i], range[i + 1]); |
| 107080 | } |
| 107081 | |
| 107082 | return function (x) { |
| 107083 | var i = (0, _d3Array.bisect)(domain, x, 1, j) - 1; |
| 107084 | return r[i](d[i](x)); |
| 107085 | }; |
| 107086 | } |
| 107087 | |
| 107088 | function copy(source, target) { |
| 107089 | return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown()); |
nothing calls this directly
no test coverage detected