[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Space.java, 1.176, 1.177
Status: Pre-Alpha
Brought to you by:
henryml
From: rimestad <rim...@us...> - 2007-09-27 12:20:27
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv19579/src/net/sourceforge/bprocessor/model Modified Files: Space.java Log Message: Added automation to remove one surface if two have the same edge list. Made controlled extrude extrude to the boundary and not just close to it Index: Space.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Space.java,v retrieving revision 1.176 retrieving revision 1.177 diff -C2 -d -r1.176 -r1.177 *** Space.java 27 Sep 2007 10:44:51 -0000 1.176 --- Space.java 27 Sep 2007 12:20:27 -0000 1.177 *************** *** 2837,2842 **** --- 2837,2844 ---- } } + Collection<Edge> remaining = new HashSet<Edge>(); for (Collection<Edge> equivalence : equivalences) { Edge leader = equivalence.iterator().next(); + remaining.add(leader); for (Edge current : equivalence) { if (leader != current) { *************** *** 2845,2852 **** --- 2847,2873 ---- surface.replace(current, leader); } + remaining.remove(current); remove(current); } } } + for (Edge e : remaining) { + Collection<Surface> delete = new HashSet<Surface>(); + for (Surface s1 : e.getSurfaces()) { + for (Surface s2 : e.getSurfaces()) { + if (s1 != s2 && !(delete.contains(s1) || delete.contains(s2)) + && s1.getEdges().containsAll(s2.getEdges())) { + if (s1.id < s2.id) { + delete.add(s2); + } else { + delete.add(s1); + } + } + } + } + for (Surface s : delete) { + remove(s); + } + } } Project.getInstance().changed(Project.getInstance()); |