[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool RectTool.java,1.1,1.2 AbstractPencil.j
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-03-16 14:35:06
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26234/src/net/sourceforge/bprocessor/gl/tool Modified Files: RectTool.java AbstractPencil.java Log Message: RectTool implemented Index: RectTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/RectTool.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** RectTool.java 15 Mar 2006 10:36:29 -0000 1.1 --- RectTool.java 16 Mar 2006 14:34:50 -0000 1.2 *************** *** 41,44 **** --- 41,88 ---- /** + * Create a rectangle + * @param start Start point + * @param end End point + * @return List of edges forming a rectangle + */ + List createRect(Vertex start, Vertex end) { + List edges = new LinkedList(); + + Vertex d = start.minus(end); + Vertex v1 = null; + Vertex v3 = null; + Vertex v2 = null; + Vertex v4 = null; + + if (Math.abs(d.getZ()) < 0.00001) { + v1 = start; + v3 = end; + v2 = new Vertex(v3.getX(), v1.getY(), v1.getZ()); + v4 = new Vertex(v1.getX(), v3.getY(), v3.getZ()); + } else if (Math.abs(d.getX()) < 0.00001) { + v1 = start; + v3 = end; + v2 = new Vertex(v3.getX(), v1.getY(), v3.getZ()); + v4 = new Vertex(v1.getX(), v3.getY(), v1.getZ()); + } else if (Math.abs(d.getY()) < 0.00001) { + v1 = start; + v3 = end; + v2 = new Vertex(v1.getX(), v1.getY(), v3.getZ()); + v4 = new Vertex(v3.getX(), v3.getY(), v1.getZ()); + } + if (v1 != null) { + Edge e1 = new Edge(v1, v2); + Edge e2 = new Edge(v2, v3); + Edge e3 = new Edge(v3, v4); + Edge e4 = new Edge(v4, v1); + edges.add(e1); + edges.add(e2); + edges.add(e3); + edges.add(e4); + } + return edges; + } + + /** * Update feedback * *************** *** 50,86 **** edge.setConstructor(true); edges.add(edge); ! ! Vertex d = start.vertex().minus(current.vertex()); ! Vertex v1 = null; ! Vertex v3 = null; ! Vertex v2 = null; ! Vertex v4 = null; ! ! if (Math.abs(d.getZ()) < 0.00001) { ! v1 = start.vertex(); ! v3 = current.vertex(); ! v2 = new Vertex(v3.getX(), v1.getY(), v1.getZ()); ! v4 = new Vertex(v1.getX(), v3.getY(), v3.getZ()); ! } else if (Math.abs(d.getX()) < 0.00001) { ! v1 = start.vertex(); ! v3 = current.vertex(); ! v2 = new Vertex(v3.getX(), v1.getY(), v3.getZ()); ! v4 = new Vertex(v1.getX(), v3.getY(), v1.getZ()); ! } else if (Math.abs(d.getY()) < 0.00001) { ! v1 = start.vertex(); ! v3 = current.vertex(); ! v2 = new Vertex(v1.getX(), v1.getY(), v3.getZ()); ! v4 = new Vertex(v3.getX(), v3.getY(), v1.getZ()); ! } ! if (v1 != null) { ! Edge e1 = new Edge(v1, v2); ! Edge e2 = new Edge(v2, v3); ! Edge e3 = new Edge(v3, v4); ! Edge e4 = new Edge(v4, v1); ! edges.add(e1); ! edges.add(e2); ! edges.add(e3); ! edges.add(e4); ! } feedback(edges); } else { --- 94,98 ---- edge.setConstructor(true); edges.add(edge); ! edges.addAll(createRect(start.vertex(), current.vertex())); feedback(edges); } else { *************** *** 107,110 **** --- 119,123 ---- start = current; } else { + insertEdges(createRect(start.vertex(), current.vertex())); start = null; } Index: AbstractPencil.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractPencil.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AbstractPencil.java 16 Mar 2006 12:58:42 -0000 1.4 --- AbstractPencil.java 16 Mar 2006 14:34:50 -0000 1.5 *************** *** 20,23 **** --- 20,24 ---- import net.sourceforge.bprocessor.model.Geometry; import net.sourceforge.bprocessor.model.Project; + import net.sourceforge.bprocessor.model.Surface; import net.sourceforge.bprocessor.model.Vertex; *************** *** 111,115 **** actual.add(insertEdge(current)); } ! Geometry.insert(actual); } --- 112,127 ---- actual.add(insertEdge(current)); } ! ! if (!actual.isEmpty()) { ! Vertex from = ((Edge) actual.get(0)).getFrom(); ! Vertex to = ((Edge) actual.get(edges.size() - 1)).getTo(); ! if (from == to) { ! Surface surface = new Surface(actual); ! Project.getInstance().add(surface); ! holeAnalysis(surface); ! } else { ! Geometry.insert(actual); ! } ! } } |