[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool AbstractPencil.java,1.3,1.4
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-03-16 12:58:45
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10202/src/net/sourceforge/bprocessor/gl/tool Modified Files: AbstractPencil.java Log Message: ArcTool now inserts edges into model (but they do not form an arc just yet) Index: AbstractPencil.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractPencil.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AbstractPencil.java 16 Mar 2006 09:43:50 -0000 1.3 --- AbstractPencil.java 16 Mar 2006 12:58:42 -0000 1.4 *************** *** 11,19 **** --- 11,23 ---- import java.util.HashSet; import java.util.Iterator; + import java.util.LinkedList; import java.util.List; + import java.util.Set; import net.sourceforge.bprocessor.gl.GLView; import net.sourceforge.bprocessor.gl.model.Intersection; import net.sourceforge.bprocessor.model.Edge; + import net.sourceforge.bprocessor.model.Geometry; + import net.sourceforge.bprocessor.model.Project; import net.sourceforge.bprocessor.model.Vertex; *************** *** 37,45 **** /** * Insert a number edges into the model * @param edges List of edges */ public void insertEdges(List edges) { ! } --- 41,115 ---- /** + * Insert a vertex into model + * @param vertex Vertex + * @return Vertex from model + */ + public Vertex insertVertex(Vertex vertex) { + Vertex actual = vertex; + { + Set vertices = Project.getInstance().findByLocation + (vertex.getX(), vertex.getY(), vertex.getZ(), 0.0000001); + if (!vertices.isEmpty()) { + actual = (Vertex) vertices.iterator().next(); + } + } + if (actual == vertex) { + Project.getInstance().add(actual); + Set es = Project.getInstance().findEdge(actual); + if (es.size() > 0) { + Iterator iter = es.iterator(); + while (iter.hasNext()) { + Edge e = (Edge) iter.next(); + if (!e.getConstructor()) { + e.split(actual); + } + } + } + } + return actual; + } + + /** + * 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 = Project.getInstance().getEdges(); + Iterator iter = edges.iterator(); + while (iter.hasNext()) { + Edge current = (Edge) iter.next(); + if (current.getFrom() == edge.getFrom() && current.getTo() == edge.getTo()) { + actual = current; + break; + } + if (current.getFrom() == edge.getTo() && current.getTo() == edge.getFrom()) { + actual = current; + break; + } + } + } + if (actual == edge) { + Project.getInstance().add(edge); + } + return actual; + } + + /** * Insert a number edges into the model * @param edges List of edges */ 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)); ! } ! Geometry.insert(actual); } |