Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv30185/src/net/sourceforge/bprocessor/model
Modified Files:
Vertex.java Plane.java
Log Message:
Refactoring of coordinate system computation in protractor
Index: Vertex.java
===================================================================
RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Vertex.java,v
retrieving revision 1.70
retrieving revision 1.71
diff -C2 -d -r1.70 -r1.71
*** Vertex.java 13 Nov 2007 12:40:19 -0000 1.70
--- Vertex.java 22 Nov 2007 10:12:49 -0000 1.71
***************
*** 22,25 ****
--- 22,34 ----
public class Vertex extends Geometric implements Parametric {
private static Logger log = Logger.getLogger(Vertex.class);
+
+ /** X component in a double-array */
+ public static final int X = 0;
+
+ /** Y component in a double-array */
+ public static final int Y = 1;
+
+ /** Z component in a double-array */
+ public static final int Z = 2;
/** The x coordinate */
***************
*** 202,205 ****
--- 211,236 ----
return result;
}
+
+ /**
+ * Return X, Y or Z based on
+ * which of the coefficients a, b and c are the largest
+ * @return Index indicating the largest coefficient
+ */
+ public int largestCoefficient() {
+ int result = X;
+ double coefficient = Math.abs(x);
+
+ if (Math.abs(y) > coefficient) {
+ result = Y;
+ coefficient = Math.abs(y);
+ }
+
+ if (Math.abs(z) > coefficient) {
+ result = Z;
+ }
+
+ return result;
+ }
+
/**
* Return a copy of this Vertex
Index: Plane.java
===================================================================
RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Plane.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** Plane.java 15 Nov 2007 07:17:28 -0000 1.33
--- Plane.java 22 Nov 2007 10:12:49 -0000 1.34
***************
*** 36,48 ****
private double d;
- /** X component in a double-array */
- public static final int X = 0;
-
- /** Y component in a double-array */
- public static final int Y = 1;
-
- /** Z component in a double-array */
- public static final int Z = 2;
-
/**
--- 36,39 ----
***************
*** 259,275 ****
*/
public int largestCoefficient() {
! int result = X;
! double coefficient = Math.abs(a);
!
! if (Math.abs(b) > coefficient) {
! result = Y;
! coefficient = Math.abs(b);
! }
!
! if (Math.abs(c) > coefficient) {
! result = Z;
! }
!
! return result;
}
--- 250,255 ----
*/
public int largestCoefficient() {
! Vertex normal = new Vertex(a, b, c);
! return normal.largestCoefficient();
}
***************
*** 283,292 ****
double[] vector = new double[3];
double[] values = getDoublev();
! vector[X] = 0;
! vector[Y] = 0;
! vector[Z] = 0;
int index = largestCoefficient();
vector[index] = -d / values[index];
! return new Vertex(vector[X], vector[Y], vector[Z]);
}
--- 263,272 ----
double[] vector = new double[3];
double[] values = getDoublev();
! vector[Vertex.X] = 0;
! vector[Vertex.Y] = 0;
! vector[Vertex.Z] = 0;
int index = largestCoefficient();
vector[index] = -d / values[index];
! return new Vertex(vector[Vertex.X], vector[Vertex.Y], vector[Vertex.Z]);
}
***************
*** 302,312 ****
Vertex j = null;
! if (index == X) {
i = new Vertex(0, 1, 0);
}
! if (index == Y) {
i = new Vertex(1, 0, 0);
}
! if (index == Z) {
i = new Vertex(1, 0, 0);
}
--- 282,292 ----
Vertex j = null;
! if (index == Vertex.X) {
i = new Vertex(0, 1, 0);
}
! if (index == Vertex.Y) {
i = new Vertex(1, 0, 0);
}
! if (index == Vertex.Z) {
i = new Vertex(1, 0, 0);
}
|