Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv7391/src/net/sourceforge/bprocessor/model
Modified Files:
Command.java
Log Message:
added duplicate and instanciate as commands
Index: Command.java
===================================================================
RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Command.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** Command.java 1 Nov 2007 12:48:07 -0000 1.20
--- Command.java 5 Nov 2007 18:08:54 -0000 1.21
***************
*** 827,829 ****
--- 827,888 ----
}
+ /**
+ * a command for instanciating a union
+ * @author rimestad
+ */
+ public static class Instance extends Command {
+ private Space space;
+ /**
+ * Create a instance
+ * @param s the space to instanciate
+ */
+ public Instance(Space s) {
+ space = s;
+ parameters.put(new Attribute("scale", 1.0));
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void evaluate() {
+ Project proj = Project.getInstance();
+ Space world = proj.getActiveSpace();
+ double scale = parameters.getDouble("scale");
+ Space instance = new Space(space.getName() + " instance ", space.getType(), false);
+ instance.setProto(space);
+ world.add(instance);
+ proj.changed(world);
+ proj.checkpoint();
+ }
+ }
+
+ /**
+ * a command for instanciating a union
+ * @author rimestad
+ */
+ public static class Duplicate extends Command {
+ private Space space;
+ /**
+ * Create a duplicate
+ * @param s the space to duplicate
+ */
+ public Duplicate(Space s) {
+ space = s;
+ parameters.put(new Attribute("scale", 1.0));
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void evaluate() {
+ Project proj = Project.getInstance();
+ Space world = proj.getActiveSpace();
+ double scale = parameters.getDouble("scale");
+ Space created = space.copy();
+ for (Vertex v : created.collect()) {
+ v.scale(scale);
+ }
+ world.add(created);
+ proj.changed(world);
+ proj.checkpoint();
+ }
+ }
}
|