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());
|