Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv31082/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.37
retrieving revision 1.38
diff -C2 -d -r1.37 -r1.38
*** SpaceTool.java 13 Sep 2006 13:36:19 -0000 1.37
--- SpaceTool.java 14 Sep 2006 09:21:50 -0000 1.38
***************
*** 23,26 ****
--- 23,27 ----
import java.util.LinkedList;
import java.util.List;
+ import java.util.Stack;
import javax.swing.JMenu;
***************
*** 561,590 ****
HashMap globals = Project.getInstance().getGlobals().environment();
globals.put("cos", new Builtin() {
! public Object evaluate(Environment env) {
Double argument = (Double) env.get(0);
! return new Double(Math.cos(argument.doubleValue()));
}
});
globals.put("sin", new Builtin() {
! public Object evaluate(Environment env) {
Double argument = (Double) env.get(0);
! return new Double(Math.sin(argument.doubleValue()));
}
});
globals.put("vertex", new Builtin() {
! public Object evaluate(Environment env) {
Double x = (Double) env.get(0);
Double y = (Double) env.get(1);
Double z = (Double) env.get(2);
Vertex result = new Vertex(x.doubleValue(), y.doubleValue(), z.doubleValue());
! return result;
}
});
globals.put("edge", new Builtin() {
! public Object evaluate(Environment env) {
Vertex from = (Vertex) env.get(0);
Vertex to = (Vertex) env.get(1);
Edge result = new Edge(from, to);
! return result;
}
});
--- 562,591 ----
HashMap globals = Project.getInstance().getGlobals().environment();
globals.put("cos", new Builtin() {
! public void evaluate(Environment env, Stack stack) {
Double argument = (Double) env.get(0);
! stack.push(new Double(Math.cos(argument.doubleValue())));
}
});
globals.put("sin", new Builtin() {
! public void evaluate(Environment env, Stack stack) {
Double argument = (Double) env.get(0);
! stack.push(new Double(Math.sin(argument.doubleValue())));
}
});
globals.put("vertex", 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);
Vertex result = new Vertex(x.doubleValue(), y.doubleValue(), z.doubleValue());
! stack.push(result);
}
});
globals.put("edge", new Builtin() {
! public void evaluate(Environment env, Stack stack) {
Vertex from = (Vertex) env.get(0);
Vertex to = (Vertex) env.get(1);
Edge result = new Edge(from, to);
! stack.push(result);
}
});
***************
*** 609,624 ****
Function function = new Function();
parser.statement(function);
! Object result = function.evaluate(env);
! if (result instanceof Vertex) {
! result = Geometry.insertVertex((Vertex)result, true);
! Selection.primary().set(result);
! }
!
! if (result instanceof Edge) {
! result = Geometry.insertEdge((Edge)result, true);
! Selection.primary().set(result);
}
!
! glv.setLengthValue(result.toString());
typing = false;
--- 610,628 ----
Function function = new Function();
parser.statement(function);
! Stack stack = new Stack();
! function.evaluate(env, stack);
! while (!stack.empty()) {
! Object result = stack.pop();
! if (result instanceof Vertex) {
! result = Geometry.insertVertex((Vertex)result, true);
! Selection.primary().add(result);
! } else if (result instanceof Edge) {
! result = Geometry.insertEdge((Edge)result, true);
! Selection.primary().add(result);
! } else {
! glv.setLengthValue(result.toString());
! }
}
!
typing = false;
|