.. | .. |
---|
2 | 2 | |
---|
3 | 3 | class Torus extends Biparam implements java.io.Serializable |
---|
4 | 4 | { |
---|
| 5 | + //static final long serialVersionUID = -7637054329820073252L; |
---|
| 6 | + |
---|
5 | 7 | Torus() |
---|
6 | 8 | { |
---|
7 | 9 | inPnt = new cVector(); |
---|
.. | .. |
---|
61 | 63 | if (v == 1) |
---|
62 | 64 | v = 0; |
---|
63 | 65 | |
---|
64 | | - double uAng = LA.toRadians((1-u) * 360); |
---|
65 | | - double vAng = LA.toRadians(v * 360); |
---|
66 | | - double x = (double)Math.cos(uAng) * (major + (double)Math.cos(vAng) * minor); |
---|
67 | | - double y = (double)Math.sin(vAng) * minor; |
---|
| 66 | + double uAng = u * 2 * Math.PI; |
---|
| 67 | + double vAng = v * 2 * Math.PI; |
---|
| 68 | + double cosua = Math.cos(uAng); |
---|
| 69 | + double sinua = Math.sin(uAng); |
---|
| 70 | + double cosva = Math.cos(vAng); |
---|
| 71 | + double sinva = Math.sin(vAng); |
---|
| 72 | + |
---|
| 73 | + double radius = (major + cosva * minor); |
---|
| 74 | + double x = cosua * radius; |
---|
| 75 | + double y = sinva * minor; |
---|
68 | 76 | if (Math.abs(y) < 1E-10) |
---|
69 | 77 | y = 0; // hashtable issue |
---|
70 | | - double z = (double)Math.sin(uAng) * (major + (double)Math.cos(vAng) * minor); |
---|
| 78 | + |
---|
| 79 | + double z = sinua * radius; |
---|
71 | 80 | cVector tPos = LA.newVector(x, y, z); |
---|
72 | | - double xx = (double)(Math.cos(uAng) * Math.cos(vAng)) * minor; |
---|
73 | | - double zz = (double)(Math.sin(uAng) * Math.cos(vAng)) * minor; |
---|
| 81 | + |
---|
| 82 | + double xx = cosua * cosva * minor; |
---|
| 83 | + double zz = sinua * cosva * minor; |
---|
| 84 | + |
---|
74 | 85 | cVector tNorm = LA.newVector(xx, y, zz); |
---|
75 | 86 | Vertex temp = new Vertex(tPos); |
---|
76 | 87 | //temp.pos = tPos; // useless new |
---|
.. | .. |
---|
167 | 178 | return true; |
---|
168 | 179 | } |
---|
169 | 180 | |
---|
170 | | - void doEditDrag(ClickInfo info) |
---|
| 181 | + void doEditDrag(ClickInfo info, boolean opposite) |
---|
171 | 182 | { |
---|
172 | 183 | if (hitSomething == 0) |
---|
173 | 184 | return; |
---|
174 | 185 | if (hitSomething == 1) |
---|
175 | 186 | { |
---|
176 | | - super.doEditDrag(info); |
---|
| 187 | + super.doEditDrag(info, opposite); |
---|
177 | 188 | return; |
---|
178 | 189 | } |
---|
179 | 190 | double deltaR = info.x - startX; |
---|