Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv4485/src/net/sourceforge/bprocessor/model
Modified Files:
Surface.java Space.java
Log Message:
Fixed problems with hole-analysis accross space boundary
Index: Surface.java
===================================================================
RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Surface.java,v
retrieving revision 1.133
retrieving revision 1.134
diff -C2 -d -r1.133 -r1.134
*** Surface.java 31 Jan 2007 09:18:30 -0000 1.133
--- Surface.java 31 Jan 2007 10:51:08 -0000 1.134
***************
*** 799,802 ****
--- 799,803 ----
// spaces here.
boolean flip = false;
+ boolean inside = false;
if (exterior != null) {
***************
*** 807,810 ****
--- 808,812 ----
flip = true;
}
+ inside = exterior.getOwner() == getOwner();
}
***************
*** 812,816 ****
if (delta < 0) {
facemap[i].setBackDomain(getBackDomain());
! if (exterior != null) {
if (flip) {
facemap[i].setFrontDomain(exterior.getFrontDomain());
--- 814,818 ----
if (delta < 0) {
facemap[i].setBackDomain(getBackDomain());
! if (exterior != null && inside) {
if (flip) {
facemap[i].setFrontDomain(exterior.getFrontDomain());
***************
*** 821,825 ****
} else {
facemap[i].setFrontDomain(getFrontDomain());
! if (exterior != null) {
if (flip) {
facemap[i].setBackDomain(exterior.getBackDomain());
--- 823,827 ----
} else {
facemap[i].setFrontDomain(getFrontDomain());
! if (exterior != null && inside) {
if (flip) {
facemap[i].setBackDomain(exterior.getBackDomain());
Index: Space.java
===================================================================
RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Space.java,v
retrieving revision 1.118
retrieving revision 1.119
diff -C2 -d -r1.118 -r1.119
*** Space.java 30 Jan 2007 19:53:33 -0000 1.118
--- Space.java 31 Jan 2007 10:51:08 -0000 1.119
***************
*** 451,454 ****
--- 451,461 ----
public void clear() {
if (container) {
+ Collection<Surface> surfs = getSurfaces();
+ for (Surface surface : surfs) {
+ Surface exterior = surface.getExterior();
+ if (exterior != null) {
+ exterior.removeHole(surface);
+ }
+ }
vertices.clear();
nextVertexId = 1;
|