[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool Pencil.java, 1.6, 1.7 AbstractPencil.
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-07-19 12:04:20
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv7555/src/net/sourceforge/bprocessor/gl/tool Modified Files: Pencil.java AbstractPencil.java Log Message: Improved finish/continue logic in Pencil Index: Pencil.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/Pencil.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Pencil.java 5 May 2006 12:14:01 -0000 1.6 --- Pencil.java 19 Jul 2006 12:04:17 -0000 1.7 *************** *** 14,18 **** import net.sourceforge.bprocessor.gl.GLView; - import net.sourceforge.bprocessor.gl.model.Intersection; import net.sourceforge.bprocessor.model.Edge; --- 14,17 ---- *************** *** 74,90 **** start = current; } else { - Edge edge = new Edge(start.vertex(), current.vertex()); - List edges = new LinkedList(); - edges.add(edge); - insertEdges(edges); - hooverEdge = edge; ! if (current.type() == Intersection.VERTEX ! || current.type() == Intersection.EDGE_MIDPOINT) { ! start = null; ! incident = null; } else { start = current; incident = null; } } --- 73,91 ---- start = current; } else { ! if (start.vertex().equalEps(current.vertex())) { ! cleanUp(); ! return; } else { + Edge edge = new Edge(start.vertex(), current.vertex()); + List edges = new LinkedList(); + edges.add(edge); + hooverEdge = edge; start = current; incident = null; + if (insertEdges(edges)) { + cleanUp(); + return; + } } } Index: AbstractPencil.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractPencil.java,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** AbstractPencil.java 19 Jul 2006 11:32:19 -0000 1.40 --- AbstractPencil.java 19 Jul 2006 12:04:17 -0000 1.41 *************** *** 198,205 **** Vertex from = insertVertex(edge.getFrom(), split); Vertex to = insertVertex(edge.getTo(), split); - if (from == to) { - log.error("Cannot insert edge: " + edge + " to and from vertices are the same"); - return null; - } edge.setFrom(from); edge.setTo(to); --- 198,201 ---- *************** *** 228,233 **** * Insert a number edges into the model * @param edges List of edges */ ! public void insertEdges(List edges) { if (!edges.isEmpty()) { Vertex from = ((Edge) edges.get(0)).getFrom(); --- 224,231 ---- * Insert a number edges into the model * @param edges List of edges + * @return Boolean indicating whether the edges are closed */ ! public boolean insertEdges(List edges) { ! boolean closed = false; if (!edges.isEmpty()) { Vertex from = ((Edge) edges.get(0)).getFrom(); *************** *** 240,252 **** Edge current = (Edge) iter.next(); Edge edge = insertEdge(current, false); ! if (edge != null) { ! actual.add(edge); ! } else { ! return; ! } } Surface surface = new Surface(actual); mesh().insert(surface); holeAnalysis(surface); } else { List actual = new LinkedList(); --- 238,247 ---- Edge current = (Edge) iter.next(); Edge edge = insertEdge(current, false); ! actual.add(edge); } Surface surface = new Surface(actual); mesh().insert(surface); holeAnalysis(surface); + closed = true; } else { List actual = new LinkedList(); *************** *** 255,269 **** Edge current = (Edge) iter.next(); Edge edge = insertEdge(current, true); ! if (edge != null) { ! actual.add(edge); ! } else { ! return; ! } } ! Geometry.insert(actual); } } Project.getInstance().changed(Project.getInstance()); Project.getInstance().checkpoint(); } --- 250,261 ---- Edge current = (Edge) iter.next(); Edge edge = insertEdge(current, true); ! actual.add(edge); } ! closed = Geometry.insert(actual); } } Project.getInstance().changed(Project.getInstance()); Project.getInstance().checkpoint(); + return closed; } |