[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Edge.java,1.36,1.37 Vertex.java,1.26,
Status: Pre-Alpha
Brought to you by:
henryml
From: rimestad <rim...@us...> - 2006-02-23 14:05:25
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv434/src/net/sourceforge/bprocessor/model Modified Files: Edge.java Vertex.java Direction.java Surface.java Log Message: Multiextrude work partially but is not activated yet... Edge and Vertex getAtt changed to not printing and Surface extrude changed a bit Index: Surface.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Surface.java,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -d -r1.73 -r1.74 *** Surface.java 6 Feb 2006 12:29:57 -0000 1.73 --- Surface.java 23 Feb 2006 14:05:13 -0000 1.74 *************** *** 8,15 **** --- 8,17 ---- import java.util.ArrayList; + import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; + import java.util.Map; import java.util.Set; import java.util.HashSet; *************** *** 341,347 **** */ public Surface extrude(double delta, Set sides) { Vertex normal = normal(); - normal.scale(delta); List vertices = getVertices(); --- 343,378 ---- */ public Surface extrude(double delta, Set sides) { + Map v2dir = new HashMap(); + Surface top = extrude(delta, sides, new HashMap(), new HashMap(), + new HashMap(), v2dir); + Collection c = v2dir.values(); + Iterator iter = c.iterator(); + while (iter.hasNext()) { + Object o = iter.next(); + if (o instanceof Direction) { + Direction d = (Direction)o; + Vertex dir = d.getDirection(); + log.info("The " + d.getVertex() + "were moved " + dir); + Vertex v = dir.copy(); + v.scale(delta); + d.getVertex().move(v.getX(), v.getY(), v.getZ()); + } + } + return top; + } + + /** + * Make the new vertices, edges and surfaces for extrusion + * @param delta the direction of extrusion + * @param sides Will contain the sides that are created + * @param e2e a edge to new extruded parallel edge map + * @param v2e a vertex to orthogonal edge map + * @param e2s a edge to extruded surface map + * @param v2dir a vertex to direction map + * @return The top in the extruded surface + */ + public Surface extrude(double delta, Set sides, Map e2e, Map v2e, Map e2s, Map v2dir) { Vertex normal = normal(); List vertices = getVertices(); *************** *** 365,393 **** for (int i = 0; i < n; i++) { ! vmap[i] = v[i].add(normal); getMesh().add(vmap[i]); } for (int i = 0; i < n; i++) { ! topmap[i] = new Edge(vmap[i], vmap[(i + 1) % n]); getMesh().add(topmap[i]); } for (int i = 0; i < n; i++) { ! sidemap[i] = new Edge(v[i], vmap[i]); getMesh().add(sidemap[i]); } for (int i = 0; i < n; i++) { ! Edge b = e[i]; ! Edge r = sidemap[i]; ! Edge l = sidemap[(i + 1) % n]; ! Edge t = topmap[i]; ! List newEdges = new LinkedList(); ! newEdges.add(r); ! newEdges.add(t); ! newEdges.add(l); ! newEdges.add(b); ! facemap[i] = new Surface(newEdges); getMesh().add(facemap[i]); sides.add(facemap[i]); --- 396,449 ---- for (int i = 0; i < n; i++) { ! if (v2dir.containsKey(v[i])) { ! Direction d = (Direction)v2dir.get(v[i]); ! vmap[i] = d.getVertex(); ! d.alterDirection(normal); ! log.info(v[i] + " direction altered to " + d); ! } else { ! log.info(v[i] + " direction of " + normal); ! vmap[i] = v[i].copy(); ! v2dir.put(v[i], new Direction(vmap[i], normal)); ! } getMesh().add(vmap[i]); } for (int i = 0; i < n; i++) { ! if (e2e.containsKey(e[i])) { ! log.info("The edge " + e[i] + " were allready there"); ! topmap[i] = (Edge)e2e.get(e[i]); ! } else { ! topmap[i] = new Edge(vmap[i], vmap[(i + 1) % n]); ! e2e.put(e[i], topmap[i]); ! } getMesh().add(topmap[i]); } for (int i = 0; i < n; i++) { ! if (v2e.containsKey(v[i])) { ! sidemap[i] = (Edge)v2e.get(v[i]); ! } else { ! sidemap[i] = new Edge(v[i], vmap[i]); ! v2e.put(v[i], sidemap[i]); ! } getMesh().add(sidemap[i]); } for (int i = 0; i < n; i++) { ! if (e2s.containsKey(e[i])) { ! facemap[i] = (Surface)e2s.get(e[i]); ! } else { ! Edge b = e[i]; ! Edge r = sidemap[i]; ! Edge l = sidemap[(i + 1) % n]; ! Edge t = topmap[i]; ! List newEdges = new LinkedList(); ! newEdges.add(r); ! newEdges.add(t); ! newEdges.add(l); ! newEdges.add(b); ! facemap[i] = new Surface(newEdges); ! e2s.put(b, facemap[i]); ! } getMesh().add(facemap[i]); sides.add(facemap[i]); Index: Edge.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Edge.java,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** Edge.java 17 Feb 2006 14:45:24 -0000 1.36 --- Edge.java 23 Feb 2006 14:05:13 -0000 1.37 *************** *** 454,458 **** Attribute a = (Attribute)iter.next(); if (a.getName().equals("Name")) { ! System.out.println(""); } else if (a.getName().equals("Length")) { setLength(((Double)a.getValue()).doubleValue()); --- 454,458 ---- Attribute a = (Attribute)iter.next(); if (a.getName().equals("Name")) { ! continue; } else if (a.getName().equals("Length")) { setLength(((Double)a.getValue()).doubleValue()); Index: Vertex.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Vertex.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** Vertex.java 11 Feb 2006 18:16:54 -0000 1.26 --- Vertex.java 23 Feb 2006 14:05:13 -0000 1.27 *************** *** 348,352 **** Attribute a = (Attribute)iter.next(); if (a.getName().equals("Name")) { ! System.out.println(""); } else if (a.getName().equals("X")) { setX(((Double)a.getValue()).doubleValue()); --- 348,352 ---- Attribute a = (Attribute)iter.next(); if (a.getName().equals("Name")) { ! continue; } else if (a.getName().equals("X")) { setX(((Double)a.getValue()).doubleValue()); Index: Direction.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Direction.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Direction.java 16 Feb 2006 21:02:20 -0000 1.12 --- Direction.java 23 Feb 2006 14:05:13 -0000 1.13 *************** *** 32,38 **** */ public void alterDirection(Vertex v) { ! Vertex sum = v.add(direction); ! double value = sum.dot(direction) / (direction.length() * direction.length()); ! direction.scale(value); } --- 32,48 ---- */ public void alterDirection(Vertex v) { ! Vertex slideDir = v.add(direction); ! double slideScale; ! Vertex vunit = v.copy(); ! vunit.scale(1 / v.length()); ! if (v.getX() != 0) { ! slideScale = v.getX() / (slideDir.dot(vunit) * vunit.getX()); ! } else if (v.getY() != 0) { ! slideScale = v.getY() / (slideDir.dot(vunit) * vunit.getY()); ! } else { ! slideScale = v.getZ() / (slideDir.dot(vunit) * vunit.getZ()); ! } ! direction = slideDir; ! direction.scale(slideScale); } *************** *** 64,66 **** --- 74,84 ---- this.vertex = vertex; } + + /** + * The string representation of the Direstion + * @return The string representation of the Direstion + */ + public String toString() { + return "[Direction] " + vertex + ", dir: " + direction; + } } |