comparison gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/verticalcrosssection/VerticalCrossSectionOutputState.java @ 431:422275fc9927

Refactored the XYColumn and Point2d code a bit to be more reusable in 3D. gnv-artifacts/trunk@479 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 23 Dec 2009 06:53:46 +0000
parents bed9735adf84
children 6a70e8883307
comparison
equal deleted inserted replaced
430:23e9352df09b 431:422275fc9927
38 import de.intevation.gnv.geobackend.base.Result; 38 import de.intevation.gnv.geobackend.base.Result;
39 import de.intevation.gnv.geobackend.base.ResultDescriptor; 39 import de.intevation.gnv.geobackend.base.ResultDescriptor;
40 import de.intevation.gnv.geobackend.base.query.QueryExecutor; 40 import de.intevation.gnv.geobackend.base.query.QueryExecutor;
41 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; 41 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory;
42 import de.intevation.gnv.geobackend.base.query.exception.QueryException; 42 import de.intevation.gnv.geobackend.base.query.exception.QueryException;
43
43 import de.intevation.gnv.math.AttributedXYColumns; 44 import de.intevation.gnv.math.AttributedXYColumns;
44 import de.intevation.gnv.math.HeightValue; 45 import de.intevation.gnv.math.HeightValue;
45 import de.intevation.gnv.math.XYColumn; 46 import de.intevation.gnv.math.XYColumn;
47 import de.intevation.gnv.math.IJKey;
48
46 import de.intevation.gnv.state.describedata.KeyValueDescibeData; 49 import de.intevation.gnv.state.describedata.KeyValueDescibeData;
47 import de.intevation.gnv.state.exception.StateException; 50 import de.intevation.gnv.state.exception.StateException;
48 import de.intevation.gnv.state.timeseries.TimeSeriesOutputState; 51 import de.intevation.gnv.state.timeseries.TimeSeriesOutputState;
49 import de.intevation.gnv.statistics.Statistics; 52 import de.intevation.gnv.statistics.Statistics;
50 import de.intevation.gnv.statistics.VerticalProfileStatistics; 53 import de.intevation.gnv.statistics.VerticalProfileStatistics;
154 } 157 }
155 158
156 159
157 protected AttributedXYColumns preProcess(Collection results) { 160 protected AttributedXYColumns preProcess(Collection results) {
158 AttributedXYColumns attColumns = new AttributedXYColumns(); 161 AttributedXYColumns attColumns = new AttributedXYColumns();
159 Map map = new HashMap(); 162 Map map = new HashMap(1013);
160 Iterator iter = results.iterator(); 163 Iterator iter = results.iterator();
161 164
162 int sIdx = -1; 165 int sIdx = -1;
163 int iIdx = -1; 166 int iIdx = -1;
164 int jIdx = -1; 167 int jIdx = -1;
198 int i = result.getInteger(iIdx); 201 int i = result.getInteger(iIdx);
199 int j = result.getInteger(jIdx); 202 int j = result.getInteger(jIdx);
200 int k = result.getInteger(kIdx); 203 int k = result.getInteger(kIdx);
201 int z = result.getInteger(zIdx); 204 int z = result.getInteger(zIdx);
202 205
203 XYColumn col = new XYColumn(point.getX(), point.getY(), i, j); 206 IJKey key = new IJKey(i, j);
204 XYColumn old = (XYColumn)map.get(col); 207
205 208 XYColumn col = (XYColumn)map.get(key);
206 if (old == null) { 209
207 map.put(old = col, col); 210 if (col == null) {
211 col = new XYColumn(point.getX(), point.getY(), i, j);
212 map.put(key, col);
208 } 213 }
209 214
210 old.add(new HeightValue(z, v, k)); 215 col.add(new HeightValue(z, v, k));
211 } 216 }
212 catch (ParseException pe) { 217 catch (ParseException pe) {
213 log.warn("Error while parsing geometry.", pe); 218 log.warn("Error while parsing geometry.", pe);
214 } 219 }
215 } 220 }

http://dive4elements.wald.intevation.org