[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Edge.java, 1.60, 1.61 Space.java, 1.
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-10-16 06:49:27
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv24556/src/net/sourceforge/bprocessor/model Modified Files: Edge.java Space.java Project.java Log Message: Fixed problems in Space.insert() Index: Space.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Space.java,v retrieving revision 1.81 retrieving revision 1.82 diff -C2 -d -r1.81 -r1.82 *** Space.java 14 Oct 2006 23:41:03 -0000 1.81 --- Space.java 16 Oct 2006 06:49:25 -0000 1.82 *************** *** 894,897 **** --- 894,918 ---- public Surface insert(Surface surface, boolean split) { List edges = surface.getEdges(); + + Collection vertices = this.getVertices(); + { + Iterator iter = vertices.iterator(); + while (iter.hasNext()) { + Vertex current = (Vertex) iter.next(); + Collection es = Edge.findEdge(edges, current); + Iterator esit = es.iterator(); + while (esit.hasNext()) { + Edge edge = (Edge) esit.next(); + System.out.println("split " + edge + " by " + current); + Collection rep = edge.split(current); + Iterator i = rep.iterator(); + Edge e1 = (Edge) i.next(); + Edge e2 = (Edge) i.next(); + System.out.println("replace " + edge + " with " + e1 + " and " + e2); + surface.replace(edge, e1, e2); + } + } + } + edges = surface.getEdges(); List actual = new LinkedList(); { *************** *** 918,921 **** --- 939,963 ---- add(surface); Geometry.holeAnalysis(surface); + } else { + Vertex n1 = shadow.normal(); + Vertex n2 = surface.normal(); + double dot = n1.dot(n2); + Space back; + Space front; + if (dot < 0) { + front = surface.getBackDomain(); + back = surface.getFrontDomain(); + } else { + front = surface.getFrontDomain(); + back = surface.getBackDomain(); + } + if (front != null) { + shadow.setFrontDomain(front); + } + if (back != null) { + shadow.setBackDomain(back); + } + surface.setFrontDomain(null); + surface.setBackDomain(null); } return shadow; *************** *** 1074,1087 **** */ public Set findEdge(Vertex vertex) { - Set result = new HashSet(); Collection edges = getEdges(); ! Iterator iter = edges.iterator(); ! while (iter.hasNext()) { ! Edge current = (Edge) iter.next(); ! if (current.coincides(vertex)) { ! result.add(current); ! } ! } ! return result; } --- 1116,1121 ---- */ public Set findEdge(Vertex vertex) { Collection edges = getEdges(); ! return Edge.findEdge(edges, vertex); } Index: Edge.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Edge.java,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** Edge.java 9 Oct 2006 13:12:37 -0000 1.60 --- Edge.java 16 Oct 2006 06:49:25 -0000 1.61 *************** *** 84,87 **** --- 84,105 ---- return vertices; } + + /** + * Find collection of edges that coincides with the vertex + * @param edges Collection of edges + * @param vertex Vertex + * @return Collection of edges that coincides + */ + public static Set findEdge(Collection edges, Vertex vertex) { + Set result = new HashSet(); + Iterator iter = edges.iterator(); + while (iter.hasNext()) { + Edge current = (Edge) iter.next(); + if (current.coincides(vertex)) { + result.add(current); + } + } + return result; + } /** *************** *** 324,339 **** public Collection split(Vertex vertex) { List added = new ArrayList(); ! // FIXME Why not split a strippled? ! if (!strippled) { ! Vertex from = getFrom(); ! Vertex to = getTo(); ! Edge e1 = new Edge(from, vertex); getOwner().add(e1); - added.add(e1); - Edge e2 = new Edge(vertex, to); getOwner().add(e2); - added.add(e2); - - Set surfaces = getSurfaces(); Iterator iter = surfaces.iterator(); --- 342,354 ---- public Collection split(Vertex vertex) { List added = new ArrayList(); ! Vertex from = getFrom(); ! Vertex to = getTo(); ! Edge e1 = new Edge(from, vertex); ! added.add(e1); ! Edge e2 = new Edge(vertex, to); ! added.add(e2); ! if (getOwner() != null) { getOwner().add(e1); getOwner().add(e2); Set surfaces = getSurfaces(); Iterator iter = surfaces.iterator(); *************** *** 438,442 **** t = (q.getZ() - p0.getZ()) / r.getZ(); } ! if ((t >= 0 && t <= 1)) { r.scale(t); Vertex p = p0.add(r).minus(q); --- 453,457 ---- t = (q.getZ() - p0.getZ()) / r.getZ(); } ! if ((t > 0 && t < 1)) { r.scale(t); Vertex p = p0.add(r).minus(q); Index: Project.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Project.java,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -d -r1.82 -r1.83 *** Project.java 13 Oct 2006 15:51:41 -0000 1.82 --- Project.java 16 Oct 2006 06:49:25 -0000 1.83 *************** *** 206,209 **** --- 206,210 ---- this.setActiveCoordinateSystem(cs); cs.setActive(true); + System.out.println("clearing"); changed(this); } |