Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv26289/src/net/sourceforge/bprocessor/model
Modified Files:
Command.java
Log Message:
Layer command started
Index: Command.java
===================================================================
RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Command.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -C2 -d -r1.36 -r1.37
*** Command.java 22 Nov 2007 15:36:43 -0000 1.36
--- Command.java 23 Nov 2007 08:34:05 -0000 1.37
***************
*** 1214,1216 ****
--- 1214,1276 ----
}
}
+
+ /**
+ * Layer
+ */
+ public static class Layer extends Command {
+ private Space net;
+
+ /**
+ * Constructs a frame command
+ * @param net Space
+ */
+ public Layer(Space net) {
+ this.net = net;
+ parameters.put("offset", 0.3);
+ parameters.put("interior", "");
+ parameters.put("top", "");
+ parameters.put("bottom", "");
+ parameters.put("side", "");
+ }
+
+ private Space find(String name) {
+ for (Space element : net.getElements()) {
+ if (element.getName().equals(name)) {
+ return element;
+ }
+ }
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void evaluate() {
+ Space interior = find((String) parameters.get("interior"));
+ Space roof = find((String) parameters.get("top"));
+ Space floor = find((String) parameters.get("bottom"));
+ Space exterior = find((String) parameters.get("side"));
+
+ Surface top = null;
+ Surface bottom = null;
+ List<Surface> sides = new LinkedList();
+
+ for (Surface current : net.getSurfaces()) {
+ Space other;
+ if (current.getFrontDomain() == interior) {
+ other = current.getBackDomain();
+ } else {
+ other = current.getFrontDomain();
+ }
+ if (other == roof) {
+ top = current;
+ } else if (other == floor) {
+ bottom = current;
+ } else if (other == exterior) {
+ sides.add(current);
+ }
+ }
+ Selection.primary().set((List) sides);
+ }
+
+ }
}
|