view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FastCrossSectionLine.java @ 2119:dc28ea60b53d

Added cached/chunked access to cross section lines. TODO: Use the FastCrossSectionLines. flys-artifacts/trunk@3689 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 16 Jan 2012 15:51:46 +0000
parents
children f021080cb409
line wrap: on
line source
package de.intevation.flys.artifacts.model;

import java.util.List;
import java.util.Comparator;

import java.io.Serializable;

import java.math.BigDecimal;

import de.intevation.flys.model.CrossSectionLine;

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(CrossSectionLine csl) {
        BigDecimal 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;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org