/****************************************************************************** * Compilation: javac Interval2D.java * Execution: java Interval2D * * Implementation of 2D interval. * ******************************************************************************/ public class Interval2D> { public final Interval intervalX; // x-interval public final Interval intervalY; // y-interval public Interval2D(Interval intervalX, Interval intervalY) { this.intervalX = intervalX; this.intervalY = intervalY; } // does this 2D interval a intersect b? public boolean intersects(Interval2D b) { if (intervalX.intersects(b.intervalX)) return true; if (intervalY.intersects(b.intervalY)) return true; return false; } // does this 2D interval contain (x, y)? public boolean contains(Key x, Key y) { return intervalX.contains(x) && intervalY.contains(y); } // return string representation public String toString() { return intervalX + " x " + intervalY; } // test client public static void main(String[] args) { Interval intervalX = new Interval(0.0, 1.0); Interval intervalY = new Interval(5.0, 6.0); Interval2D box1 = new Interval2D(intervalX, intervalY); intervalX = new Interval(-5.0, 5.0); intervalY = new Interval(3.0, 7.0); Interval2D box2 = new Interval2D(intervalX, intervalY); System.out.println("box1 = " + box1); System.out.println("box2 = " + box2); System.out.println(box1.contains(0.5, 5.5)); System.out.println(!box1.contains(1.5, 5.5)); System.out.println(box1.intersects(box2)); System.out.println(box2.intersects(box1)); } }