Mercurial > dive4elements > river
view flys-backend/src/main/java/de/intevation/flys/model/FastCrossSectionLine.java @ 4004:3b79e8afca7e
S(Q) calculate effective width
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Mon, 01 Oct 2012 15:51:55 +0200 |
parents | 2f874d14ac68 |
children |
line wrap: on
line source
package de.intevation.flys.model; import java.util.List; import java.util.Comparator; import java.io.Serializable; import java.awt.geom.Point2D; public class FastCrossSectionLine implements Serializable { public static final double EPSILON = 1e-5; public static final Comparator<FastCrossSectionLine> KM_CMP = new Comparator<FastCrossSectionLine>() { public int compare( FastCrossSectionLine a, FastCrossSectionLine b ) { double diff = a.km - b.km; if (diff < -EPSILON) return -1; return diff > +EPSILON ? +1 : 0; } }; protected double km; protected List<Point2D> points; public FastCrossSectionLine() { } public FastCrossSectionLine(double km) { this.km = km; } public FastCrossSectionLine(double km, List<Point2D> points) { this(km); this.points = points; } public FastCrossSectionLine(CrossSectionLine csl) { Double kmBD = csl.getKm(); km = kmBD != null ? kmBD.doubleValue() : 0d; points = csl.fetchCrossSectionLinesPoints(); } public double getKm() { return km; } public void setKm(double km) { this.km = km; } public List<Point2D> getPoints() { return points; } public void setPoints(List<Point2D> points) { this.points = points; } public double [][] fetchCrossSectionProfile() { return CrossSectionLine.fetchCrossSectionProfile(points); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :