758 this.crossingMaxY = maxY;
759 this.crossingMaxXEntries = maxXEntries;
760 resetCrossings();
761 }
762
763 private void resetCrossings() {
764 int yextent = crossingMaxY - crossingMinY + 1;
765 int start = 0;
766 for (int i = 0; i < yextent; i++) {
767 crossingIndices[i] = start;
768 start += crossingMaxXEntries;
769 }
770 crossingMinX = Integer.MAX_VALUE;
771 crossingMaxX = Integer.MIN_VALUE;
772 numCrossings = 0;
773 crossingsSorted = false;
774 }
775
776 // Free sorting arrays if larger than maximum size
777 private void crossingListFinished() {
778 if (crossings.length > DEFAULT_CROSSINGS_SIZE) {
779 crossings = new int[DEFAULT_CROSSINGS_SIZE];
780 }
781 if (crossingIndices.length > DEFAULT_INDICES_SIZE) {
782 crossingIndices = new int[DEFAULT_INDICES_SIZE];
783 }
784 }
785
786 private void sortCrossings(int[] x, int off, int len) {
787 for (int i = off + 1; i < off + len; i++) {
788 int j = i;
789 int xj = x[j];
790 int xjm1;
791
792 while (j > off && (xjm1 = x[j - 1]) > xj) {
793 x[j] = xjm1;
794 x[j - 1] = xj;
795 j--;
796 }
797 }
798 }
799
800 private void sortCrossings() {
801 int start = 0;
|
758 this.crossingMaxY = maxY;
759 this.crossingMaxXEntries = maxXEntries;
760 resetCrossings();
761 }
762
763 private void resetCrossings() {
764 int yextent = crossingMaxY - crossingMinY + 1;
765 int start = 0;
766 for (int i = 0; i < yextent; i++) {
767 crossingIndices[i] = start;
768 start += crossingMaxXEntries;
769 }
770 crossingMinX = Integer.MAX_VALUE;
771 crossingMaxX = Integer.MIN_VALUE;
772 numCrossings = 0;
773 crossingsSorted = false;
774 }
775
776 // Free sorting arrays if larger than maximum size
777 private void crossingListFinished() {
778 if (crossings != null && crossings.length > DEFAULT_CROSSINGS_SIZE) {
779 crossings = new int[DEFAULT_CROSSINGS_SIZE];
780 }
781 if (crossingIndices != null
782 && crossingIndices.length > DEFAULT_INDICES_SIZE)
783 {
784 crossingIndices = new int[DEFAULT_INDICES_SIZE];
785 }
786 }
787
788 private void sortCrossings(int[] x, int off, int len) {
789 for (int i = off + 1; i < off + len; i++) {
790 int j = i;
791 int xj = x[j];
792 int xjm1;
793
794 while (j > off && (xjm1 = x[j - 1]) > xj) {
795 x[j] = xjm1;
796 x[j - 1] = xj;
797 j--;
798 }
799 }
800 }
801
802 private void sortCrossings() {
803 int start = 0;
|