OLD | NEW |
1 // | 1 // |
2 // Copyright 2014 Google Inc. All rights reserved. | 2 // Copyright 2014 Google Inc. All rights reserved. |
3 // | 3 // |
4 // Use of this source code is governed by a BSD-style | 4 // Use of this source code is governed by a BSD-style |
5 // license that can be found in the LICENSE file or at | 5 // license that can be found in the LICENSE file or at |
6 // https://developers.google.com/open-source/licenses/bsd | 6 // https://developers.google.com/open-source/licenses/bsd |
7 // | 7 // |
8 part of charted.core.scales; | 8 part of charted.core.scales; |
9 | 9 |
10 class LinearScale implements Scale { | 10 class LinearScale implements Scale { |
(...skipping 27 matching lines...) Expand all Loading... |
38 if (nice) { | 38 if (nice) { |
39 _domain = ScaleUtils.nice( | 39 _domain = ScaleUtils.nice( |
40 _domain, ScaleUtils.niceStep(_linearTickRange().step)); | 40 _domain, ScaleUtils.niceStep(_linearTickRange().step)); |
41 } | 41 } |
42 | 42 |
43 Function linear = math.min(_domain.length, _range.length) > 2 | 43 Function linear = math.min(_domain.length, _range.length) > 2 |
44 ? ScaleUtils.polylinearScale | 44 ? ScaleUtils.polylinearScale |
45 : ScaleUtils.bilinearScale; | 45 : ScaleUtils.bilinearScale; |
46 | 46 |
47 Function uninterpolator = clamp ? uninterpolateClamp : uninterpolateNumber; | 47 Function uninterpolator = clamp ? uninterpolateClamp : uninterpolateNumber; |
48 InterpolatorGenerator interpolator = | 48 InterpolatorGenerator interpolator; |
49 _rounded ? createRoundedNumberInterpolator : createNumberInterpolator; | 49 if (rounded) { |
| 50 interpolator = createRoundedNumberInterpolator; |
| 51 } else { |
| 52 interpolator = createNumberInterpolator; |
| 53 } |
50 | 54 |
51 _invert = linear(_range, _domain, uninterpolator, createNumberInterpolator); | 55 _invert = linear(_range, _domain, uninterpolator, createNumberInterpolator); |
52 _scale = linear(_domain, _range, uninterpolator, interpolator); | 56 _scale = linear(_domain, _range, uninterpolator, interpolator); |
53 } | 57 } |
54 | 58 |
55 @override | 59 @override |
56 set range(Iterable value) { | 60 set range(Iterable value) { |
57 assert(value != null); | 61 assert(value != null); |
58 _range = value; | 62 _range = value; |
59 _reset(); | 63 _reset(); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 } | 123 } |
120 } | 124 } |
121 | 125 |
122 @override | 126 @override |
123 bool get nice => _nice; | 127 bool get nice => _nice; |
124 | 128 |
125 @override | 129 @override |
126 Extent get rangeExtent => ScaleUtils.extent(_range); | 130 Extent get rangeExtent => ScaleUtils.extent(_range); |
127 | 131 |
128 @override | 132 @override |
129 num scale(num value) => _scale(value); | 133 scale(value) => _scale(value); |
130 | 134 |
131 @override | 135 @override |
132 num invert(num value) => _invert(value); | 136 invert(value) => _invert(value); |
133 | 137 |
134 Range _linearTickRange([Extent extent]) { | 138 Range _linearTickRange([Extent extent]) { |
135 if (extent == null) { | 139 if (extent == null) { |
136 extent = ScaleUtils.extent(_domain); | 140 extent = ScaleUtils.extent(_domain); |
137 } | 141 } |
138 var span = extent.max - extent.min; | 142 var span = extent.max - extent.min; |
139 if (span == 0) { | 143 if (span == 0) { |
140 span = 1.0; // [span / _ticksCount] should never be equal zero. | 144 span = 1.0; // [span / _ticksCount] should never be equal zero. |
141 } | 145 } |
142 var step = math.pow(10, (math.log(span / _ticksCount) / math.LN10).floor()); | 146 var step = math.pow(10, (math.log(span / _ticksCount) / math.LN10).floor()); |
(...skipping 21 matching lines...) Expand all Loading... |
164 if (formatStr == null) { | 168 if (formatStr == null) { |
165 formatStr = ".${precision(tickRange.step)}f"; | 169 formatStr = ".${precision(tickRange.step)}f"; |
166 } | 170 } |
167 NumberFormat formatter = new NumberFormat(new EnUsLocale()); | 171 NumberFormat formatter = new NumberFormat(new EnUsLocale()); |
168 return formatter.format(formatStr); | 172 return formatter.format(formatStr); |
169 } | 173 } |
170 | 174 |
171 @override | 175 @override |
172 LinearScale clone() => new LinearScale._clone(this); | 176 LinearScale clone() => new LinearScale._clone(this); |
173 } | 177 } |
OLD | NEW |