Angle.java
3.17 KB
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
* Decompiled with CFR 0_118.
*/
package com.adobe.xfa.ut;
import com.adobe.xfa.ut.ExFull;
import com.adobe.xfa.ut.ResId;
public final class Angle {
private static final int ANGLE_360_RESVALUE = 360000;
private static final int ANGLE_MAX_RESVALUE = 360000;
private static final int ANGLE_MIN_RESVALUE = 0;
public static final Angle ZERO = new Angle();
private final int mlResValue;
public Angle() {
this.mlResValue = 0;
}
public Angle(Angle source) {
this.mlResValue = source.mlResValue;
}
public Angle(double dDegrees) {
this.mlResValue = Angle.resolve(dDegrees);
}
public Angle(int nDegrees) {
this.mlResValue = Angle.resolve(nDegrees);
}
public Angle(long nDegrees) {
this.mlResValue = Angle.resolve(nDegrees);
}
public Angle(int value, boolean isResolved) {
this.mlResValue = isResolved ? value : Angle.resolve(value);
}
public Angle add(Angle oAdd) {
int lNewresValue = this.resValue() + oAdd.resValue();
if (lNewresValue > 360000) {
lNewresValue -= 360000;
}
return new Angle(lNewresValue, true);
}
public int degrees() {
return (int)Math.round((double)this.resValue() / 1000.0);
}
public boolean equals(Object object) {
if (this == object) {
return true;
}
if (object == null) {
return false;
}
if (object.getClass() != this.getClass()) {
return false;
}
return this.resValue() == ((Angle)object).resValue();
}
public int hashCode() {
int hash = 11;
return hash * 31 ^ this.resValue();
}
public double getAngle() {
return (double)this.resValue() / 1000.0;
}
public boolean gt(Angle compare) {
return this.resValue() > compare.resValue();
}
public boolean gte(Angle compare) {
return this.resValue() >= compare.resValue();
}
public boolean lt(Angle compare) {
return this.resValue() < compare.resValue();
}
public boolean lte(Angle compare) {
return this.resValue() <= compare.resValue();
}
private static int resolve(double value) {
if (value < 0.0 || value > 360000.0) {
throw new ExFull(ResId.ANGLE_ERR_RANGE);
}
return (int)(value * 1000.0);
}
private static int resolve(int value) {
if (value < 0 || value > 360000) {
throw new ExFull(ResId.ANGLE_ERR_RANGE);
}
return value * 1000;
}
private static int resolve(long value) {
if (value < 0 || value > 360000) {
throw new ExFull(ResId.ANGLE_ERR_RANGE);
}
return (int)(value * 1000);
}
private int resValue() {
return this.mlResValue;
}
public Angle subtract(Angle subtract) {
int lNewresValue = this.resValue() - subtract.resValue();
if (lNewresValue < 0) {
lNewresValue += 360000;
}
return new Angle(lNewresValue, true);
}
public String toString() {
return Double.toString(this.getAngle());
}
public static Angle zero() {
return ZERO;
}
}