Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv25482/src/net/sourceforge/bprocessor/gl/tool
Modified Files:
SpaceTool.java
Log Message:
push, pop, translate, rotate and scale implemented in b-script
Index: SpaceTool.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/SpaceTool.java,v
retrieving revision 1.53
retrieving revision 1.54
diff -C2 -d -r1.53 -r1.54
*** SpaceTool.java 11 Oct 2006 13:28:02 -0000 1.53
--- SpaceTool.java 11 Oct 2006 14:05:20 -0000 1.54
***************
*** 39,46 ****
--- 39,49 ----
import net.sourceforge.bprocessor.model.Edge;
import net.sourceforge.bprocessor.model.Entity;
+ import net.sourceforge.bprocessor.model.IDTransform;
import net.sourceforge.bprocessor.model.Project;
+ import net.sourceforge.bprocessor.model.Scale;
import net.sourceforge.bprocessor.model.Selection;
import net.sourceforge.bprocessor.model.Space;
import net.sourceforge.bprocessor.model.Surface;
+ import net.sourceforge.bprocessor.model.Transform;
import net.sourceforge.bprocessor.model.TransformStack;
import net.sourceforge.bprocessor.model.Translate;
***************
*** 66,69 ****
--- 69,75 ----
private TransformStack transform;
+ /** ID */
+ private Transform id;
+
/**
* Construct the SpaceTool
***************
*** 610,613 ****
--- 616,620 ----
transform = new TransformStack();
+ id = new IDTransform();
HashMap globals = Project.getInstance().getGlobals().environment();
***************
*** 636,639 ****
--- 643,659 ----
}
});
+ globals.put("push", new Builtin() {
+ public void evaluate(Environment env, Stack stack) {
+ transform.push(id);
+ }
+ });
+ globals.put("pop", new Builtin() {
+ public void evaluate(Environment env, Stack stack) {
+ while (transform.pop() != id) {
+ // NOTHING
+ }
+ }
+ });
+
globals.put("vertex", new Builtin() {
***************
*** 700,703 ****
--- 720,733 ----
}
});
+ globals.put("scale", 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 Scale(x.doubleValue(), y.doubleValue(), z.doubleValue())
+ );
+ }
+ });
globals.put("rotate", new Builtin() {
public void evaluate(Environment env, Stack stack) {
|