(domain, range, interpolate, clamp)
| 6398 | return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false); |
| 6399 | }; |
| 6400 | function d3_scale_linear(domain, range, interpolate, clamp) { |
| 6401 | var output, input; |
| 6402 | function rescale() { |
| 6403 | var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; |
| 6404 | output = linear(domain, range, uninterpolate, interpolate); |
| 6405 | input = linear(range, domain, uninterpolate, d3_interpolate); |
| 6406 | return scale; |
| 6407 | } |
| 6408 | function scale(x) { |
| 6409 | return output(x); |
| 6410 | } |
| 6411 | scale.invert = function(y) { |
| 6412 | return input(y); |
| 6413 | }; |
| 6414 | scale.domain = function(x) { |
| 6415 | if (!arguments.length) return domain; |
| 6416 | domain = x.map(Number); |
| 6417 | return rescale(); |
| 6418 | }; |
| 6419 | scale.range = function(x) { |
| 6420 | if (!arguments.length) return range; |
| 6421 | range = x; |
| 6422 | return rescale(); |
| 6423 | }; |
| 6424 | scale.rangeRound = function(x) { |
| 6425 | return scale.range(x).interpolate(d3_interpolateRound); |
| 6426 | }; |
| 6427 | scale.clamp = function(x) { |
| 6428 | if (!arguments.length) return clamp; |
| 6429 | clamp = x; |
| 6430 | return rescale(); |
| 6431 | }; |
| 6432 | scale.interpolate = function(x) { |
| 6433 | if (!arguments.length) return interpolate; |
| 6434 | interpolate = x; |
| 6435 | return rescale(); |
| 6436 | }; |
| 6437 | scale.ticks = function(m) { |
| 6438 | return d3_scale_linearTicks(domain, m); |
| 6439 | }; |
| 6440 | scale.tickFormat = function(m, format) { |
| 6441 | return d3_scale_linearTickFormat(domain, m, format); |
| 6442 | }; |
| 6443 | scale.nice = function() { |
| 6444 | d3_scale_nice(domain, d3_scale_linearNice); |
| 6445 | return rescale(); |
| 6446 | }; |
| 6447 | scale.copy = function() { |
| 6448 | return d3_scale_linear(domain, range, interpolate, clamp); |
| 6449 | }; |
| 6450 | return rescale(); |
| 6451 | } |
| 6452 | function d3_scale_linearRebind(scale, linear) { |
| 6453 | return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); |
| 6454 | } |
no test coverage detected