1 package org.opencv.core; 2 3 //javadoc:Range 4 public class Range { 5 6 public int start, end; 7 Range(int s, int e)8 public Range(int s, int e) { 9 this.start = s; 10 this.end = e; 11 } 12 Range()13 public Range() { 14 this(0, 0); 15 } 16 Range(double[] vals)17 public Range(double[] vals) { 18 set(vals); 19 } 20 set(double[] vals)21 public void set(double[] vals) { 22 if (vals != null) { 23 start = vals.length > 0 ? (int) vals[0] : 0; 24 end = vals.length > 1 ? (int) vals[1] : 0; 25 } else { 26 start = 0; 27 end = 0; 28 } 29 30 } 31 size()32 public int size() { 33 return empty() ? 0 : end - start; 34 } 35 empty()36 public boolean empty() { 37 return end <= start; 38 } 39 all()40 public static Range all() { 41 return new Range(Integer.MIN_VALUE, Integer.MAX_VALUE); 42 } 43 intersection(Range r1)44 public Range intersection(Range r1) { 45 Range r = new Range(Math.max(r1.start, this.start), Math.min(r1.end, this.end)); 46 r.end = Math.max(r.end, r.start); 47 return r; 48 } 49 shift(int delta)50 public Range shift(int delta) { 51 return new Range(start + delta, end + delta); 52 } 53 clone()54 public Range clone() { 55 return new Range(start, end); 56 } 57 58 @Override hashCode()59 public int hashCode() { 60 final int prime = 31; 61 int result = 1; 62 long temp; 63 temp = Double.doubleToLongBits(start); 64 result = prime * result + (int) (temp ^ (temp >>> 32)); 65 temp = Double.doubleToLongBits(end); 66 result = prime * result + (int) (temp ^ (temp >>> 32)); 67 return result; 68 } 69 70 @Override equals(Object obj)71 public boolean equals(Object obj) { 72 if (this == obj) return true; 73 if (!(obj instanceof Range)) return false; 74 Range it = (Range) obj; 75 return start == it.start && end == it.end; 76 } 77 78 @Override toString()79 public String toString() { 80 return "[" + start + ", " + end + ")"; 81 } 82 } 83