[Bprocessor-commit] /model/src/net/sourceforge/bprocessor/model TransformStack.java, 1.4, 1.5 Trans
Status: Pre-Alpha
Brought to you by:
henryml
Update of /cvsroot/bprocessor//model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv22801/src/net/sourceforge/bprocessor/model Modified Files: TransformStack.java Translate.java Rotate.java AxisRotate.java Scale.java IDTransform.java Transform.java Log Message: Added a untransform method on transform object and therefore the classes extending it. Index: Rotate.java =================================================================== RCS file: /cvsroot/bprocessor//model/src/net/sourceforge/bprocessor/model/Rotate.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Rotate.java 9 Nov 2007 09:45:25 -0000 1.6 --- Rotate.java 12 Nov 2007 07:42:51 -0000 1.7 *************** *** 145,147 **** --- 145,164 ---- return "Rotate"; } + + /** {@inheritDoc} */ + @Override + public Vertex untransform(Vertex vertex) { + Matrix matrix = Matrix.rotation(-rx, 1, 0, 0); + double values[] = new double[4]; + values[0] = vertex.getX(); + values[1] = vertex.getY(); + values[2] = vertex.getZ(); + values[3] = 1; + values = matrix.multiply(values); + matrix = Matrix.rotation(-ry, 0, 1, 0); + values = matrix.multiply(values); + matrix = Matrix.rotation(-rz, 0, 0, 1); + values = matrix.multiply(values); + return new Vertex(values[0], values[1], values[2]); + } } Index: Transform.java =================================================================== RCS file: /cvsroot/bprocessor//model/src/net/sourceforge/bprocessor/model/Transform.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Transform.java 28 Nov 2006 15:39:28 -0000 1.4 --- Transform.java 12 Nov 2007 07:42:51 -0000 1.5 *************** *** 32,34 **** --- 32,41 ---- return getGeneralName(); } + + /** + * untransform out of transfromation + * @param vertex the vertex to untransform + * @return the untransformed vertex + */ + public abstract Vertex untransform(Vertex vertex); } Index: Translate.java =================================================================== RCS file: /cvsroot/bprocessor//model/src/net/sourceforge/bprocessor/model/Translate.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Translate.java 9 Nov 2007 09:45:25 -0000 1.5 --- Translate.java 12 Nov 2007 07:42:51 -0000 1.6 *************** *** 137,139 **** --- 137,152 ---- return "Translate"; } + + /** + * make the inverse transfromation + * @param vertex the vertex to untransform + * @return the untransformed vertex + */ + @Override + public Vertex untransform(Vertex vertex) { + double x = vertex.getX() - tx; + double y = vertex.getY() - ty; + double z = vertex.getZ() - tz; + return new Vertex(x, y, z); + } } Index: TransformStack.java =================================================================== RCS file: /cvsroot/bprocessor//model/src/net/sourceforge/bprocessor/model/TransformStack.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TransformStack.java 16 Apr 2007 15:55:22 -0000 1.4 --- TransformStack.java 12 Nov 2007 07:42:51 -0000 1.5 *************** *** 100,102 **** --- 100,112 ---- } + /** {@inheritDoc} */ + @Override + public Vertex untransform(Vertex vertex) { + for (int i = 0; i < stack.size(); i++) { + Transform current = (Transform) stack.get(i); + vertex = current.untransform(vertex); + } + return vertex; + } + } Index: AxisRotate.java =================================================================== RCS file: /cvsroot/bprocessor//model/src/net/sourceforge/bprocessor/model/AxisRotate.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** AxisRotate.java 9 Nov 2007 09:45:25 -0000 1.5 --- AxisRotate.java 12 Nov 2007 07:42:51 -0000 1.6 *************** *** 166,168 **** --- 166,181 ---- return "General Rotate"; } + + /** {@inheritDoc} */ + @Override + public Vertex untransform(Vertex vertex) { + Matrix matrix = Matrix.rotation(-angle, rx, ry, rz); + double values[] = new double[4]; + values[0] = vertex.getX(); + values[1] = vertex.getY(); + values[2] = vertex.getZ(); + values[3] = 1; + values = matrix.multiply(values); + return new Vertex(values[0], values[1], values[2]); + } } Index: IDTransform.java =================================================================== RCS file: /cvsroot/bprocessor//model/src/net/sourceforge/bprocessor/model/IDTransform.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IDTransform.java 16 Apr 2007 15:55:22 -0000 1.2 --- IDTransform.java 12 Nov 2007 07:42:51 -0000 1.3 *************** *** 49,51 **** --- 49,57 ---- return "ID"; } + + /** {@inheritDoc} */ + @Override + public Vertex untransform(Vertex vertex) { + return vertex; + } } Index: Scale.java =================================================================== RCS file: /cvsroot/bprocessor//model/src/net/sourceforge/bprocessor/model/Scale.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Scale.java 9 Nov 2007 09:45:25 -0000 1.6 --- Scale.java 12 Nov 2007 07:42:51 -0000 1.7 *************** *** 136,138 **** --- 136,147 ---- return "Scale"; } + + /** {@inheritDoc} */ + @Override + public Vertex untransform(Vertex vertex) { + double x = vertex.getX() * 1 / sx; + double y = vertex.getY() * 1 / sy; + double z = vertex.getZ() * 1 / sz; + return new Vertex(x, y, z); + } } |