view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Range.java @ 4241:49cb65d5932d

Improved the historical discharge calculation. The calculation now creates new HistoricalWQKms (new subclass of WQKms). Those WQKms are used to create new facets from (new) type 'HistoricalDischargeCurveFacet'. The chart generator is improved to support those facets.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 24 Oct 2012 14:34:35 +0200
parents 51f76225823b
children 048b3c3acd01
line wrap: on
line source
package de.intevation.flys.artifacts.model;

import java.io.Serializable;

public class Range implements Serializable {

    public static final double EPSILON  = 1e-5;

    protected double start;
    protected double end;

    public Range() {
    }

    public Range(Range other) {
        start = other.start;
        end   = other.end;
    }

    public Range(double start, double end) {
        this.start = start;
        this.end   = end;
    }

    public double getStart() {
        return start;
    }

    public double getEnd() {
        return end;
    }

    public boolean disjoint(double ostart, double oend) {
        return start > oend || ostart > end;
    }

    public boolean disjoint(Range other) {
        return start > other.end || other.start > end;
    }

    public boolean intersects(Range other) {
        return !disjoint(other);
    }

    public void extend(Range other) {
        if (other.start < start) start = other.start;
        if (other.end   > end  ) end   = other.end;
    }

    public boolean clip(Range other) {
        if (disjoint(other)) return false;

        if (other.start > start) start = other.start;
        if (other.end   < end  ) end   = other.end;

        return true;
    }

    public boolean inside(double x) {
        return x > start-EPSILON && x < end+EPSILON;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org