Normand Briere
2019-07-18 d7a17c35c443e2cb6c09eaa3cfeaf590a571faa1
Torus.java
....@@ -2,6 +2,8 @@
22
33 class Torus extends Biparam implements java.io.Serializable
44 {
5
+ //static final long serialVersionUID = -7637054329820073252L;
6
+
57 Torus()
68 {
79 inPnt = new cVector();
....@@ -61,16 +63,25 @@
6163 if (v == 1)
6264 v = 0;
6365
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;
6876 if (Math.abs(y) < 1E-10)
6977 y = 0; // hashtable issue
70
- double z = (double)Math.sin(uAng) * (major + (double)Math.cos(vAng) * minor);
78
+
79
+ double z = sinua * radius;
7180 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
+
7485 cVector tNorm = LA.newVector(xx, y, zz);
7586 Vertex temp = new Vertex(tPos);
7687 //temp.pos = tPos; // useless new
....@@ -167,13 +178,13 @@
167178 return true;
168179 }
169180
170
- void doEditDrag(ClickInfo info)
181
+ void doEditDrag(ClickInfo info, boolean opposite)
171182 {
172183 if (hitSomething == 0)
173184 return;
174185 if (hitSomething == 1)
175186 {
176
- super.doEditDrag(info);
187
+ super.doEditDrag(info, opposite);
177188 return;
178189 }
179190 double deltaR = info.x - startX;