home *** CD-ROM | disk | FTP | other *** search
- package sun.java2d;
-
- import java.util.Collections;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Vector;
-
- class Spans {
- private static final int kMaxAddsSinceSort = 256;
- private List mSpans = new Vector(256);
- private int mAddsSinceSort = 0;
-
- void add(float var1, float var2) {
- if (this.mSpans != null) {
- this.mSpans.add(new Span(var1, var2));
- if (++this.mAddsSinceSort >= 256) {
- this.sortAndCollapse();
- }
- }
-
- }
-
- void addInfinite() {
- this.mSpans = null;
- }
-
- boolean intersects(float var1, float var2) {
- boolean var3;
- if (this.mSpans != null) {
- if (this.mAddsSinceSort > 0) {
- this.sortAndCollapse();
- }
-
- int var4 = Collections.binarySearch(this.mSpans, new Span(var1, var2), sun.java2d.Spans.SpanIntersection.instance);
- var3 = var4 >= 0;
- } else {
- var3 = true;
- }
-
- return var3;
- }
-
- private void sortAndCollapse() {
- Collections.sort(this.mSpans);
- this.mAddsSinceSort = 0;
- Iterator var1 = this.mSpans.iterator();
- Span var2 = null;
- if (var1.hasNext()) {
- var2 = (Span)var1.next();
- }
-
- while(var1.hasNext()) {
- Span var3 = (Span)var1.next();
- if (var2.subsume(var3)) {
- var1.remove();
- } else {
- var2 = var3;
- }
- }
-
- }
- }
-