[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Geometry.java, 1.33, 1.34 Space.java
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-10-19 15:29:00
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv2634/src/net/sourceforge/bprocessor/model Modified Files: Geometry.java Space.java Log Message: Improved geometry insertion Index: Space.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Space.java,v retrieving revision 1.83 retrieving revision 1.84 diff -C2 -d -r1.83 -r1.84 *** Space.java 19 Oct 2006 09:56:21 -0000 1.83 --- Space.java 19 Oct 2006 15:28:51 -0000 1.84 *************** *** 621,630 **** */ public Edge insert(Edge edge) { ! if (edge.getLength() == 0) { ! return null; } Vertex from = insert(edge.getFrom()); Vertex to = insert(edge.getTo()); edge.setFrom(from); edge.setTo(to); --- 621,634 ---- */ public Edge insert(Edge edge) { ! if (edge.getOwner() == this) { ! return edge; } Vertex from = insert(edge.getFrom()); Vertex to = insert(edge.getTo()); + if (from == to) { + return null; + } + edge.setFrom(from); edge.setTo(to); Index: Geometry.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Geometry.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** Geometry.java 19 Oct 2006 09:56:21 -0000 1.33 --- Geometry.java 19 Oct 2006 15:28:51 -0000 1.34 *************** *** 178,187 **** /** ! * Insert the list of edges in the model by splitting ! * surfaces etc. * @param edges The list of edges * @return a list of the surfaces created */ ! public static List insert(List edges) { List result = new LinkedList(); Edge first = (Edge) edges.get(0); --- 178,186 ---- /** ! * Find surfaces formed by a sequence of newly inserted edges * @param edges The list of edges * @return a list of the surfaces created */ ! public static List surfaceAnalysis(List edges) { List result = new LinkedList(); Edge first = (Edge) edges.get(0); *************** *** 762,779 **** Space space = Project.getInstance().getActiveSpace(); List result = new LinkedList(); ! if (!edges.isEmpty()) { ! Vertex v = Edge.commonVertex((Edge) edges.get(0), (Edge) edges.get(edges.size() - 1)); ! if (v != null && edges.size() > 2) { ! List actual = new LinkedList(); ! Iterator iter = edges.iterator(); ! while (iter.hasNext()) { ! Edge current = (Edge) iter.next(); ! Edge edge = space.insert(current); ! if (edge != null) { ! actual.add(edge); ! } } ! if (actual.size() > 2) { ! Surface surface = new Surface(actual); result.add(surface); space.add(surface); --- 761,781 ---- Space space = Project.getInstance().getActiveSpace(); List result = new LinkedList(); ! List actual = new LinkedList(); ! { ! Iterator iter = edges.iterator(); ! while (iter.hasNext()) { ! Edge current = (Edge) iter.next(); ! Edge edge = space.insert(current); ! if (edge != null) { ! actual.add(edge); } ! } ! } ! if (!actual.isEmpty()) { ! Vertex v = Edge.commonVertex((Edge) actual.get(0), (Edge) actual.get(actual.size() - 1)); ! if (v != null && actual.size() > 2) { ! Surface surface = new Surface(actual); ! Surface existing = space.findSurface(surface); ! if (existing == null) { result.add(surface); space.add(surface); *************** *** 781,794 **** } } else { ! List actual = new LinkedList(); ! Iterator iter = edges.iterator(); ! while (iter.hasNext()) { ! Edge current = (Edge) iter.next(); ! Edge edge = space.insert(current); ! if (edge != null) { ! actual.add(edge); ! } ! } ! result.addAll(insert(actual)); } } --- 783,787 ---- } } else { ! result.addAll(surfaceAnalysis(actual)); } } |