bprocessor-commit Mailing List for B-processor (Page 101)
Status: Pre-Alpha
Brought to you by:
henryml
You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(12) |
Jul
(117) |
Aug
(151) |
Sep
(157) |
Oct
(81) |
Nov
(117) |
Dec
(119) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(183) |
Feb
(130) |
Mar
(117) |
Apr
(61) |
May
(82) |
Jun
(45) |
Jul
(149) |
Aug
(173) |
Sep
(199) |
Oct
(165) |
Nov
(107) |
Dec
(137) |
2007 |
Jan
(124) |
Feb
(58) |
Mar
(123) |
Apr
(80) |
May
(130) |
Jun
(64) |
Jul
(31) |
Aug
(42) |
Sep
(114) |
Oct
(167) |
Nov
(239) |
Dec
(200) |
2008 |
Jan
(43) |
Feb
(43) |
Mar
(4) |
Apr
(9) |
May
(5) |
Jun
(1) |
Jul
(3) |
Aug
(3) |
Sep
(13) |
Oct
(9) |
Nov
(12) |
Dec
|
2009 |
Jan
|
Feb
(20) |
Mar
(7) |
Apr
(12) |
May
(34) |
Jun
(72) |
Jul
|
Aug
(3) |
Sep
(31) |
Oct
(2) |
Nov
(8) |
Dec
(4) |
2010 |
Jan
(5) |
Feb
(32) |
Mar
(8) |
Apr
(7) |
May
(36) |
Jun
|
Jul
(11) |
Aug
(15) |
Sep
(7) |
Oct
(2) |
Nov
(13) |
Dec
(80) |
2011 |
Jan
|
Feb
|
Mar
(8) |
Apr
(12) |
May
(32) |
Jun
(9) |
Jul
(5) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
(8) |
2012 |
Jan
|
Feb
|
Mar
(3) |
Apr
(5) |
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(22) |
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: rimestad <rim...@us...> - 2006-09-18 14:51:22
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv17863/src/net/sourceforge/bprocessor/model Modified Files: Edge.java Surface.java Geometry.java Point.java Log Message: Made changes to extrude tool to use extend abstractpencil and therfore making escape work and modified offset to use Edge.offset and thereby giving way for offset of only a subset of edges... There are still some bugs to be fixed Index: Surface.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Surface.java,v retrieving revision 1.110 retrieving revision 1.111 diff -C2 -d -r1.110 -r1.111 *** Surface.java 17 Sep 2006 22:00:21 -0000 1.110 --- Surface.java 18 Sep 2006 14:10:07 -0000 1.111 *************** *** 1479,1481 **** --- 1479,1503 ---- } } + + /** + * Find the nearest intersection with a edge in the surface + * @param vertex the mouse position on the surface + * @return the nearest edge + */ + public Edge findClosestEdge(Vertex vertex) { + Iterator iter = getEdges().iterator(); + Vertex v = null; + Edge closest = null; + double distance = Double.MAX_VALUE; + while (iter.hasNext()) { + Edge cur = (Edge)iter.next(); + Vertex tmp = cur.intersection(vertex); + if (tmp.minus(vertex).length() < distance) { + distance = tmp.minus(vertex).length(); + v = tmp; + closest = cur; + } + } + return closest; + } } Index: Point.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Point.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Point.java 8 Sep 2006 13:25:59 -0000 1.9 --- Point.java 18 Sep 2006 14:10:07 -0000 1.10 *************** *** 84,86 **** --- 84,94 ---- return "P-" + getId(); } + + /** + * Generate a string of Point + * @return the textual repestation of Point + */ + public String toString() { + return "Point[" + getOrigin() + "]"; + } } Index: Geometry.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Geometry.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** Geometry.java 17 Sep 2006 17:29:25 -0000 1.26 --- Geometry.java 18 Sep 2006 14:10:07 -0000 1.27 *************** *** 842,849 **** boolean closed = false; if (!edges.isEmpty()) { ! Vertex from = ((Edge) edges.get(0)).getFrom(); ! Vertex to = ((Edge) edges.get(edges.size() - 1)).getTo(); ! ! if (from == to) { List actual = new LinkedList(); Iterator iter = edges.iterator(); --- 842,847 ---- boolean closed = false; if (!edges.isEmpty()) { ! Vertex v = Edge.commonVertex((Edge) edges.get(0), (Edge) edges.get(edges.size() - 1)); ! if (v != null && edges.size() > 2) { List actual = new LinkedList(); Iterator iter = edges.iterator(); Index: Edge.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Edge.java,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** Edge.java 7 Sep 2006 15:50:51 -0000 1.57 --- Edge.java 18 Sep 2006 14:10:07 -0000 1.58 *************** *** 15,18 **** --- 15,19 ---- import java.util.Iterator; import java.util.List; + import java.util.Map; import java.util.Set; *************** *** 541,545 **** return surfaces; } ! /** * Create a offset from a list of lines and a surface --- 542,546 ---- return surfaces; } ! /** * Create a offset from a list of lines and a surface *************** *** 553,559 **** */ public static List offset(List which, Surface inner, double offset) { HashSet edges = new HashSet(which); ArrayList res = new ArrayList(); ! HashMap directions = new HashMap(); HashMap to2edge = new HashMap(); HashMap from2edge = new HashMap(); --- 554,577 ---- */ public static List offset(List which, Surface inner, double offset) { + return offset(which, inner, offset, null); + } + + /** + * Create a offset from a list of lines and a surface + * PRECONDITION: all the edges have to be in the given surface and the edges + * in the surface have to be counter clockwise drawn. If the edges are drawn clockwise + * the offset will be negative outside and positive inside + * @param which The list of edges in inner that are going to be offset + * @param inner The surface + * @param offset The offset negative inside and positive outside + * @param directions The movement directions send a empty list to retrieve direction map + * @return The generated list of Edges + */ + public static List offset(List which, Surface inner, double offset, Map directions) { HashSet edges = new HashSet(which); ArrayList res = new ArrayList(); ! if (directions == null) { ! directions = new HashMap(); ! } HashMap to2edge = new HashMap(); HashMap from2edge = new HashMap(); *************** *** 581,585 **** v2v.put(to, e.getTo()); v2v.put(from, e.getFrom()); ! res.add(new Edge(to, from)); /*if (from2edge.containsKey(e.getFrom()) || prevEdge == null) { from2edge.put(e.getTo(), e); --- 599,603 ---- v2v.put(to, e.getTo()); v2v.put(from, e.getFrom()); ! res.add(new Edge(from, to)); /*if (from2edge.containsKey(e.getFrom()) || prevEdge == null) { from2edge.put(e.getTo(), e); *************** *** 670,674 **** while (diriter.hasNext()) { Direction cur = (Direction)diriter.next(); ! Vertex dir = cur.getDirection(); dir.scale(offset); cur.getVertex().move(dir.getX(), dir.getY(), dir.getZ()); --- 688,692 ---- while (diriter.hasNext()) { Direction cur = (Direction)diriter.next(); ! Vertex dir = cur.getDirection().copy(); dir.scale(offset); cur.getVertex().move(dir.getX(), dir.getY(), dir.getZ()); *************** *** 685,689 **** * @return The common vertex or null if none */ ! private static Vertex commonVertex(Edge e1, Edge e2) { if (e1 == null || e2 == null) { return null; --- 703,707 ---- * @return The common vertex or null if none */ ! public static Vertex commonVertex(Edge e1, Edge e2) { if (e1 == null || e2 == null) { return null; |
From: Nordholt <nor...@us...> - 2006-09-18 14:37:54
|
Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/treeview In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv29140/src/net/sourceforge/bprocessor/gui/treeview Modified Files: GenericTreeView.java Log Message: arranging modellors in a sub-menu Index: GenericTreeView.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/treeview/GenericTreeView.java,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** GenericTreeView.java 18 Sep 2006 08:19:20 -0000 1.44 --- GenericTreeView.java 18 Sep 2006 14:37:49 -0000 1.45 *************** *** 25,28 **** --- 25,29 ---- import javax.swing.ImageIcon; + import javax.swing.JMenu; import javax.swing.JOptionPane; import javax.swing.JPopupMenu; *************** *** 574,582 **** } }; ! pm.add(transform); ! // Adding all modellors Collection c = Modellor.getRegisteredModellors(); ! Iterator iter = c.iterator(); while (iter.hasNext()) { Modellor m = (Modellor)iter.next(); --- 575,583 ---- } }; ! pm.add(transform); // Adding all modellors + JMenu mm = new JMenu("Modellors"); Collection c = Modellor.getRegisteredModellors(); ! Iterator iter = c.iterator(); while (iter.hasNext()) { Modellor m = (Modellor)iter.next(); *************** *** 597,603 **** } }; ! pm.add(modellor); } ! } return pm; } --- 598,605 ---- } }; ! mm.add(modellor); } ! pm.add(mm); ! } return pm; } |
From: Nordholt <nor...@us...> - 2006-09-18 14:37:02
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/test In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv28743/src/net/sourceforge/bprocessor/model/test Modified Files: LineTest.java Log Message: added some testing of the intersection method Index: LineTest.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/test/LineTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** LineTest.java 24 Jul 2006 13:18:06 -0000 1.4 --- LineTest.java 18 Sep 2006 14:36:50 -0000 1.5 *************** *** 83,85 **** --- 83,115 ---- assertEquals(Math.toRadians(18.4349), line.degreesAboutZ(), 0.0001); } + /** + * Test the intersection method. + */ + public void testIntersection() { + { + Vertex o1 = new Vertex(0, 1, 0); + Vertex d1 = new Vertex(0, 0, 1); + Line l1 = new Line(o1, d1); + + Vertex o2 = new Vertex(0, 0, 1); + Vertex d2 = new Vertex(0, 1, 0); + Line l2 = new Line(o2, d2); + + Vertex i = new Vertex(0, 1, 1); + assertTrue(l1.intersection(l2).equalEps(i)); + } + { + Vertex o1 = new Vertex(0.5, 0.86734, 0); + Vertex d1 = new Vertex(0, 0, 1); + Line l1 = new Line(o1, d1); + + Vertex o2 = new Vertex(0, 0, 1); + Vertex d2 = new Vertex(0.5, 0.86734, 0); + Line l2 = new Line(o2, d2); + + Vertex iTrue = new Vertex(0.5, 0.86734, 1); + Vertex iActual = l1.intersection(l2); + assertTrue(iTrue.equalEps(iActual)); + } + } } |
From: Nordholt <nor...@us...> - 2006-09-18 14:36:25
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv28721/src/net/sourceforge/bprocessor/model Modified Files: ClippingPlane.java Log Message: added serialversionUID Index: ClippingPlane.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/ClippingPlane.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** ClippingPlane.java 11 Sep 2006 14:57:47 -0000 1.9 --- ClippingPlane.java 18 Sep 2006 14:36:22 -0000 1.10 *************** *** 19,22 **** --- 19,27 ---- */ public class ClippingPlane extends Geometric { + /** + * + */ + private static final long serialVersionUID = 1L; + /** The logger */ private static Logger log = Logger.getLogger(ClippingPlane.class); |
From: Nordholt <nor...@us...> - 2006-09-18 14:35:59
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv28326/src/net/sourceforge/bprocessor/model Modified Files: Line.java Log Message: fixed up the intersections method Index: Line.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Line.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** Line.java 8 Sep 2006 13:25:59 -0000 1.24 --- Line.java 18 Sep 2006 14:35:47 -0000 1.25 *************** *** 268,309 **** double v2; double w1; ! double w2; ! if (d.getX() != 0 || c.getX() != 0) { ! u1 = d.getX(); ! v1 = c.getX(); ! w1 = p.getX() - o.getX(); ! if (d.getY() != 0 || c.getY() != 0) { ! u2 = d.getY(); ! v2 = c.getY(); ! w2 = p.getY() - o.getY(); ! } else if (d.getZ() != 0 || c.getZ() != 0) { ! u2 = d.getZ(); ! v2 = c.getZ(); ! w2 = p.getZ() - o.getZ(); ! } else { ! return null; ! } ! } else if (d.getY() != 0 || c.getY() != 0) { ! u1 = d.getY(); ! v1 = c.getY(); ! w1 = p.getY() - o.getY(); ! if (d.getZ() != 0 || c.getZ() != 0) { ! u2 = d.getZ(); ! v2 = c.getZ(); ! w2 = p.getZ() - o.getZ(); ! } else { ! return null; ! } ! } else { ! return null; } double denom = v1 * u2 - v2 * u1; if (denom == 0) { - //lines are parrallel return null; } double s = ((v2 * w1 - v1 * w2) / denom); double t = ((u1 * w2 - u2 * w1) / -denom); - d.scale(-s); c.scale(-t); --- 268,304 ---- double v2; double w1; ! double w2; ! u1 = d.getX(); ! u2 = d.getY(); ! v1 = c.getX(); ! v2 = c.getY(); ! w1 = p.getX() - o.getX(); ! w2 = p.getY() - o.getY(); ! if (!check(u1, u2, v1, v2)) { ! u1 = d.getZ(); ! u2 = d.getY(); ! v1 = c.getZ(); ! v2 = c.getY(); ! w1 = p.getZ() - o.getZ(); ! w2 = p.getY() - o.getY(); } + if (!check(u1, u2, v1, v2)) { + u1 = d.getZ(); + u2 = d.getX(); + v1 = c.getZ(); + v2 = c.getX(); + w1 = p.getZ() - o.getZ(); + w2 = p.getX() - o.getX(); + } + if (!check(u1, u2, v1, v2)) { + log.info("suitable parameters could not be found for intersection"); + return null; + } double denom = v1 * u2 - v2 * u1; if (denom == 0) { return null; } double s = ((v2 * w1 - v1 * w2) / denom); double t = ((u1 * w2 - u2 * w1) / -denom); d.scale(-s); c.scale(-t); *************** *** 311,320 **** Vertex inter2 = c.add(p); if (inter1.equalEps(inter2)) { - //lines are not in the same plane return inter1; } else { return null; } ! } /** --- 306,331 ---- Vertex inter2 = c.add(p); if (inter1.equalEps(inter2)) { return inter1; } else { return null; } ! } ! /** ! * Checks if parameters for the intersection method are ok ! * @param u1 u1 ! * @param u2 u2 ! * @param v1 v1 ! * @param v2 v2 ! * @return ok or not ok ! */ ! private boolean check(double u1, double u2, double v1, double v2) { ! if ((Math.abs(u1) < 0.00001 && Math.abs(u2) < 0.00001) || ! (Math.abs(v1) < 0.00001 && Math.abs(v2) < 0.00001) || ! (Math.abs(u1) < 0.00001 && Math.abs(v1) < 0.00001) || ! (Math.abs(u2) < 0.00001 && Math.abs(v2) < 0.00001)) { ! return false; ! } ! return true; ! } /** |
From: rimestad <rim...@us...> - 2006-09-18 14:10:18
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/test In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv17863/src/net/sourceforge/bprocessor/model/test Modified Files: EdgeTest.java Log Message: Made changes to extrude tool to use extend abstractpencil and therfore making escape work and modified offset to use Edge.offset and thereby giving way for offset of only a subset of edges... There are still some bugs to be fixed Index: EdgeTest.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/test/EdgeTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** EdgeTest.java 5 Sep 2006 12:52:09 -0000 1.4 --- EdgeTest.java 18 Sep 2006 14:10:08 -0000 1.5 *************** *** 39,57 **** List offset = Edge.offset(edges, s, -1); Edge e = (Edge)offset.get(0); ! assertEquals(2.0, e.getFrom().getX(), 0.0001); assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(1); assertEquals(2.0, e.getFrom().getX(), 0.0001); ! assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(2); ! assertEquals(1.0, e.getFrom().getX(), 0.0001); assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(3); assertEquals(1.0, e.getFrom().getX(), 0.0001); assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); } --- 39,87 ---- List offset = Edge.offset(edges, s, -1); Edge e = (Edge)offset.get(0); ! assertEquals(1.0, e.getFrom().getX(), 0.0001); assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(1); assertEquals(2.0, e.getFrom().getX(), 0.0001); ! assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(2); ! assertEquals(2.0, e.getFrom().getX(), 0.0001); assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(3); assertEquals(1.0, e.getFrom().getX(), 0.0001); + assertEquals(2.0, e.getFrom().getY(), 0.0001); + assertEquals(0.0, e.getFrom().getZ(), 0.0001); + } + + /** + * Test the offset method in edge with only some edges + */ + public void testOffset7() { + Vertex v1 = new Vertex(0, 0, 0); + Vertex v2 = new Vertex(3, 0, 0); + Vertex v3 = new Vertex(3, 3, 0); + Vertex v4 = new Vertex(0, 3, 0); + Edge e1 = new Edge(v1, v2); + Edge e2 = new Edge(v2, v3); + Edge e3 = new Edge(v3, v4); + Edge e4 = new Edge(v4, v1); + ArrayList edges = new ArrayList(); + edges.add(e1); + edges.add(e2); + edges.add(e3); + edges.add(e4); + Surface s = new Surface(edges); + ArrayList tmp = new ArrayList(); + tmp.add(e1); + List offset = Edge.offset(tmp, s, -1); + Edge e = (Edge)offset.get(0); + assertEquals(0.0, e.getFrom().getX(), 0.0001); assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); + assertEquals(3.0, e.getTo().getX(), 0.0001); + assertEquals(1.0, e.getTo().getY(), 0.0001); + assertEquals(0.0, e.getTo().getZ(), 0.0001); } *************** *** 75,92 **** Surface s = new Surface(edges); List offset = Edge.offset(edges, s, -1); ! Edge e = (Edge)offset.get(0); assertEquals(2.0, e.getFrom().getX(), 0.0001); ! assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! e = (Edge)offset.get(1); ! assertEquals(2.0, e.getTo().getX(), 0.0001); assertEquals(2.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); ! e = (Edge)offset.get(2); assertEquals(1.0, e.getFrom().getX(), 0.0001); ! assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! e = (Edge)offset.get(3); ! assertEquals(1.0, e.getTo().getX(), 0.0001); assertEquals(1.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); --- 105,122 ---- Surface s = new Surface(edges); List offset = Edge.offset(edges, s, -1); ! Edge e = (Edge)offset.get(1); assertEquals(2.0, e.getFrom().getX(), 0.0001); ! assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! e = (Edge)offset.get(2); ! assertEquals(1.0, e.getTo().getX(), 0.0001); assertEquals(2.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); ! e = (Edge)offset.get(3); assertEquals(1.0, e.getFrom().getX(), 0.0001); ! assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! e = (Edge)offset.get(0); ! assertEquals(2.0, e.getTo().getX(), 0.0001); assertEquals(1.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); *************** *** 113,123 **** // offset 3 List offset = Edge.offset(edges, s, 3); ! Edge e = (Edge)offset.get(0); assertEquals(6.0, e.getFrom().getX(), 0.0001); ! assertEquals(-3.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! e = (Edge)offset.get(2); assertEquals(-3.0, e.getFrom().getX(), 0.0001); ! assertEquals(6.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); // offset 6 --- 143,153 ---- // offset 3 List offset = Edge.offset(edges, s, 3); ! Edge e = (Edge)offset.get(2); assertEquals(6.0, e.getFrom().getX(), 0.0001); ! assertEquals(6.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! e = (Edge)offset.get(0); assertEquals(-3.0, e.getFrom().getX(), 0.0001); ! assertEquals(-3.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); // offset 6 *************** *** 125,133 **** e = (Edge)offset.get(1); assertEquals(9.0, e.getFrom().getX(), 0.0001); ! assertEquals(9.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(3); assertEquals(-6.0, e.getFrom().getX(), 0.0001); ! assertEquals(-6.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); } --- 155,163 ---- e = (Edge)offset.get(1); assertEquals(9.0, e.getFrom().getX(), 0.0001); ! assertEquals(-6.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(3); assertEquals(-6.0, e.getFrom().getX(), 0.0001); ! assertEquals(9.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); } *************** *** 157,171 **** List offset = Edge.offset(which, s, -1); Edge e = (Edge)offset.get(1); ! assertEquals(0.0, e.getFrom().getX(), 0.0001); assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! assertEquals(3.0, e.getTo().getX(), 0.0001); assertEquals(2.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); e = (Edge)offset.get(0); ! assertEquals(3.0, e.getFrom().getX(), 0.0001); assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! assertEquals(0.0, e.getTo().getX(), 0.0001); assertEquals(1.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); --- 187,201 ---- List offset = Edge.offset(which, s, -1); Edge e = (Edge)offset.get(1); ! assertEquals(3.0, e.getFrom().getX(), 0.0001); assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! assertEquals(0.0, e.getTo().getX(), 0.0001); assertEquals(2.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); e = (Edge)offset.get(0); ! assertEquals(0.0, e.getFrom().getX(), 0.0001); assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! assertEquals(3.0, e.getTo().getX(), 0.0001); assertEquals(1.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); *************** *** 207,221 **** List offset = Edge.offset(which, s, -1); Edge e = (Edge)offset.get(1); ! assertEquals(-1.0, e.getFrom().getX(), 0.0001); assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! assertEquals(4.0, e.getTo().getX(), 0.0001); assertEquals(2.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); e = (Edge)offset.get(0); ! assertEquals(4.0, e.getFrom().getX(), 0.0001); assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! assertEquals(-1.0, e.getTo().getX(), 0.0001); assertEquals(1.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); --- 237,251 ---- List offset = Edge.offset(which, s, -1); Edge e = (Edge)offset.get(1); ! assertEquals(4.0, e.getFrom().getX(), 0.0001); assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! assertEquals(-1.0, e.getTo().getX(), 0.0001); assertEquals(2.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); e = (Edge)offset.get(0); ! assertEquals(-1.0, e.getFrom().getX(), 0.0001); assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); ! assertEquals(4.0, e.getTo().getX(), 0.0001); assertEquals(1.0, e.getTo().getY(), 0.0001); assertEquals(0.0, e.getTo().getZ(), 0.0001); *************** *** 244,259 **** Edge e = (Edge)offset.get(0); assertEquals(1.0, e.getFrom().getX(), 0.0001); ! assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(1); ! assertEquals(1.0, e.getFrom().getX(), 0.0001); assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(2); assertEquals(2.0, e.getFrom().getX(), 0.0001); ! assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(3); ! assertEquals(2.0, e.getFrom().getX(), 0.0001); assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); --- 274,289 ---- Edge e = (Edge)offset.get(0); assertEquals(1.0, e.getFrom().getX(), 0.0001); ! assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(1); ! assertEquals(2.0, e.getFrom().getX(), 0.0001); assertEquals(2.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(2); assertEquals(2.0, e.getFrom().getX(), 0.0001); ! assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); e = (Edge)offset.get(3); ! assertEquals(1.0, e.getFrom().getX(), 0.0001); assertEquals(1.0, e.getFrom().getY(), 0.0001); assertEquals(0.0, e.getFrom().getZ(), 0.0001); |
From: rimestad <rim...@us...> - 2006-09-18 14:10:17
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv17851/src/net/sourceforge/bprocessor/gl/tool Modified Files: OffsetTool.java ExtrudeTool.java AbstractPencil.java Log Message: Made changes to extrude tool to use extend abstractpencil and therfore making escape work and modified offset to use Edge.offset and thereby giving way for offset of only a subset of edges... There are still some bugs to be fixed Index: ExtrudeTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/ExtrudeTool.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** ExtrudeTool.java 11 Sep 2006 12:47:32 -0000 1.22 --- ExtrudeTool.java 18 Sep 2006 14:09:58 -0000 1.23 *************** *** 28,32 **** * The ExtrudeTool */ ! public class ExtrudeTool extends AbstractTool { /** Limit offset */ --- 28,32 ---- * The ExtrudeTool */ ! public class ExtrudeTool extends AbstractPencil { /** Limit offset */ *************** *** 59,65 **** private Plane dragplane; - /** The length typed in for length of the extrusion*/ - private String number; - /** The previous x-coordinate */ private double prevX; --- 59,62 ---- *************** *** 95,99 **** public ExtrudeTool(GLView glv, Cursor cursor) { super(glv, cursor); - number = new String(); } --- 92,95 ---- *************** *** 109,114 **** findTarget(e); if (target instanceof Surface) { - sides = new HashSet(); extrudeSurface = (Surface) target; View view = glv.getView(); Transformation trans = view.transformation(); --- 105,113 ---- findTarget(e); if (target instanceof Surface) { extrudeSurface = (Surface) target; + start = findIntersection(e); + lock = true; + lockingEdge = new Edge(start.vertex(), start.vertex().add(extrudeSurface.normal())); + sides = new HashSet(); View view = glv.getView(); Transformation trans = view.transformation(); *************** *** 119,123 **** Edge ray = new Edge(near, far); ray = trans.unProject(ray); ! dragplane = extrudeSurface.plane().orthogonalPlane(ray); mode = MOVE_MODE; } --- 118,123 ---- Edge ray = new Edge(near, far); ray = trans.unProject(ray); ! plane = extrudeSurface.plane(); ! dragplane = plane.orthogonalPlane(ray); mode = MOVE_MODE; } *************** *** 194,202 **** /** * Apply extrusion - * @param length The length */ ! private void apply(double length) { ! removeExtrusion(); if (extrudeSurface != null && length > 0) { sides = new HashSet(); holeSides = null; --- 194,202 ---- /** * Apply extrusion */ ! public void onVertex() { ! double length = start.vertex().minus(current.vertex()).length(); if (extrudeSurface != null && length > 0) { + removeExtrusion(); sides = new HashSet(); holeSides = null; *************** *** 244,247 **** --- 244,255 ---- mode = UNDICIDED; } + + /** + * escape + */ + public void escape() { + removeExtrusion(); + super.escape(); + } /** Do tool cleanup */ *************** *** 254,258 **** sides = null; holeSides = null; ! number = new String(); } --- 262,267 ---- sides = null; holeSides = null; ! mode = UNDICIDED; ! super.cleanUp(); } *************** *** 340,343 **** --- 349,353 ---- } } else if (mode == MOVE_MODE) { + current = findIntersection(e); doThing(e); } *************** *** 383,387 **** elements.addAll(sides); elements.add(top); ! if (extrudeAll) { elements.addAll(holeSides); } --- 393,397 ---- elements.addAll(sides); elements.add(top); ! if (holeSides != null) { elements.addAll(holeSides); } *************** *** 459,532 **** for extrusion, and if the "number"-variable has been initialised */ ! if (extrudeSurface != null && number != null) { ! if (e.getKeyCode() == KeyEvent.VK_1) { ! number += "1"; ! } else if (e.getKeyCode() == KeyEvent.VK_2) { ! number += "2"; ! } else if (e.getKeyCode() == KeyEvent.VK_3) { ! number += "3"; ! } else if (e.getKeyCode() == KeyEvent.VK_4) { ! number += "4"; ! } else if (e.getKeyCode() == KeyEvent.VK_5) { ! number += "5"; ! } else if (e.getKeyCode() == KeyEvent.VK_6) { ! number += "6"; ! } else if (e.getKeyCode() == KeyEvent.VK_7) { ! number += "7"; ! } else if (e.getKeyCode() == KeyEvent.VK_8) { ! number += "8"; ! } else if (e.getKeyCode() == KeyEvent.VK_9) { ! number += "9"; ! } else if (e.getKeyCode() == KeyEvent.VK_0) { ! number += "0"; ! } else if (e.getKeyCode() == KeyEvent.VK_ENTER) { ! if (!number.equals("")) { ! double length = glv.getLength(); ! apply(length); ! glv.repaint(); ! } ! } else if (e.getKeyCode() == KeyEvent.VK_BACK_SPACE) { ! int length = number.length(); ! if (length > 0) { ! number = number.substring(0, length - 1); ! } ! } else if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { ! removeExtrusion(); ! cleanUp(); ! } ! } if ((e.getModifiersEx() & KeyEvent.ALT_DOWN_MASK) == KeyEvent.ALT_DOWN_MASK) { // Alt were pressed so holes are not supposed to be extruded extrudeAll = false; } - - if (number.equals("") || number.equals("-")) { - glv.setLength(0); - } else { - try { - double d = Double.parseDouble(number); - glv.setLength(d / 1000); - } catch (NumberFormatException exp) { - System.out.println(exp); - } - } - } - - /** - * Delete - */ - public void delete() { - int length = number.length(); - if (length > 1) { - number = number.substring(0, length - 1); - } else { - number = String.valueOf(0); - } - try { - double d = Double.parseDouble(number); - glv.setLength(d / 1000); - } catch (NumberFormatException exp) { - Project.info(exp); - } } --- 469,477 ---- for extrusion, and if the "number"-variable has been initialised */ ! super.key(e); if ((e.getModifiersEx() & KeyEvent.ALT_DOWN_MASK) == KeyEvent.ALT_DOWN_MASK) { // Alt were pressed so holes are not supposed to be extruded extrudeAll = false; } } Index: OffsetTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/OffsetTool.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** OffsetTool.java 11 Sep 2006 12:47:32 -0000 1.6 --- OffsetTool.java 18 Sep 2006 14:09:58 -0000 1.7 *************** *** 12,15 **** --- 12,16 ---- import java.awt.event.MouseEvent; + import java.util.Collection; import java.util.Iterator; import java.util.List; *************** *** 19,24 **** --- 20,29 ---- import net.sourceforge.bprocessor.gl.GLView; + import net.sourceforge.bprocessor.gl.model.Intersection; + import net.sourceforge.bprocessor.model.Direction; import net.sourceforge.bprocessor.model.Edge; import net.sourceforge.bprocessor.model.Geometry; + import net.sourceforge.bprocessor.model.Point; + import net.sourceforge.bprocessor.model.Selection; import net.sourceforge.bprocessor.model.Surface; import net.sourceforge.bprocessor.model.Vertex; *************** *** 49,52 **** --- 54,65 ---- private boolean dragging; + /** The point the offset are started from */ + private Vertex edgePoint; + + /** the intersection edge */ + private Edge edge; + + private LinkedList edges; + /** * Constructor fo OffsetTool *************** *** 61,64 **** --- 74,79 ---- dragging = false; outNormal = null; + edgePoint = null; + edge = null; } *************** *** 76,81 **** surfaceFound = true; Surface surface = (Surface)current.object(); ! contour = copyContour(surface); ! directionMap = findDirections(contour, surface.normal()); feedback(contour); outNormal = startEdge.getDirection().cross(surface.normal()); --- 91,106 ---- surfaceFound = true; Surface surface = (Surface)current.object(); ! edges = new LinkedList(); ! edges.addAll(surface.getEdges()); ! Collection selection = Selection.primary(); ! if (selection.size() > 0 && edges.containsAll(selection)) { ! System.out.println("Did contain all"); ! edges.clear(); ! edges.addAll(selection); ! } ! directionMap = new HashMap(); ! contour.addAll(Edge.offset(edges, surface, ! -(current.vertex().minus(start.vertex()).length()), directionMap)); ! //directionMap = findDirections(contour, surface.normal()); feedback(contour); outNormal = startEdge.getDirection().cross(surface.normal()); *************** *** 93,97 **** length = projection.length(); } else { ! length = (-1 * projection.length()); } moveContour(length); --- 118,122 ---- length = projection.length(); } else { ! length = -projection.length(); } moveContour(length); *************** *** 99,103 **** --- 124,137 ---- } } + if (start == null && current.object() instanceof Surface) { + Surface s = (Surface)current.object(); + edge = s.findClosestEdge(current.vertex()); + edgePoint = edge.intersection(current.vertex()); + LinkedList feedback = new LinkedList(); + feedback.add(new Point(edgePoint)); + feedback(feedback); + } makeTarget(current); + timer.stop(); } *************** *** 107,116 **** */ private void moveContour(double length) { ! Iterator it = Geometry.collect(contour).iterator(); while (it.hasNext()) { ! Vertex v = (Vertex)it.next(); ! Vertex dir = ((Vertex)directionMap.get(v)).copy(); dir.scale(length); ! v.move(dir.getX(), dir.getY(), dir.getZ()); } } --- 141,150 ---- */ private void moveContour(double length) { ! Iterator it = directionMap.values().iterator(); while (it.hasNext()) { ! Direction d = (Direction)it.next(); ! Vertex dir = d.getDirection().copy(); dir.scale(length); ! d.getVertex().move(dir.getX(), dir.getY(), dir.getZ()); } } *************** *** 133,140 **** protected void pressed(MouseEvent e) { if (start == null) { ! if (current != null && current.object() instanceof Edge) { ! start = current; ! lastOffsetPoint = start.vertex().copy(); ! } } else { endOffset(); --- 167,179 ---- protected void pressed(MouseEvent e) { if (start == null) { ! if (current != null) { ! if (current.object() instanceof Edge) { ! start = current; ! lastOffsetPoint = start.vertex().copy(); ! } else if (current.object() instanceof Surface) { ! start = new Intersection(edgePoint, Intersection.EDGE, edge); ! lastOffsetPoint = current.vertex().copy(); ! } ! } } else { endOffset(); *************** *** 172,175 **** --- 211,216 ---- surfaceFound = false; outNormal = null; + edgePoint = null; + edge = null; feedback(contour); } Index: AbstractPencil.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractPencil.java,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** AbstractPencil.java 11 Sep 2006 13:25:05 -0000 1.66 --- AbstractPencil.java 18 Sep 2006 14:09:58 -0000 1.67 *************** *** 621,625 **** */ public void onVertex() { ! } --- 621,625 ---- */ public void onVertex() { ! log.info("onVertex"); } |
From: Michael L. <he...@us...> - 2006-09-18 08:19:36
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/view In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv9762/src/net/sourceforge/bprocessor/gl/view Modified Files: View.java Log Message: A space can contain more than one transformation Index: View.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/view/View.java,v retrieving revision 1.149 retrieving revision 1.150 diff -C2 -d -r1.149 -r1.150 *** View.java 15 Sep 2006 13:28:27 -0000 1.149 --- View.java 18 Sep 2006 08:19:34 -0000 1.150 *************** *** 32,35 **** --- 32,36 ---- import java.util.ArrayList; + import java.util.Collections; import java.util.HashSet; import java.util.Iterator; *************** *** 994,1010 **** */ private void drawSpace(Space space, GLDrawable gld) { - - Transform t = space.getTransform(); - gl.glPushMatrix(); ! ! if (t != null) { ! gl.glTranslated(t.tx(), t.ty(), t.tz()); ! gl.glRotated(t.rx(), 1, 0, 0); ! gl.glRotated(t.ry(), 0, 1, 0); ! gl.glRotated(t.rz(), 0, 0, 1); ! gl.glScaled(t.sx(), t.sy(), t.sz()); } - Collection surfaces = space.getSurfaces(); switch (drawMode) { --- 995,1014 ---- */ private void drawSpace(Space space, GLDrawable gld) { gl.glPushMatrix(); ! { ! List transforms = new LinkedList(space.getTransformations()); ! Collections.reverse(transforms); ! Iterator iter = transforms.iterator(); ! while (iter.hasNext()) { ! Transform t = (Transform) iter.next(); ! if (t != null) { ! gl.glTranslated(t.tx(), t.ty(), t.tz()); ! gl.glRotated(t.rx(), 1, 0, 0); ! gl.glRotated(t.ry(), 0, 1, 0); ! gl.glRotated(t.rz(), 0, 0, 1); ! gl.glScaled(t.sx(), t.sy(), t.sz()); ! } ! } } Collection surfaces = space.getSurfaces(); switch (drawMode) { |
From: Michael L. <he...@us...> - 2006-09-18 08:19:31
|
Update of /cvsroot/bprocessor/bscript/lib In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv9754/lib Removed Files: model.jar Log Message: A space can contain more than one transformation --- model.jar DELETED --- |
From: Michael L. <he...@us...> - 2006-09-18 08:19:27
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv9746/src/net/sourceforge/bprocessor/model Modified Files: Space.java Log Message: A space can contain more than one transformation Index: Space.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Space.java,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** Space.java 17 Sep 2006 19:04:59 -0000 1.62 --- Space.java 18 Sep 2006 08:19:25 -0000 1.63 *************** *** 110,114 **** /** The transformation */ ! private Transform transform; /** The construcstionspace classification options */ --- 110,115 ---- /** The transformation */ ! private List transformations; ! /** The construcstionspace classification options */ *************** *** 164,167 **** --- 165,169 ---- description = new Description(""); envelope = new HashSet(); + transformations = new LinkedList(); if (container) { vertices = new HashMap(); *************** *** 218,225 **** /** * Get transformation ! * @return transformation */ ! public Transform getTransform() { ! return transform; } --- 220,227 ---- /** * Get transformation ! * @return transformations */ ! public List getTransformations() { ! return transformations; } *************** *** 228,233 **** * @param transform Transform */ ! public void setTransform(Transform transform) { ! this.transform = transform; } --- 230,235 ---- * @param transform Transform */ ! public void addTransform(Transform transform) { ! transformations.add(transform); } *************** *** 1207,1212 **** } } ! if (getTransform() != null) { ! res.add(new Attribute("Transform", getTransform())); } return res; --- 1209,1215 ---- } } ! Iterator iter = getTransformations().iterator(); ! while (iter.hasNext()) { ! res.add(new Attribute("Transform", iter.next())); } return res; |
From: Michael L. <he...@us...> - 2006-09-18 08:19:24
|
Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/treeview In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv9737/src/net/sourceforge/bprocessor/gui/treeview Modified Files: GenericTreeView.java Log Message: A space can contain more than one transformation Index: GenericTreeView.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/treeview/GenericTreeView.java,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** GenericTreeView.java 17 Sep 2006 19:04:53 -0000 1.43 --- GenericTreeView.java 18 Sep 2006 08:19:20 -0000 1.44 *************** *** 570,574 **** public void actionPerformed(ActionEvent arg0) { Space space = (Space) entity; ! space.setTransform(new Transform()); space.changed(); } --- 570,574 ---- public void actionPerformed(ActionEvent arg0) { Space space = (Space) entity; ! space.addTransform(new Transform()); space.changed(); } |
From: Michael L. <he...@us...> - 2006-09-18 07:47:20
|
Update of /cvsroot/bprocessor/bscript/lib In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv29301/lib Modified Files: model.jar Added Files: .cvsignore Log Message: Remove model.jar and added *.jar to cvsignore --- NEW FILE: .cvsignore --- *.jar *.zip Index: model.jar =================================================================== RCS file: /cvsroot/bprocessor/bscript/lib/model.jar,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 Binary files /tmp/cvs5XLkWV and /tmp/cvsnXlqOC differ |
From: Nikolaj B. <nbr...@us...> - 2006-09-17 22:02:22
|
Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/attrview In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv28016/src/net/sourceforge/bprocessor/gui/attrview Modified Files: LinkAttribute.java Log Message: Link attribute now also works when a Project is given as argument Index: LinkAttribute.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/attrview/LinkAttribute.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** LinkAttribute.java 28 Aug 2006 05:54:04 -0000 1.12 --- LinkAttribute.java 17 Sep 2006 22:02:20 -0000 1.13 *************** *** 175,188 **** if (value instanceof Entity) { s = ((Entity)value).getName(); ! valueLabel = new JLabel(s); ! } else { ! if (value instanceof String) { ! s = (String)value; ! } else if (value instanceof Double) { ! double rounded = round(((Double) value).doubleValue()); ! s = Double.toString(rounded); ! } ! valueLabel = new JLabel(s); } if (attribute.isEditable()) { valueLabel.setFont(AttributeView.FONT_PLAIN); --- 175,188 ---- if (value instanceof Entity) { s = ((Entity)value).getName(); ! } else if (value instanceof Project) { ! s = ((Project)value).getName(); ! } else if (value instanceof String) { ! s = (String)value; ! } else if (value instanceof Double) { ! double rounded = round(((Double) value).doubleValue()); ! s = Double.toString(rounded); } + valueLabel = new JLabel(s); + if (attribute.isEditable()) { valueLabel.setFont(AttributeView.FONT_PLAIN); |
From: Nikolaj B. <nbr...@us...> - 2006-09-17 22:00:55
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv26795/src/net/sourceforge/bprocessor/model Modified Files: Project.java Log Message: Project now correctly shows its name, and its reset when starting a new project. Index: Project.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Project.java,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -d -r1.73 -r1.74 *** Project.java 13 Sep 2006 13:36:22 -0000 1.73 --- Project.java 17 Sep 2006 22:00:02 -0000 1.74 *************** *** 108,119 **** public Project() { super(); ! name = "new project"; script = new Description(""); undoStack = new Stack(); redoStack = new Stack(); - makeClean(); addCams(); observers = new LinkedList(); ! world = new Space("World", Space.FUNCTIONAL, true); world.setId(new Long(0)); activeCoordinateSystem = new CoordinateSystem(new Vertex(1, 0, 0), new Vertex(0, 1, 0), --- 108,118 ---- public Project() { super(); ! setName("new project"); script = new Description(""); undoStack = new Stack(); redoStack = new Stack(); addCams(); observers = new LinkedList(); ! world = new Space("Project", Space.FUNCTIONAL, true); world.setId(new Long(0)); activeCoordinateSystem = new CoordinateSystem(new Vertex(1, 0, 0), new Vertex(0, 1, 0), *************** *** 125,128 **** --- 124,128 ---- globals.put("pi", Math.PI); Modellor.registerModellor(new LayerModellor()); + makeClean(); } *************** *** 877,880 **** --- 877,881 ---- clear(); makeClean(); + setName("new project"); resetHistory(); setSavePath(null); |
From: Nikolaj B. <nbr...@us...> - 2006-09-17 22:00:30
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv27219/src/net/sourceforge/bprocessor/model Modified Files: Surface.java Log Message: Project now correctly shows its name, and its reset when starting a new project. Index: Surface.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Surface.java,v retrieving revision 1.109 retrieving revision 1.110 diff -C2 -d -r1.109 -r1.110 *** Surface.java 7 Sep 2006 11:35:13 -0000 1.109 --- Surface.java 17 Sep 2006 22:00:21 -0000 1.110 *************** *** 1406,1410 **** ArrayList res = new ArrayList(); res.add(new Attribute("Name", getName(), false)); ! res.add(new Attribute("Owner", getOwner(), false)); if (getFrontDomain() != null) { res.add(new Attribute("Space1", getFrontDomain(), true)); --- 1406,1414 ---- ArrayList res = new ArrayList(); res.add(new Attribute("Name", getName(), false)); ! if (getOwner() == Project.getInstance().world()) { ! res.add(new Attribute("Owner", Project.getInstance(), false)); ! } else { ! res.add(new Attribute("Owner", getOwner(), false)); ! } if (getFrontDomain() != null) { res.add(new Attribute("Space1", getFrontDomain(), true)); |
From: Nikolaj B. <nbr...@us...> - 2006-09-17 21:58:31
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv26384/src/net/sourceforge/bprocessor/model Modified Files: Persistence.java Log Message: A Project now has a name Index: Persistence.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Persistence.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Persistence.java 11 Sep 2006 09:22:07 -0000 1.7 --- Persistence.java 17 Sep 2006 21:58:27 -0000 1.8 *************** *** 91,94 **** --- 91,95 ---- (CoordinateSystem) get(document.getCs(), mapper)); Project.getInstance().setActiveSpace((Space) get(document.getActive(), mapper)); + Project.getInstance().setName(document.getName()); } *************** *** 491,494 **** --- 492,496 ---- document.setCs(id(mapper, Project.getInstance().getActiveCoordinateSystem())); document.setActive(id(mapper, Project.getInstance().getActiveSpace())); + document.setName(Project.getInstance().getName()); return document; } |
From: Nikolaj B. <nbr...@us...> - 2006-09-17 21:58:24
|
Update of /cvsroot/bprocessor/model/src/etc In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv26375/src/etc Modified Files: bprocessor.xsd Log Message: A Project now has a name Index: bprocessor.xsd =================================================================== RCS file: /cvsroot/bprocessor/model/src/etc/bprocessor.xsd,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** bprocessor.xsd 11 Sep 2006 09:21:52 -0000 1.15 --- bprocessor.xsd 17 Sep 2006 21:58:16 -0000 1.16 *************** *** 160,163 **** --- 160,164 ---- <xsd:element name="active" type="xsd:long" maxOccurs="1" minOccurs="0"/> <xsd:element name="cs" type="xsd:long" maxOccurs="1" minOccurs="0"/> + <xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="0"/> <xsd:element ref="space" maxOccurs="unbounded" minOccurs="0"/> <xsd:element ref="surface" maxOccurs="unbounded" minOccurs="0"/> |
From: Michael L. <he...@us...> - 2006-09-17 19:05:51
|
Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/treeview In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv22152/src/net/sourceforge/bprocessor/gui/treeview Modified Files: GenericTreeView.java Log Message: Space instantiation implemented Index: GenericTreeView.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/treeview/GenericTreeView.java,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** GenericTreeView.java 15 Sep 2006 12:06:34 -0000 1.42 --- GenericTreeView.java 17 Sep 2006 19:04:53 -0000 1.43 *************** *** 528,531 **** --- 528,541 ---- }; pm.add(copy); + AbstractAction instantiate = new EntityAction((Entity)object, "Instantiate") { + public void actionPerformed(ActionEvent arg0) { + if (entity != null) { + Space space = new Space("Copy", Space.CONSTRUCTION, false); + space.setProto((Space) entity); + ((Space) entity).getOwner().add(space); + } + } + }; + pm.add(instantiate); AbstractAction edit = new EntityAction((Entity)object, "Edit") { public void actionPerformed(ActionEvent arg0) { |
From: Michael L. <he...@us...> - 2006-09-17 19:05:09
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv22166/src/net/sourceforge/bprocessor/model Modified Files: Space.java Log Message: Space instantiation implemented Index: Space.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Space.java,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** Space.java 15 Sep 2006 12:06:38 -0000 1.61 --- Space.java 17 Sep 2006 19:04:59 -0000 1.62 *************** *** 60,63 **** --- 60,72 ---- */ private boolean container; + + /** + * If proto points to another space, this space + * is an instance of the other space and is not + * a container. + * + * FIXME Should be handled by a class hierarchy. + */ + private Space proto; /** The empty space in this space (also called void) */ *************** *** 222,225 **** --- 231,250 ---- this.transform = transform; } + + /** + * Set proto + * @param space Space + */ + public void setProto(Space space) { + this.proto = space; + } + + /** + * Get proto + * @return proto + */ + public Space getProto() { + return proto; + } /** *************** *** 452,456 **** return vertices.values(); } else { ! return EMPTY; } } --- 477,485 ---- return vertices.values(); } else { ! if (proto != null) { ! return proto.getVertices(); ! } else { ! return EMPTY; ! } } } *************** *** 638,642 **** return edges.values(); } else { ! return EMPTY; } } --- 667,675 ---- return edges.values(); } else { ! if (proto != null) { ! return proto.getEdges(); ! } else { ! return EMPTY; ! } } } *************** *** 752,756 **** return surfaces.values(); } else { ! return EMPTY; } } --- 785,793 ---- return surfaces.values(); } else { ! if (proto != null) { ! return proto.getSurfaces(); ! } else { ! return EMPTY; ! } } } *************** *** 1031,1035 **** return elements.values(); } else { ! return EMPTY; } } --- 1068,1076 ---- return elements.values(); } else { ! if (proto != null) { ! return proto.getElements(); ! } else { ! return EMPTY; ! } } } |
From: Michael L. <he...@us...> - 2006-09-17 17:29:35
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv9513/src/net/sourceforge/bprocessor/model Modified Files: Geometry.java Log Message: Improved scripting Index: Geometry.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Geometry.java,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** Geometry.java 7 Sep 2006 15:49:52 -0000 1.25 --- Geometry.java 17 Sep 2006 17:29:25 -0000 1.26 *************** *** 855,859 **** } } ! if (actual.size() > 3) { Surface surface = new Surface(actual); Project.getInstance().getActiveSpace().insert(surface); --- 855,859 ---- } } ! if (actual.size() > 2) { Surface surface = new Surface(actual); Project.getInstance().getActiveSpace().insert(surface); |
From: Michael L. <he...@us...> - 2006-09-17 17:29:29
|
Update of /cvsroot/bprocessor/bscript/lib In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv9471/lib Modified Files: model.jar Log Message: Improved scripting Index: model.jar =================================================================== RCS file: /cvsroot/bprocessor/bscript/lib/model.jar,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 Binary files /tmp/cvs2sPEAG and /tmp/cvsL4ZJ8A differ |
From: Michael L. <he...@us...> - 2006-09-17 17:29:26
|
Update of /cvsroot/bprocessor/bscript/src/etc In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv9471/src/etc Modified Files: bscript.g Log Message: Improved scripting Index: bscript.g =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/etc/bscript.g,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** bscript.g 14 Sep 2006 09:21:46 -0000 1.7 --- bscript.g 17 Sep 2006 17:29:21 -0000 1.8 *************** *** 25,30 **** Comma : ',' ; Bar : '|' ; ! Open : '<' ; ! Close : '>' ; protected Letter --- 25,33 ---- Comma : ',' ; Bar : '|' ; ! Lt : '<' ; ! Gt : '>' ; ! Equal: '=' ; ! LtEq: "<=" ; ! GtEq: ">=" ; protected Letter *************** *** 88,91 **** --- 91,106 ---- statement[Function env] + : procedurecall[env] + | ifstatement[env] + | whilestatement[env] + | assignment[env] + ; + + assignment[Function env] + : name:Identifier Equal simpleton[env] + { env.append(new Assign(name.getText())); } + ; + + procedurecall[Function env] : name:Identifier { env.append(new Mark()); } ( simpleton[env] )* *************** *** 93,104 **** ; simpleton[Function env] : variable[env] | literal[env] | StartTerm expression[env] EndTerm ! | Open statement[env] Close ; expression[Function env] : term[env] ( Plus term[env] { env.append(new Primitive(Primitive.ADD)); } --- 108,173 ---- ; + whilestatement[Function env] + : { BranchFalse branchend = new BranchFalse(); + int before = env.length(); + } + "while" expression[env] + { env.append(branchend); } + "do" ( statement[env] End ) * "end" + { int after = env.length(); + Branch branch = new Branch(before - after); + env.append(branch); + branchend.setOffset(after - before + 1); + } + ; + + + ifstatement[Function env] + : { BranchFalse branchelse = new BranchFalse(); } + "if" expression[env] "then" + { int before = env.length(); + env.append(branchelse); + } + ( statement[env] End) * + + ( "end" + { int after = env.length(); + branchelse.setOffset(after - before); + } + | { Branch branchend = new Branch(); + int beforeelse = env.length(); + env.append(branchend); + branchelse.setOffset(beforeelse - before + 1); + } + "else" + ( statement[env] End) * + "end" + { + int afterelse = env.length(); + branchend.setOffset(afterelse - beforeelse); + } + ) + ; + simpleton[Function env] : variable[env] | literal[env] | StartTerm expression[env] EndTerm ! | Lt statement[env] Gt ; + expression[Function env] + : evaluation[env] + ( Equal evaluation[env] { env.append(new Primitive(Primitive.EQ)); } + | Lt evaluation[env] { env.append(new Primitive(Primitive.LT)); } + | Gt evaluation[env] { env.append(new Primitive(Primitive.GT)); } + ) ? + + ; + + + + evaluation[Function env] : term[env] ( Plus term[env] { env.append(new Primitive(Primitive.ADD)); } |
From: Michael L. <he...@us...> - 2006-09-17 17:29:23
|
Update of /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv9471/src/net/sourceforge/bprocessor/model/evaluator Modified Files: Mark.java Primitive.java Operation.java Environment.java Call.java Literal.java Variable.java Function.java Added Files: BranchTrue.java Branch.java BranchFalse.java Assign.java Log Message: Improved scripting Index: Variable.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Variable.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Variable.java 12 Sep 2006 09:27:31 -0000 1.3 --- Variable.java 17 Sep 2006 17:29:21 -0000 1.4 *************** *** 29,35 **** * @param env Environment * @param stack Stack */ ! public void evaluate(Environment env, Stack stack) { stack.push(env.lookupGlobal(id)); } } --- 29,37 ---- * @param env Environment * @param stack Stack + * @return offset */ ! public int evaluate(Environment env, Stack stack) { stack.push(env.lookupGlobal(id)); + return 1; } } --- NEW FILE: Assign.java --- //--------------------------------------------------------------------------------- // $Id: Assign.java,v 1.1 2006/09/17 17:29:21 henryml Exp $ // // Copyright (c) 2005 The BProcessor Team (http://bprocessor.sourceforge.net) // Released under the Lesser GNU Public License v2.1 //--------------------------------------------------------------------------------- package net.sourceforge.bprocessor.model.evaluator; import java.util.Stack; /** * Variable */ public class Assign extends Operation { /** id */ private String id; /** * Constructor * @param id String */ public Assign(String id) { super(); this.id = id; } /** * @param env Environment * @param stack Stack * @return offset */ public int evaluate(Environment env, Stack stack) { env.assignGlobal(id, stack.pop()); return 1; } } --- NEW FILE: Branch.java --- //--------------------------------------------------------------------------------- // $Id: Branch.java,v 1.1 2006/09/17 17:29:21 henryml Exp $ // // Copyright (c) 2005 The BProcessor Team (http://bprocessor.sourceforge.net) // Released under the Lesser GNU Public License v2.1 //--------------------------------------------------------------------------------- package net.sourceforge.bprocessor.model.evaluator; import java.util.Stack; /** * BranchTrue */ public class Branch extends Operation { /** offset */ private int offset; /** * * @param offset int */ public Branch(int offset) { super(); this.offset = offset; } /** * */ public Branch() { super(); } /** * Set offset * @param offset int */ public void setOffset(int offset) { this.offset = offset; } /** * */ public int evaluate(Environment env, Stack stack) { return offset; } } Index: Call.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Call.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Call.java 14 Sep 2006 09:21:46 -0000 1.4 --- Call.java 17 Sep 2006 17:29:21 -0000 1.5 *************** *** 35,39 **** * @param stack Stack */ ! public void evaluate(Environment env, Stack stack) { int length = stack.search(Function.mark) - 1; List arguments = new ArrayList(length); --- 35,39 ---- * @param stack Stack */ ! public int evaluate(Environment env, Stack stack) { int length = stack.search(Function.mark) - 1; List arguments = new ArrayList(length); *************** *** 65,68 **** --- 65,69 ---- stack.push(name); } + return 1; } } --- NEW FILE: BranchFalse.java --- //--------------------------------------------------------------------------------- // $Id: BranchFalse.java,v 1.1 2006/09/17 17:29:21 henryml Exp $ // // Copyright (c) 2005 The BProcessor Team (http://bprocessor.sourceforge.net) // Released under the Lesser GNU Public License v2.1 //--------------------------------------------------------------------------------- package net.sourceforge.bprocessor.model.evaluator; import java.util.Stack; /** * BranchTrue */ public class BranchFalse extends Operation { /** offset */ private int offset; /** * * @param offset int */ public BranchFalse(int offset) { super(); this.offset = offset; } /** * */ public BranchFalse() { super(); } /** * Set offset * @param offset int */ public void setOffset(int offset) { this.offset = offset; } /** * */ public int evaluate(Environment env, Stack stack) { Boolean value = (Boolean) stack.pop(); if (!value.booleanValue()) { return offset; } else { return 1; } } } Index: Primitive.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Primitive.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Primitive.java 12 Sep 2006 09:27:30 -0000 1.3 --- Primitive.java 17 Sep 2006 17:29:21 -0000 1.4 *************** *** 24,27 **** --- 24,33 ---- /** neg */ public static final int NEG = 5; + /** eq */ + public static final int EQ = 6; + /** lt */ + public static final int LT = 7; + /** gt */ + public static final int GT = 8; /** opcode */ *************** *** 36,45 **** this.opcode = opcode; } ! /** * @param env Environment * @param stack Stack */ ! public void evaluate(Environment env, Stack stack) { switch(opcode) { case ADD: { --- 42,52 ---- this.opcode = opcode; } ! /** * @param env Environment * @param stack Stack + * @return offset */ ! public int evaluate(Environment env, Stack stack) { switch(opcode) { case ADD: { *************** *** 72,77 **** break; } ! } } } --- 79,102 ---- break; } ! case EQ: { ! Object op1 = stack.pop(); ! Object op2 = stack.pop(); ! stack.push(new Boolean(op1.equals(op2))); ! break; ! } ! case LT: { ! Comparable op1 = (Comparable) stack.pop(); ! Comparable op2 = (Comparable) stack.pop(); ! stack.push(new Boolean(op1.compareTo(op2) > 0)); ! break; } + case GT: { + Comparable op1 = (Comparable) stack.pop(); + Comparable op2 = (Comparable) stack.pop(); + stack.push(new Boolean(op1.compareTo(op2) < 0)); + break; + } + } + return 1; } } Index: Literal.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Literal.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Literal.java 12 Sep 2006 09:27:30 -0000 1.3 --- Literal.java 17 Sep 2006 17:29:21 -0000 1.4 *************** *** 29,35 **** * @param env Environment * @param stack Stack */ ! public void evaluate(Environment env, Stack stack) { stack.push(value); } } --- 29,37 ---- * @param env Environment * @param stack Stack + * @return offset */ ! public int evaluate(Environment env, Stack stack) { stack.push(value); + return 1; } } Index: Mark.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Mark.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Mark.java 12 Sep 2006 09:27:30 -0000 1.1 --- Mark.java 17 Sep 2006 17:29:21 -0000 1.2 *************** *** 26,32 **** * @param env Environment * @param stack Stack */ ! public void evaluate(Environment env, Stack stack) { stack.push(Function.mark); } --- 26,34 ---- * @param env Environment * @param stack Stack + * @return offset */ ! public int evaluate(Environment env, Stack stack) { stack.push(Function.mark); + return 1; } --- NEW FILE: BranchTrue.java --- //--------------------------------------------------------------------------------- // $Id: BranchTrue.java,v 1.1 2006/09/17 17:29:21 henryml Exp $ // // Copyright (c) 2005 The BProcessor Team (http://bprocessor.sourceforge.net) // Released under the Lesser GNU Public License v2.1 //--------------------------------------------------------------------------------- package net.sourceforge.bprocessor.model.evaluator; import java.util.Stack; /** * BranchTrue */ public class BranchTrue extends Operation { /** offset */ private int offset; /** * * @param offset int */ public BranchTrue(int offset) { super(); this.offset = offset; } /** * */ public BranchTrue() { super(); } /** * Set offset * @param offset int */ public void setOffset(int offset) { this.offset = offset; } /** * */ public int evaluate(Environment env, Stack stack) { Boolean value = (Boolean) stack.pop(); if (value.booleanValue()) { return offset; } else { return 1; } } } Index: Operation.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Operation.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Operation.java 12 Sep 2006 09:27:30 -0000 1.3 --- Operation.java 17 Sep 2006 17:29:21 -0000 1.4 *************** *** 26,30 **** * @param env Environment * @param stack Stack */ ! public abstract void evaluate(Environment env, Stack stack); } --- 26,31 ---- * @param env Environment * @param stack Stack + * @return offset */ ! public abstract int evaluate(Environment env, Stack stack); } Index: Function.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Function.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Function.java 14 Sep 2006 09:21:46 -0000 1.5 --- Function.java 17 Sep 2006 17:29:21 -0000 1.6 *************** *** 12,15 **** --- 12,16 ---- import java.util.List; import java.util.Stack; + import java.util.Vector; /** *************** *** 27,31 **** /** operations */ ! private List operations; /** --- 28,32 ---- /** operations */ ! private Vector operations; /** *************** *** 34,38 **** public Function() { super(); ! operations = new LinkedList(); } --- 35,39 ---- public Function() { super(); ! operations = new Vector(); } *************** *** 43,47 **** super(); this.name = name; ! operations = new LinkedList(); } --- 44,48 ---- super(); this.name = name; ! operations = new Vector(); } *************** *** 53,57 **** this.name = name; this.formals = formals; ! operations = new LinkedList(); } --- 54,58 ---- this.name = name; this.formals = formals; ! operations = new Vector(); } *************** *** 66,69 **** --- 67,78 ---- /** * + * @return + */ + public int length() { + return operations.size(); + } + + /** + * * @return formals */ *************** *** 77,84 **** */ public void evaluate(Environment env, Stack stack) { ! Iterator iter = operations.iterator(); ! while (iter.hasNext()) { ! Operation current = (Operation) iter.next(); ! current.evaluate(env, stack); } } --- 86,94 ---- */ public void evaluate(Environment env, Stack stack) { ! int pc = 0; ! while (pc < operations.size()) { ! Operation current = (Operation) operations.get(pc); ! int offset = current.evaluate(env, stack); ! pc += offset; } } Index: Environment.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Environment.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Environment.java 13 Sep 2006 13:36:32 -0000 1.3 --- Environment.java 17 Sep 2006 17:29:21 -0000 1.4 *************** *** 84,87 **** --- 84,130 ---- /** + * Define new local variable + * @param name String + * @param value Object + */ + public void define(String name, Object value) { + variables.put(name, value); + } + + /** + * Attempt to assign a variable. + * Return false of the variable does not exist. + * @param name String + * @param value Object + * @return true of variable exists + */ + public boolean assign(String name, Object value) { + if (variables.containsKey(name)) { + variables.put(name, value); + return true; + } else { + if (origin != null) { + return origin.assign(name, value); + } else { + return false; + } + } + } + + /** + * Attemt to assign the variable in the + * local scope and any inherited scope. + * If the variable does not exist, then + * define it in the local scope. + * @param name String + * @param value Object + */ + public void assignGlobal(String name, Object value) { + if (!assign(name, value)) { + define(name, value); + } + } + + /** * Return local * @param i Index *************** *** 91,93 **** --- 134,144 ---- return indexables.get(i); } + + /** + * Return number of indexables + * @return number of indexables + */ + public int length() { + return indexables.size(); + } } |
From: Michael L. <he...@us...> - 2006-09-17 17:29:14
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv9379/src/net/sourceforge/bprocessor/gl/tool Modified Files: SpaceTool.java Log Message: Improved scripting Index: SpaceTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/SpaceTool.java,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** SpaceTool.java 14 Sep 2006 09:21:50 -0000 1.38 --- SpaceTool.java 17 Sep 2006 17:29:05 -0000 1.39 *************** *** 561,564 **** --- 561,569 ---- HashMap globals = Project.getInstance().getGlobals().environment(); + globals.put("echo", new Builtin() { + public void evaluate(Environment env, Stack stack) { + stack.push(env.get(0)); + } + }); globals.put("cos", new Builtin() { public void evaluate(Environment env, Stack stack) { *************** *** 590,593 **** --- 595,611 ---- } }); + globals.put("surface", new Builtin() { + public void evaluate(Environment env, Stack stack) { + Vertex previous = (Vertex) env.get(env.length() - 1); + List edges = new LinkedList(); + for (int i = 0; i < env.length(); i++) { + Vertex current = (Vertex) env.get(i); + edges.add(new Edge(previous, current)); + previous = current; + } + Surface result = new Surface(edges); + stack.push(result); + } + }); *************** *** 620,623 **** --- 638,645 ---- result = Geometry.insertEdge((Edge)result, true); Selection.primary().add(result); + } else if (result instanceof Surface) { + Surface surface = (Surface) result; + Geometry.insertEdges(surface.getEdges()); + glv.setLengthValue(result.toString()); } else { glv.setLengthValue(result.toString()); |
From: Michael L. <he...@us...> - 2006-09-15 13:28:31
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/view In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv20736/src/net/sourceforge/bprocessor/gl/view Modified Files: View.java Log Message: Scaling implemented Index: View.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/view/View.java,v retrieving revision 1.148 retrieving revision 1.149 diff -C2 -d -r1.148 -r1.149 *** View.java 15 Sep 2006 12:06:42 -0000 1.148 --- View.java 15 Sep 2006 13:28:27 -0000 1.149 *************** *** 1004,1007 **** --- 1004,1008 ---- gl.glRotated(t.ry(), 0, 1, 0); gl.glRotated(t.rz(), 0, 0, 1); + gl.glScaled(t.sx(), t.sy(), t.sz()); } |