home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / java2d / Spans.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.3 KB  |  63 lines

  1. package sun.java2d;
  2.  
  3. import java.util.Collections;
  4. import java.util.Iterator;
  5. import java.util.List;
  6. import java.util.Vector;
  7.  
  8. class Spans {
  9.    private static final int kMaxAddsSinceSort = 256;
  10.    private List mSpans = new Vector(256);
  11.    private int mAddsSinceSort = 0;
  12.  
  13.    void add(float var1, float var2) {
  14.       if (this.mSpans != null) {
  15.          this.mSpans.add(new Span(var1, var2));
  16.          if (++this.mAddsSinceSort >= 256) {
  17.             this.sortAndCollapse();
  18.          }
  19.       }
  20.  
  21.    }
  22.  
  23.    void addInfinite() {
  24.       this.mSpans = null;
  25.    }
  26.  
  27.    boolean intersects(float var1, float var2) {
  28.       boolean var3;
  29.       if (this.mSpans != null) {
  30.          if (this.mAddsSinceSort > 0) {
  31.             this.sortAndCollapse();
  32.          }
  33.  
  34.          int var4 = Collections.binarySearch(this.mSpans, new Span(var1, var2), sun.java2d.Spans.SpanIntersection.instance);
  35.          var3 = var4 >= 0;
  36.       } else {
  37.          var3 = true;
  38.       }
  39.  
  40.       return var3;
  41.    }
  42.  
  43.    private void sortAndCollapse() {
  44.       Collections.sort(this.mSpans);
  45.       this.mAddsSinceSort = 0;
  46.       Iterator var1 = this.mSpans.iterator();
  47.       Span var2 = null;
  48.       if (var1.hasNext()) {
  49.          var2 = (Span)var1.next();
  50.       }
  51.  
  52.       while(var1.hasNext()) {
  53.          Span var3 = (Span)var1.next();
  54.          if (var2.subsume(var3)) {
  55.             var1.remove();
  56.          } else {
  57.             var2 = var3;
  58.          }
  59.       }
  60.  
  61.    }
  62. }
  63.