Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(370)

Side by Side Diff: packages/charted/lib/core/scales/ordinal_scale.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 _OrdinalScale implements OrdinalScale { 10 class _OrdinalScale implements OrdinalScale {
11 final _index = new Map<dynamic, int>(); 11 final _index = new Map<dynamic, int>();
12 12
13 List _domain = []; 13 List _domain = [];
14 List _range = []; 14 List _range = [];
15 num _rangeBand = 0; 15 num _rangeBand = 0;
16 Extent _rangeExtent; 16 Extent _rangeExtent;
17 Function _reset; 17 Function _reset;
18 18
19 _OrdinalScale(); 19 _OrdinalScale();
20 20
21 _OrdinalScale._clone(_OrdinalScale source) 21 _OrdinalScale._clone(_OrdinalScale source)
22 : _domain = source._domain, 22 : _domain = new List.from(source._domain),
23 _range = source._range, 23 _range = new List.from(source._range),
24 _reset = source._reset, 24 _reset = source._reset,
25 _rangeExtent = source._rangeExtent, 25 _rangeExtent = source._rangeExtent,
26 _rangeBand = source._rangeBand { 26 _rangeBand = source._rangeBand {
27 _index.addAll(source._index); 27 _index.addAll(source._index);
28 } 28 }
29 29
30 @override 30 @override
31 scale(dynamic value) { 31 scale(dynamic value) {
32 if (!_index.containsKey(value)) { 32 if (!_index.containsKey(value)) {
33 _index[value] = domain.length; 33 _index[value] = domain.length;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 s._rangeExtent = null; 113 s._rangeExtent = null;
114 }; 114 };
115 scale._reset(scale); 115 scale._reset(scale);
116 } 116 }
117 117
118 static void _setRangePoints( 118 static void _setRangePoints(
119 _OrdinalScale scale, Iterable range, double padding) { 119 _OrdinalScale scale, Iterable range, double padding) {
120 scale._reset = (_OrdinalScale s) { 120 scale._reset = (_OrdinalScale s) {
121 var start = range.first, 121 var start = range.first,
122 stop = range.last, 122 stop = range.last,
123 step = (stop - start) / (s.domain.length - 1 + padding); 123 step = s.domain.length > 1
124 ? (stop - start - 2 * padding) / (s.domain.length - 1)
125 : 0;
124 126
125 s._range = s._steps( 127 s._range = s._steps(
126 s.domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, 128 s.domain.length < 2 ? (start + stop) / 2 : start + padding, step);
127 step);
128 s._rangeBand = 0; 129 s._rangeBand = 0;
129 s._rangeExtent = new Extent(start, stop); 130 s._rangeExtent = new Extent(start, stop);
130 }; 131 };
131 if (scale.domain.isNotEmpty) { 132 if (scale.domain.isNotEmpty) {
132 scale._reset(scale); 133 scale._reset(scale);
133 } 134 }
134 } 135 }
135 136
136 static void _setRangeBands(_OrdinalScale scale, Iterable range, 137 static void _setRangeBands(_OrdinalScale scale, Iterable range,
137 double padding, double outerPadding) { 138 double padding, double outerPadding) {
138 scale._reset = (_OrdinalScale s) { 139 scale._reset = (_OrdinalScale s) {
139 var start = range.first, 140 var start = range.first,
140 stop = range.last, 141 stop = range.last,
141 step = (stop - start) / s.domain.length - padding + 2 * outerPadding; 142 step = (stop - start - 2 * outerPadding) /
143 (s.domain.length > 1
144 ? (s.domain.length - padding)
145 : 1);
142 146
143 s._range = s._steps(start + step * outerPadding, step); 147 s._range = s._steps(start + step * outerPadding, step);
144 s._rangeBand = step * (1 - padding); 148 s._rangeBand = step * (1 - padding);
145 s._rangeExtent = new Extent(start, stop); 149 s._rangeExtent = new Extent(start, stop);
146 }; 150 };
147 if (scale.domain.isNotEmpty) { 151 if (scale.domain.isNotEmpty) {
148 scale._reset(scale); 152 scale._reset(scale);
149 } 153 }
150 } 154 }
151 155
152 static void _setRangeRoundBands(_OrdinalScale scale, Iterable range, 156 static void _setRangeRoundBands(_OrdinalScale scale, Iterable range,
153 double padding, double outerPadding) { 157 double padding, double outerPadding) {
154 scale._reset = (_OrdinalScale s) { 158 scale._reset = (_OrdinalScale s) {
155 var start = range.first, 159 var start = range.first,
156 stop = range.last, 160 stop = range.last,
157 step = 161 step =
158 ((stop - start) / (s.domain.length - padding + 2 * outerPadding)) 162 ((stop - start - 2 * outerPadding) /
159 .floor(), 163 (s.domain.length > 1
160 error = stop - start - (s.domain.length - padding) * step; 164 ? (s.domain.length - padding)
165 : 1)).floor();
161 166
162 s._range = s._steps(start + (error / 2).round(), step); 167 s._range = s._steps(start + outerPadding, step);
163 s._rangeBand = (step * (1 - padding)).round(); 168 s._rangeBand = (step * (1 - padding)).round();
164 s._rangeExtent = new Extent(start, stop); 169 s._rangeExtent = new Extent(start, stop);
165 }; 170 };
166 if (scale.domain.isNotEmpty) { 171 if (scale.domain.isNotEmpty) {
167 scale._reset(scale); 172 scale._reset(scale);
168 } 173 }
169 } 174 }
170 175
171 // 176 //
172 // Properties that are valid only on quantitative scales. 177 // Properties that are valid only on quantitative scales.
173 // 178 //
174
175 bool clamp; 179 bool clamp;
176 bool nice; 180 bool nice;
177 bool rounded; 181 bool rounded;
178 int ticksCount; 182 int ticksCount;
183 int forcedTicksCount;
179 } 184 }
OLDNEW
« no previous file with comments | « packages/charted/lib/core/scales/log_scale.dart ('k') | packages/charted/lib/core/text_metrics.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698