daily pastebin goal
48%
SHARE
TWEET

Untitled

a guest Apr 16th, 2018 59 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     public void union(Range r){
  2.         int count = 0;
  3.         int secondIndex = 0;
  4.         int overlapIndex = 0;
  5.         int containment = 0;
  6.         int reverseContain = 0;
  7.         int containIndex=0;
  8.         for (int i=0; i<newRange.size(); i++) {
  9.             if (r.overlaps(newRange.get(i))) {
  10.                 count=count+1;
  11.                 if (count==1) {
  12.                     overlapIndex=overlapIndex+i;
  13.                 }
  14.                 if (count==2) {
  15.                     secondIndex=secondIndex+i;
  16.                 }
  17.             }
  18.         }
  19.         for (int j=0; j<newRange.size(); j++) {
  20.             if (newRange.get(j).contains(r)) {
  21.                 containment=containment+1;
  22.             }
  23.         }
  24.         for (int k=0; k<newRange.size(); k++) {
  25.             if (r.contains(newRange.get(k))) {
  26.                 reverseContain=reverseContain+1;
  27.                 containIndex=containIndex+k;
  28.             }
  29.         }
  30.         if (count==0) {
  31.             newRange.add(r);
  32.         }
  33.         else if (containment!=0) {
  34.         }
  35.         else if (count==1) {
  36.             Range minRange = new Range(r.getMinimum(),newRange.get(overlapIndex).getMaximum());
  37.             Range maxRange = new Range(newRange.get(overlapIndex).getMinimum(),r.getMaximum());
  38.             if (newRange.get(overlapIndex).contains(r.getMaximum())) {
  39.                 newRange.remove(overlapIndex);
  40.                 newRange.add(overlapIndex,minRange);
  41.             }
  42.             else {
  43.                 newRange.remove(overlapIndex);
  44.                 newRange.add(overlapIndex,maxRange);
  45.             }
  46.         }
  47.         else if (count==2) {
  48.             float firstIndexMin=newRange.get(overlapIndex).getMinimum();
  49.             float firstIndexMax=newRange.get(overlapIndex).getMaximum();
  50.             float secondIndexMin=newRange.get(secondIndex).getMinimum();
  51.             float secondIndexMax=newRange.get(secondIndex).getMaximum();
  52.             if (firstIndexMin<secondIndexMin && firstIndexMax>secondIndexMax) {
  53.                 newRange.remove(secondIndex);
  54.                 newRange.add(secondIndex, newRange.get(overlapIndex));
  55.             }
  56.             else if (firstIndexMin>secondIndexMin && firstIndexMax<secondIndexMax){
  57.                 newRange.remove(overlapIndex);
  58.                 newRange.add(overlapIndex, newRange.get(secondIndex));
  59.             }
  60.             else if (firstIndexMin>secondIndexMin && firstIndexMax>secondIndexMax){
  61.                 newRange.remove(overlapIndex);
  62.                 newRange.remove(secondIndex);
  63.                 Range combined = new Range(newRange.get(secondIndex).getMinimum(),newRange.get(overlapIndex).getMaximum());
  64.                 newRange.add(overlapIndex,combined);
  65.                 newRange.add(secondIndex,combined);
  66.             }
  67.             else if (firstIndexMin<secondIndexMin && firstIndexMax<secondIndexMax){
  68.                 newRange.remove(overlapIndex);
  69.                 newRange.remove(secondIndex);
  70.                 Range combined = new Range(newRange.get(overlapIndex).getMinimum(),newRange.get(secondIndex).getMaximum());
  71.                 newRange.add(overlapIndex,combined);
  72.                 newRange.add(secondIndex,combined);
  73.             }
  74.         }
  75.         else if (reverseContain==1) {
  76.             newRange.remove(containIndex);
  77.         }
  78.     }
RAW Paste Data
Top