[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Vertex.java, 1.70, 1.71 Plane.java,
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2007-11-22 10:12:46
|
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); } |