[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool PencilTool.java,1.11,1.12
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2005-09-05 11:44:17
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22285/src/net/sourceforge/bprocessor/gl/tool Modified Files: PencilTool.java Log Message: More snapping in pencil Index: PencilTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/PencilTool.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** PencilTool.java 1 Sep 2005 08:33:58 -0000 1.11 --- PencilTool.java 5 Sep 2005 11:43:56 -0000 1.12 *************** *** 42,45 **** --- 42,48 ---- protected Vertex current = null; + /** The align vertex */ + protected Vertex alignVertex = null; + /** The edges */ *************** *** 76,79 **** --- 79,94 ---- /** + * Set the align vertex + * @param vertex The vertex + */ + protected void setAlignVertex(Vertex vertex) { + if (vertex != null) { + glv.getView().setAlignPoint(new double[]{vertex.getX(), vertex.getY(), vertex.getZ()}); + } else { + glv.getView().setAlignPoint(null); + } + alignVertex = vertex; + } + /** * Intern the surface * @param surface The surface *************** *** 94,97 **** --- 109,114 ---- void onVertex(Vertex vertex) { System.out.println(vertex); + + setAlignVertex(vertex); if (active == null) { edges = new ArrayList(); *************** *** 101,104 **** --- 118,122 ---- active = new Edge("E" + edgeNum++, from, to); glv.getView().setActiveEdge(active); + glv.getView().setSnapVertex(to); } else { // The following lines of code are there to make sure *************** *** 129,132 **** --- 147,152 ---- from = null; to = null; + setAlignVertex(null); + glv.getView().setSnapVertex(null); } } *************** *** 139,146 **** protected double round(double value) { int i = (int) value; ! if (Math.abs(i - value) < 0.2) { return Math.round(value); } else { ! return value; } } --- 159,195 ---- protected double round(double value) { int i = (int) value; ! if (Math.abs(i - value) < 0.3) { return Math.round(value); } else { ! return ((double) Math.round(value * 1000)) / 1000.0; ! } ! } ! ! ! /** ! * Snaps the vertex ! * @param vertex The vertex to snap ! */ ! protected void snap(Vertex vertex) { ! if (alignVertex != null) { ! if (Math.abs(alignVertex.getX() - vertex.getX()) < 0.3) { ! vertex.setX(alignVertex.getX()); ! } else { ! vertex.setX(round(current.getX())); ! } ! if (Math.abs(alignVertex.getY() - vertex.getY()) < 0.3) { ! vertex.setY(alignVertex.getY()); ! } else { ! vertex.setY(round(current.getY())); ! } ! if (Math.abs(alignVertex.getZ() - vertex.getZ()) < 0.3) { ! vertex.setZ(alignVertex.getZ()); ! } else { ! vertex.setZ(round(current.getZ())); ! } ! } else { ! vertex.setX(round(current.getX())); ! vertex.setY(round(current.getY())); ! vertex.setZ(round(current.getZ())); } } *************** *** 184,190 **** } if (current.getId() == null) { ! current.setX(round(current.getX())); ! current.setY(round(current.getY())); ! current.setZ(round(current.getZ())); } } --- 233,238 ---- } if (current.getId() == null) { ! snap(current); ! } } *************** *** 196,199 **** --- 244,248 ---- protected void pressed(MouseEvent e) { super.pressed(e); + findVertex(e); onVertex(current); } *************** *** 205,208 **** --- 254,258 ---- super.moved(e); findVertex(e); + if (to != null) { to.setX(current.getX()); |