[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool SpaceTool.java, 1.41, 1.42
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-09-27 08:36:47
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv987/src/net/sourceforge/bprocessor/gl/tool Modified Files: SpaceTool.java Log Message: Translations and Rotations in scripting Index: SpaceTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/SpaceTool.java,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** SpaceTool.java 26 Sep 2006 09:52:29 -0000 1.41 --- SpaceTool.java 27 Sep 2006 08:36:38 -0000 1.42 *************** *** 32,35 **** --- 32,36 ---- import net.sourceforge.bprocessor.gl.GLView; + import net.sourceforge.bprocessor.model.AxisRotate; import net.sourceforge.bprocessor.gui.PopupMenu; import net.sourceforge.bprocessor.model.ClippingPlane; *************** *** 41,44 **** --- 42,47 ---- import net.sourceforge.bprocessor.model.Space; import net.sourceforge.bprocessor.model.Surface; + import net.sourceforge.bprocessor.model.TransformStack; + import net.sourceforge.bprocessor.model.Translate; import net.sourceforge.bprocessor.model.Vertex; import net.sourceforge.bprocessor.model.Geometry; *************** *** 58,61 **** --- 61,68 ---- /** The logger */ private static Logger log = Logger.getLogger(SpaceTool.class); + + /** TransformStack */ + private TransformStack transform; + /** * Construct the SpaceTool *************** *** 590,594 **** public Object evaluate(String value) { ! HashMap globals = Project.getInstance().getGlobals().environment(); globals.put("echo", new Builtin() { --- 597,601 ---- public Object evaluate(String value) { ! transform = new TransformStack(); HashMap globals = Project.getInstance().getGlobals().environment(); globals.put("echo", new Builtin() { *************** *** 615,618 **** --- 622,626 ---- Double z = (Double) env.get(2); Vertex result = new Vertex(x.doubleValue(), y.doubleValue(), z.doubleValue()); + result = transform.transform(result); stack.push(result); } *************** *** 639,644 **** } }); ! ! String script = Project.getInstance().getScript(); --- 647,700 ---- } }); ! globals.put("contour", new Builtin() { ! public void evaluate(Environment env, Stack stack) { ! Vertex previous = (Vertex) env.get(env.length() - 1); ! for (int i = 0; i < env.length(); i++) { ! Vertex current = (Vertex) env.get(i); ! stack.push(new Edge(previous, current)); ! previous = current; ! } ! } ! }); ! globals.put("translate", new Builtin() { ! public void evaluate(Environment env, Stack stack) { ! Double x = (Double) env.get(0); ! Double y = (Double) env.get(1); ! Double z = (Double) env.get(2); ! transform.push( ! new Translate(x.doubleValue(), y.doubleValue(), z.doubleValue()) ! ); ! } ! }); ! globals.put("rotate", new Builtin() { ! public void evaluate(Environment env, Stack stack) { ! Double a = (Double) env.get(0); ! Double x = (Double) env.get(1); ! Double y = (Double) env.get(2); ! Double z = (Double) env.get(3); ! transform.push( ! new AxisRotate(a.doubleValue(), x.doubleValue(), y.doubleValue(), z.doubleValue()) ! ); ! } ! }); ! globals.put("extrude", new Builtin() { ! public void evaluate(Environment env, Stack stack) { ! Surface surface = (Surface) env.get(0); ! Double distance = (Double) env.get(1); ! HashSet sides = new HashSet(); ! Project.getInstance().getActiveSpace().add(surface); ! Surface top = surface.extrude(distance.doubleValue(), sides); ! Project.getInstance().getActiveSpace().remove(surface); ! stack.push(surface); ! Iterator iter = sides.iterator(); ! while (iter.hasNext()) { ! Surface current = (Surface) iter.next(); ! Project.getInstance().getActiveSpace().remove(current); ! stack.push(current); ! } ! Project.getInstance().getActiveSpace().remove(top); ! stack.push(top); ! } ! }); String script = Project.getInstance().getScript(); |