[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Edge.java, 1.111, 1.112 Geometry.jav
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2010-02-05 13:32:59
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv4431/src/net/sourceforge/bprocessor/model Modified Files: Edge.java Geometry.java Line.java Camera.java Geometric.java Project.java Persistence.java CoordinateSystem.java Log Message: Index: CoordinateSystem.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/CoordinateSystem.java,v retrieving revision 1.77 retrieving revision 1.78 diff -C2 -d -r1.77 -r1.78 *** CoordinateSystem.java 25 Jun 2009 22:17:30 -0000 1.77 --- CoordinateSystem.java 5 Feb 2010 13:32:50 -0000 1.78 *************** *** 102,119 **** */ public static CoordinateSystem systemFor(Geometric geometric) { ! if (geometric instanceof Surface) { return systemFor((Surface) geometric); } else { ! return new CoordinateSystem(geometric.center().copy()); } } ! /** ! * Returns a CoordinateSystem for the given surface. ! * @param surface The surface to return a CoordinateSystem for. ! * @return A CoordinateSystem for the given surface. ! */ ! public static CoordinateSystem systemFor(Surface surface) { ! return surface.coordinateSystem(); } --- 102,155 ---- */ public static CoordinateSystem systemFor(Geometric geometric) { ! if (geometric instanceof Vertex) { ! return systemFor((Vertex) geometric); ! } else if (geometric instanceof Surface) { return systemFor((Surface) geometric); + } else if (geometric instanceof CoordinateSystem) { + return (CoordinateSystem) geometric; + } else if (geometric instanceof Instance) { + Instance instance = (Instance) geometric; + return instance.getAnchor(); } else { ! CoordinateSystem active = Project.getInstance().getActiveCoordinateSystem(); ! return active.copy(geometric.center()); } } ! private static CoordinateSystem systemFor(Vertex vertex) { ! Collection<Edge> edges = vertex.getEdges(); ! if (edges.size() == 0) { ! CoordinateSystem active = Project.getInstance().getActiveCoordinateSystem(); ! return active.copy(vertex.copy()); ! } else { ! double x = 0; ! double y = 0; ! double z = 0; ! for (Edge current : edges) { ! Vertex other = current.otherVertex(vertex); ! Vertex v = other.minus(vertex); ! x += v.getX(); ! y += v.getY(); ! z += v.getZ(); ! } ! x /= edges.size(); ! y /= edges.size(); ! z /= edges.size(); ! Vertex n = new Vertex(-x, -y, -z); ! Edge edge = edges.iterator().next(); ! Vertex other = edge.otherVertex(vertex); ! ! Vertex v = other.minus(vertex); ! Vertex i = n.cross(v); ! Vertex j = n.cross(i); ! Vertex o = vertex.copy(); ! return new CoordinateSystem(i, j, n, o); ! } ! } ! ! private static CoordinateSystem systemFor(Surface surface) { ! Vertex normal = surface.normal(); ! Vertex origin = surface.center(); ! return CoordinateSystem.systemFor(origin, normal); } Index: Persistence.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Persistence.java,v retrieving revision 1.85 retrieving revision 1.86 diff -C2 -d -r1.85 -r1.86 *** Persistence.java 13 Jan 2010 10:58:34 -0000 1.85 --- Persistence.java 5 Feb 2010 13:32:50 -0000 1.86 *************** *** 788,792 **** Iterator iter = ids.iterator(); while (iter.hasNext()) { ! set.add(map.get((Long) iter.next())); } return set; --- 788,798 ---- Iterator iter = ids.iterator(); while (iter.hasNext()) { ! Long id = (Long) iter.next(); ! Object object = map.get(id); ! if (object != null) { ! set.add(object); ! } else { ! System.out.println("surface " + id + " not found"); ! } } return set; Index: Edge.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Edge.java,v retrieving revision 1.111 retrieving revision 1.112 diff -C2 -d -r1.111 -r1.112 *** Edge.java 25 Jun 2009 22:17:30 -0000 1.111 --- Edge.java 5 Feb 2010 13:32:50 -0000 1.112 *************** *** 1106,1110 **** Map<Vertex, Edge> sideMap = new HashMap<Vertex, Edge>(); Map<Edge, Edge> topMap = new HashMap<Edge, Edge>(); ! Set<Vertex> vertexes = Geometry.collect(edges); // generate new vertexes and edges to them --- 1106,1110 ---- Map<Vertex, Edge> sideMap = new HashMap<Vertex, Edge>(); Map<Edge, Edge> topMap = new HashMap<Edge, Edge>(); ! Set<Vertex> vertexes = Geometric.collect(edges); // generate new vertexes and edges to them Index: Project.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Project.java,v retrieving revision 1.183 retrieving revision 1.184 diff -C2 -d -r1.183 -r1.184 *** Project.java 27 Nov 2009 13:35:26 -0000 1.183 --- Project.java 5 Feb 2010 13:32:50 -0000 1.184 *************** *** 1929,1932 **** --- 1929,1955 ---- printer.println("</Object>"); } + + for (Item current : world.getElements()) { + if (current instanceof Instance) { + Instance instance = (Instance) current; + Space proto = instance.getProto(); + if (proto.getName().equals("Light")) { + String value = "<Light" + + " id=\"" + instance.getId() + "\"" + + " name=\"" + instance.getName() + "\"" + + ">"; + printer.println(value); + Vertex origin = instance.getAnchor().getOrigin(); + String str = " <position" + + " x=\"" + origin.getX() + "\"" + + " y=\"" + origin.getY() + "\"" + + " z=\"" + origin.getZ() + "\"" + + "/>"; + printer.println(str); + printer.println("</Light>"); + } + } + } + printer.println("</Scene"); out.close(); Index: Camera.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Camera.java,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** Camera.java 27 Nov 2009 13:35:26 -0000 1.61 --- Camera.java 5 Feb 2010 13:32:50 -0000 1.62 *************** *** 457,461 **** */ public void zoomOn(Collection<? extends Geometric> c, double aspect, double d) { ! Set<Vertex> all = Geometry.collect(c); if (!all.isEmpty()) { --- 457,461 ---- */ public void zoomOn(Collection<? extends Geometric> c, double aspect, double d) { ! Set<Vertex> all = Geometric.collect(c); if (!all.isEmpty()) { Index: Geometry.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Geometry.java,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -d -r1.73 -r1.74 *** Geometry.java 25 Jun 2009 22:17:29 -0000 1.73 --- Geometry.java 5 Feb 2010 13:32:50 -0000 1.74 *************** *** 355,413 **** return insertEdges(space, edges); } - - /** - * Collect all vertices from a collection of geometrics - * @param geometrics Collection of objects - * @return Set of vertices - */ - public static Set<Vertex> collect(Collection geometrics) { - Iterator it = geometrics.iterator(); - Set<Vertex> result = new HashSet<Vertex>(); - while (it.hasNext()) { - Object o = it.next(); - if (o instanceof Geometric) { - result.addAll(((Geometric)o).collect()); - } - } - return result; - } - - /** - * Collect all vertices from a collection of objects - * @param objects Collection of objects - * @param vertices Set of vertices - */ - public static void collect(Collection objects, Set vertices) { - Iterator iter = objects.iterator(); - while (iter.hasNext()) { - Object current = iter.next(); - collect(current, vertices); - } - } - - /** - * Collect vertices from object - * @param o The object - * @param vertices The vertices - */ - public static void collect(Object o, Set vertices) { - if (o instanceof Vertex) { - vertices.add(o); - } else if (o instanceof Edge) { - Edge edge = (Edge) o; - vertices.add(edge.getFrom()); - vertices.add(edge.getTo()); - } else if (o instanceof Surface) { - Surface surface = (Surface) o; - vertices.addAll(surface.getVertices()); - for (Surface current : surface.getHoles()) { - collect(current, vertices); - } - } else if (o instanceof ClippingPlane) { - ClippingPlane plane = (ClippingPlane) o; - vertices.add(plane.center()); - } - } - /** --- 355,358 ---- *************** *** 536,540 **** edges.addAll(s.getEdges()); } ! vertices.addAll(Geometry.collect(edges)); allPossibleCollapses(vertices); allEdgeCollapses(edges); --- 481,485 ---- edges.addAll(s.getEdges()); } ! vertices.addAll(Geometric.collect(edges)); allPossibleCollapses(vertices); allEdgeCollapses(edges); *************** *** 810,814 **** * @return a set of extendable edges */ ! private static List<Edge> firstExtendList(Set<Edge> edges) { List<Edge> extendable = new LinkedList<Edge>(); for (Edge e : edges) { --- 755,759 ---- * @return a set of extendable edges */ ! private static List<Edge> firstExtendList(Set<Edge> edges) { List<Edge> extendable = new LinkedList<Edge>(); for (Edge e : edges) { *************** *** 894,898 **** public static void unTranslateGeometry(Collection<? extends Geometric> geometry, CoordinateSystem system) { ! system.unTranslateIt(collect(geometry)); } --- 839,843 ---- public static void unTranslateGeometry(Collection<? extends Geometric> geometry, CoordinateSystem system) { ! system.unTranslateIt(Geometric.collect(geometry)); } Index: Line.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Line.java,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** Line.java 17 Dec 2007 13:09:15 -0000 1.39 --- Line.java 5 Feb 2010 13:32:50 -0000 1.40 *************** *** 11,14 **** --- 11,15 ---- import java.util.LinkedList; import java.util.List; + import java.util.Set; import org.apache.log4j.Logger; *************** *** 76,79 **** --- 77,89 ---- this.direction = dir; } + + /** + * {@inheritDoc} + */ + public Set<Vertex> collect() { + Set<Vertex> result = super.collect(); + result.addAll(handles(1.0)); + return result; + } /** {@inheritDoc} */ Index: Geometric.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Geometric.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** Geometric.java 25 Jun 2009 22:17:30 -0000 1.24 --- Geometric.java 5 Feb 2010 13:32:50 -0000 1.25 *************** *** 59,62 **** --- 59,77 ---- /** + * Collect all vertices from a collection of geometrics + * @param geometrics Collection of objects + * @return Set of vertices + */ + public static Set<Vertex> collect(Collection<? extends Geometric> geometrics) { + Set<Vertex> result = new HashSet<Vertex>(); + for (Geometric current : geometrics) { + result.addAll((current).collect()); + } + return result; + } + + + + /** * Get the space * @return The space |