[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model SpaceAnalysis.java, 1.5, 1.6 Surface
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2007-09-27 13:22:25
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv12156/src/net/sourceforge/bprocessor/model Modified Files: SpaceAnalysis.java Surface.java Log Message: Improved space propagation Index: SpaceAnalysis.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/SpaceAnalysis.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** SpaceAnalysis.java 27 Sep 2007 10:44:14 -0000 1.5 --- SpaceAnalysis.java 27 Sep 2007 13:22:25 -0000 1.6 *************** *** 98,116 **** if (surfaces.size() > 1) { Surface selected = select(current, surfaces, surface, side); ! if (!mark.contains(selected)) { ! if (travel(surface, current) == travel(selected, current)) { ! if (side == 1) { ! selected.setBackDomain(surface.getFrontDomain()); ! } else { ! selected.setFrontDomain(surface.getBackDomain()); ! } ! queue.offer(new Element(selected, -side)); ! } else { ! if (side == 1) { ! selected.setFrontDomain(surface.getFrontDomain()); } else { ! selected.setBackDomain(surface.getBackDomain()); } - queue.offer(new Element(selected, side)); } } --- 98,118 ---- if (surfaces.size() > 1) { Surface selected = select(current, surfaces, surface, side); ! if (selected != null) { ! if (!mark.contains(selected)) { ! if (travel(surface, current) == travel(selected, current)) { ! if (side == 1) { ! selected.setBackDomain(surface.getFrontDomain()); ! } else { ! selected.setFrontDomain(surface.getBackDomain()); ! } ! queue.offer(new Element(selected, -side)); } else { ! if (side == 1) { ! selected.setFrontDomain(surface.getFrontDomain()); ! } else { ! selected.setBackDomain(surface.getBackDomain()); ! } ! queue.offer(new Element(selected, side)); } } } *************** *** 151,159 **** } } } } return selected; } - - } --- 153,190 ---- } } + Surface exterior = selected.getExterior(); + if (exterior != null) { + if (angle > Math.PI) { + angle = angle - Math.PI; + } else { + angle = angle + Math.PI; + } + if (side < 0) { + if (angle > maximum) { + selected = null; + maximum = angle; + } + } else { + if (angle < minimum) { + selected = null; + minimum = angle; + } + } + } + } + } + Surface exterior = leader.getExterior(); + if (exterior != null) { + if (side < 0) { + if (Math.PI > maximum) { + selected = null; + } + } else { + if (Math.PI < minimum) { + selected = null; + } } } return selected; } } Index: Surface.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Surface.java,v retrieving revision 1.182 retrieving revision 1.183 diff -C2 -d -r1.182 -r1.183 *** Surface.java 27 Sep 2007 10:47:09 -0000 1.182 --- Surface.java 27 Sep 2007 13:22:25 -0000 1.183 *************** *** 35,39 **** */ public class Surface extends Geometric implements Parametric { ! private static final long serialVersionUID = 1L; private static Logger log = Logger.getLogger(Surface.class); --- 35,39 ---- */ public class Surface extends Geometric implements Parametric { ! private static final boolean AUTOMATIC = false; private static Logger log = Logger.getLogger(Surface.class); *************** *** 685,690 **** // FIXME should return the sides instead of assigning // spaces here. ! assignSpaceForExtrusion(delta, n, facemap, top); ! return top; } --- 685,691 ---- // FIXME should return the sides instead of assigning // spaces here. ! if (AUTOMATIC) { ! assignSpaceForExtrusion(delta, n, facemap, top); ! } return top; } *************** *** 1479,1484 **** public void assignBack(Space back) { setBackDomain(back); ! SpaceAnalysis analysis = new SpaceAnalysis(); ! analysis.propagate(this, -1); } --- 1480,1487 ---- public void assignBack(Space back) { setBackDomain(back); ! if (!AUTOMATIC) { ! SpaceAnalysis analysis = new SpaceAnalysis(); ! analysis.propagate(this, -1); ! } } *************** *** 1504,1509 **** public void assignFront(Space front) { setFrontDomain(front); ! SpaceAnalysis analysis = new SpaceAnalysis(); ! analysis.propagate(this, 1); } --- 1507,1514 ---- public void assignFront(Space front) { setFrontDomain(front); ! if (!AUTOMATIC) { ! SpaceAnalysis analysis = new SpaceAnalysis(); ! analysis.propagate(this, 1); ! } } |