[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Edge.java,1.8,1.9 Vertex.java,1.7,1.8
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2005-09-08 10:42:22
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15441/src/net/sourceforge/bprocessor/model Modified Files: Edge.java Vertex.java Surface.java Log Message: Implemented Surface.move, Edge.move, and Vertex.move Index: Surface.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Surface.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** Surface.java 8 Sep 2005 08:25:59 -0000 1.20 --- Surface.java 8 Sep 2005 10:42:14 -0000 1.21 *************** *** 8,16 **** import java.io.Serializable; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.HashSet; - import org.apache.log4j.Logger; --- 8,16 ---- import java.io.Serializable; + import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.HashSet; import org.apache.log4j.Logger; *************** *** 152,155 **** --- 152,193 ---- /** + * Return an ordered list of vertices around this Surface. + * The first and last point is the same point if the Surface + * is closed + * @return An ordered list of vertices around this Surface + */ + public List getVertices() { + ArrayList vertices = new ArrayList(); + List edges = getEdges(); + if (edges.size() == 1) { + Edge e0 = (Edge) edges.get(0); + vertices.add(e0.getFrom()); + vertices.add(e0.getTo()); + } else if (edges.size() > 1) { + // The first vertex must + // be the one that is NOT shared + // between e0 and e1 + Edge e0 = (Edge) edges.get(0); + Edge e1 = (Edge) edges.get(1); + Vertex current = null; + if (!e1.contains(e0.getFrom())) { + current = e0.getFrom(); + } + if (!e1.contains(e0.getTo())) { + current = e0.getTo(); + } + if (current != null) { + vertices.add(current); + Iterator iter = edges.iterator(); + while (iter.hasNext()) { + Edge edge = (Edge) iter.next(); + current = edge.otherVertex(current); + vertices.add(current); + } + } + } + return vertices; + } + /** * Get the inner surfaces * @return The inner surfaces *************** *** 197,200 **** --- 235,269 ---- /** + * Move this Surface and all inner surfaces a distance (dx, dy, dz) + * @param dx The x distance + * @param dy The y distance + * @param dz The z distance + */ + public void move(double dx, double dy, double dz) { + { + List vertices = getVertices(); + Vertex v0 = (Vertex) vertices.get(0); + v0.move(dx, dy, dz); + Iterator iter = vertices.iterator(); + while (iter.hasNext()) { + Vertex vertex = (Vertex) iter.next(); + if (vertex != v0) { + vertex.move(dx, dy, dz); + } + } + } + { + if (getInnerSurfaces() != null) { + Iterator iter = getInnerSurfaces().iterator(); + while (iter.hasNext()) { + Surface surface = (Surface) iter.next(); + surface.move(dx, dy, dz); + } + } + } + } + + + /** * Get the front Space * @return The space in front of the surfacespace *************** *** 318,321 **** --- 387,392 ---- return null; } + + /** Index: Edge.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Edge.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Edge.java 31 Aug 2005 10:30:15 -0000 1.8 --- Edge.java 8 Sep 2005 10:42:14 -0000 1.9 *************** *** 155,158 **** --- 155,178 ---- /** + * Test if a vertex is either from or to in this Edge + * @param v The vertex to test + * @return If the vertex is in this Edge + */ + public boolean contains(Vertex v) { + return (v == getFrom() || v == getTo()); + } + + /** + * Move the Edge a distance (dx, dy, dz) + * @param dx The x distance + * @param dy The y distance + * @param dz The z distance + */ + public void move(double dx, double dy, double dz) { + getFrom().move(dx, dy, dz); + getTo().move(dx, dy, dz); + } + + /** * Return the hash code of the object * @return The hash Index: Vertex.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Vertex.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Vertex.java 31 Aug 2005 08:33:17 -0000 1.7 --- Vertex.java 8 Sep 2005 10:42:14 -0000 1.8 *************** *** 266,269 **** --- 266,281 ---- return result; } + + /** + * Moves the Vertex a distance + * @param dx The x distance + * @param dy The y distance + * @param dz The z distance + */ + public void move(double dx, double dy, double dz) { + this.setX(getX() + dx); + this.setY(getY() + dy); + this.setZ(getZ() + dz); + } /** |