[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Command.java, 1.20, 1.21
Status: Pre-Alpha
Brought to you by:
henryml
From: rimestad <rim...@us...> - 2007-11-05 18:09:58
|
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(); + } + } } |