Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/geom/Lines.java @ 2687:dc67ddd4a34c
Progressed area calculation while line computation a bit.
flys-artifacts/trunk@4388 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 11 May 2012 07:24:12 +0000 |
parents | b94b367d8b4d |
children | 99350b06a780 |
comparison
equal
deleted
inserted
replaced
2686:6fda6ec9e426 | 2687:dc67ddd4a34c |
---|---|
240 else { // --> wet | 240 else { // --> wet |
241 if (mode != Mode.WET) { | 241 if (mode != Mode.WET) { |
242 startX = p1.getX(); | 242 startX = p1.getX(); |
243 mode = Mode.WET; | 243 mode = Mode.WET; |
244 } | 244 } |
245 area += area(p1, p2, | |
246 new Point2D.Double(p2.getX(), waterLevel), | |
247 new Point2D.Double(p2.getX(), waterLevel)); | |
245 } | 248 } |
246 } | 249 } |
247 else { // p2 == waterlevel | 250 else { // p2 == waterlevel |
248 log.debug("water hits second vertex"); | 251 log.debug("water hits second vertex"); |
249 if (p1.getY() > waterLevel) { // --> wet | 252 if (p1.getY() > waterLevel) { // --> wet |
257 result.add(new Line2D.Double( | 260 result.add(new Line2D.Double( |
258 startX, waterLevel, | 261 startX, waterLevel, |
259 p2.getX(), waterLevel)); | 262 p2.getX(), waterLevel)); |
260 } | 263 } |
261 mode = Mode.DRY; | 264 mode = Mode.DRY; |
265 area += area(p1, p2, | |
266 new Point2D.Double(p1.getX(), waterLevel), | |
267 new Point2D.Double(p1.getX(), waterLevel)); | |
262 } | 268 } |
263 } | 269 } |
264 if (debug) { | 270 if (debug) { |
265 log.debug("mode is now: " + mode); | 271 log.debug("mode is now: " + mode); |
266 } | 272 } |
276 | 282 |
277 if (debug) { | 283 if (debug) { |
278 log.debug("intersection p1:" + p1); | 284 log.debug("intersection p1:" + p1); |
279 log.debug("intersection p2:" + p2); | 285 log.debug("intersection p2:" + p2); |
280 log.debug("intersection at x: " + x); | 286 log.debug("intersection at x: " + x); |
287 } | |
288 | |
289 // Add area of that part of intersection that is 'wet'. | |
290 if (p1.getY() > waterLevel) { | |
291 area += area(new Point2D.Double(x, waterLevel), | |
292 p2, | |
293 new Point2D.Double(p2.getX(), waterLevel), | |
294 new Point2D.Double(x, waterLevel)); | |
295 } | |
296 else { | |
297 area += area(new Point2D.Double(x, waterLevel), | |
298 p1, | |
299 new Point2D.Double(p1.getX(), waterLevel), | |
300 new Point2D.Double(x, waterLevel)); | |
281 } | 301 } |
282 | 302 |
283 switch (mode) { | 303 switch (mode) { |
284 case WET: | 304 case WET: |
285 log.debug("intersect/wet"); | 305 log.debug("intersect/wet"); |