EOS 2  1.1.0
Einfache Objektbasierte Sprache
BoundingBox.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.game.geom;
2 
3 import de.lathanda.eos.base.util.Interval;
4 
15 public class BoundingBox<T extends Comparable<T> > {
16  private final double x1, y1;
17  private final double x2, y2;
18  private final T source;
19 
20  public BoundingBox(double x1, double y1, double x2, double y2, T source) {
21  if (x1 < x2) {
22  this.x1 = x1;
23  this.x2 = x2;
24  } else {
25  this.x1 = x2;
26  this.x2 = x1;
27  }
28  if (y1 < y2) {
29  this.y1 = y1;
30  this.y2 = y2;
31  } else {
32  this.y1 = y2;
33  this.y2 = y1;
34  }
35  this.source = source;
36  }
37  public T getSource() {
38  return source;
39  }
40  public class xInterval implements Interval, Comparable<xInterval> {
41  @Override
42  public int compareTo(xInterval b) {
43  BoundingBox<T> r = b.getInner();
44  return source.compareTo(r.source);
45  }
46  @Override
47  public double getLow() {
48  return x1;
49  }
50  @Override
51  public double getHigh() {
52  return x2;
53  }
54  private BoundingBox<T> getInner() {
55  return BoundingBox.this;
56  }
57  public T getSource() {
58  return source;
59  }
60  }
61  public class yInterval implements Interval, Comparable<yInterval> {
62  @Override
63  public int compareTo(yInterval b) {
64  BoundingBox<T> r = b.getInner();
65  return source.compareTo(r.source);
66  }
67  @Override
68  public double getLow() {
69  return y1;
70  }
71  @Override
72  public double getHigh() {
73  return y2;
74  }
75  private BoundingBox<T> getInner() {
76  return BoundingBox.this;
77  }
78  public T getSource() {
79  return source;
80  }
81  }
82 }
Impressum