-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathRange.java
92 lines (89 loc) · 2.06 KB
/
Range.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
public class Range{
private double begin = 0.0;
private double end = 0.0;
private double begin2 = 0.0;
private double end2;
private double width = 0.0;
private double result = 0.0;
public Range(double start, double stop){
begin = start;
end = stop;
}
public boolean contains(double value){
if(value >= begin && value < end){
return true;
}
else{
return false;
}
}
public double getWidth(){
return Math.abs(begin - end);
}
public double getMin(){
return begin;
}
public double getMax(){
return end;
}
public Range intersection(Range other){
begin2 = other.getMin();
end2 = other.getMax();
if(begin == begin2 && end == end2){
Range g = new Range(begin2, end2);
return g;
}
else if(begin2 > begin && end2 < end){
Range g = new Range(begin2, end2);
return g;
}
else if(begin2 < begin && end2 > end){
Range g = new Range(begin, end);
return g;
}
else if(begin2 == begin && end2 > end){
return new Range(begin2, end);
}
else if(begin2 == begin && end2 < end){
Range g = new Range(begin2, end2);
return g;
}
else if(begin2 < begin && end2 == end){
Range g = new Range(begin, end2);
return g;
}
else if(begin2 > begin && end2 == end){
Range g = new Range(begin2, end2);
return g;
}
// Wrong if
else if(begin2 > begin && end < end2){
if(begin < end2 && begin2 < end && end2 - begin2 > begin)
{
Range g = new Range(begin2, end);
return g;
}
else if(begin < end2 && end < end2){
Range g = new Range(0.0,0.0);
return g;
}
else{
Range g = new Range(0.0, 0.0);
return g;
}
}
else if(begin2 < begin && end > end2){
Range g = new Range(begin, end2);
return g;
}
//
else if(begin2 > end || begin2 < begin){
Range g = new Range(0.0,0.0);
return g;
}
else{
Range g = new Range(0.0,0.0);
return g;
}
}
}