[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool AbstractPencil.java,1.21,1.22
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-04-05 10:49:14
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30905/src/net/sourceforge/bprocessor/gl/tool Modified Files: AbstractPencil.java Log Message: Improved handling of holes Index: AbstractPencil.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractPencil.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** AbstractPencil.java 5 Apr 2006 09:36:16 -0000 1.21 --- AbstractPencil.java 5 Apr 2006 10:49:09 -0000 1.22 *************** *** 108,114 **** * Insert a vertex into model * @param vertex Vertex * @return Vertex from model */ ! public Vertex insertVertex(Vertex vertex) { Space space = mesh(); --- 108,115 ---- * Insert a vertex into model * @param vertex Vertex + * @param split Split * @return Vertex from model */ ! public Vertex insertVertex(Vertex vertex, boolean split) { Space space = mesh(); *************** *** 131,141 **** if (actual.getOwner() == null) { mesh().add(actual); ! Set es = mesh().findEdge(actual); ! if (es.size() > 0) { ! Iterator iter = es.iterator(); ! while (iter.hasNext()) { ! Edge e = (Edge) iter.next(); ! if (!e.getConstructor()) { ! e.split(actual); } } --- 132,144 ---- if (actual.getOwner() == null) { mesh().add(actual); ! if (split) { ! Set es = mesh().findEdge(actual); ! if (es.size() > 0) { ! Iterator iter = es.iterator(); ! while (iter.hasNext()) { ! Edge e = (Edge) iter.next(); ! if (!e.getConstructor()) { ! e.split(actual); ! } } } *************** *** 149,158 **** * Insert an edge into model * @param edge Edge * @return Edge from model */ ! public Edge insertEdge(Edge edge) { Edge actual = edge; ! edge.setFrom(insertVertex(edge.getFrom())); ! edge.setTo(insertVertex(edge.getTo())); { Collection edges = mesh().getEdges(); --- 152,162 ---- * Insert an edge into model * @param edge Edge + * @param split Split * @return Edge from model */ ! public Edge insertEdge(Edge edge, boolean split) { Edge actual = edge; ! edge.setFrom(insertVertex(edge.getFrom(), split)); ! edge.setTo(insertVertex(edge.getTo(), split)); { Collection edges = mesh().getEdges(); *************** *** 181,199 **** */ public void insertEdges(List edges) { - Iterator iter = edges.iterator(); - List actual = new LinkedList(); - while (iter.hasNext()) { - Edge current = (Edge) iter.next(); - 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); mesh().insert(surface); holeAnalysis(surface); } else { Geometry.insert(actual); } --- 185,214 ---- */ public void insertEdges(List edges) { ! ! ! if (!edges.isEmpty()) { ! Vertex from = ((Edge) edges.get(0)).getFrom(); ! Vertex to = ((Edge) edges.get(edges.size() - 1)).getTo(); ! ! ! if (from == to) { + List actual = new LinkedList(); + Iterator iter = edges.iterator(); + while (iter.hasNext()) { + Edge current = (Edge) iter.next(); + actual.add(insertEdge(current, false)); + } Surface surface = new Surface(actual); mesh().insert(surface); holeAnalysis(surface); } else { + List actual = new LinkedList(); + Iterator iter = edges.iterator(); + while (iter.hasNext()) { + Edge current = (Edge) iter.next(); + actual.add(insertEdge(current, true)); + } Geometry.insert(actual); } |