view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Range.java @ 4478:6153c50f78cf

WaterLineArtifact: Added callcontext-parameter to interfaces getWaterLine. Update all implementations. The change was done to be able to compute the extreme values during getWaterLine to access data needed in CrossSectionProfile Diagrams.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 13 Nov 2012 14:46:44 +0100
parents 048b3c3acd01
children f7208c190e4a
line wrap: on
line source
package de.intevation.flys.artifacts.model;

import java.io.Serializable;

/** A range from ... to .*/
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;
    }

    /** True if start>x<end (+ some epsilon) . */
    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