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());
|