comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java @ 1676:6e840e213fdf

Backjump correction: Finally looks fine. flys-artifacts/trunk@2893 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 05 Oct 2011 10:36:40 +0000
parents b5209452f6bb
children 2898b1ff6013
comparison
equal deleted inserted replaced
1675:19d0eb41e923 1676:6e840e213fdf
131 startHeight = ws[0]; 131 startHeight = ws[0];
132 } 132 }
133 133
134 double between = above + quarterDistance; 134 double between = above + quarterDistance;
135 135
136 double betweenHeight = ws[i] + 0.25*(startHeight - ws[i]); 136 double aboveHeight = ws[i] + 0.25*(startHeight - ws[i]);
137 137
138 double [] x = { start, between, km[i] }; 138 double [] x = { start, above, between };
139 double [] y = { startHeight, betweenHeight, ws[i] }; 139 double [] y = { startHeight, aboveHeight, ws[i] };
140 140
141 if (log.isDebugEnabled()) { 141 if (log.isDebugEnabled()) {
142 for (int j = 0; j < x.length; ++j) { 142 for (int j = 0; j < x.length; ++j) {
143 log.debug(" " + x[j] + " -> " + y[j]); 143 log.debug(" " + x[j] + " -> " + y[j]);
144 } 144 }
166 for (int j = 0; j < x.length; ++j) { 166 for (int j = 0; j < x.length; ++j) {
167 log.debug(x[j] + " " + y[j] + " " + spline.value(x[j])); 167 log.debug(x[j] + " " + y[j] + " " + spline.value(x[j]));
168 } 168 }
169 } 169 }
170 170
171 for (int j = i-1; j > 0 && ws[j] < startHeight; --j) { 171 int j = i-1;
172
173 for (; j >= 0 && km[j] >= between; --j) {
174 ws[j] = ws[i];
175 }
176
177 for (; j >= 0 && ws[j] < startHeight; --j) {
172 ws[j] = spline.value(km[j]); 178 ws[j] = spline.value(km[j]);
173 } 179 }
174 } 180 }
175 catch (ArgumentOutsideDomainException aode) { 181 catch (ArgumentOutsideDomainException aode) {
176 // TODO: I18N 182 // TODO: I18N

http://dive4elements.wald.intevation.org