Update of /cvsroot/bprocessor/facade/src/net/sourceforge/bprocessor/facade/modellor
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv27106/src/net/sourceforge/bprocessor/facade/modellor
Modified Files:
NetFacadeModellor.java
Log Message:
added a new type cut and the possibility to choose between them.
Index: NetFacadeModellor.java
===================================================================
RCS file: /cvsroot/bprocessor/facade/src/net/sourceforge/bprocessor/facade/modellor/NetFacadeModellor.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** NetFacadeModellor.java 15 Mar 2007 10:15:08 -0000 1.21
--- NetFacadeModellor.java 19 Mar 2007 11:54:32 -0000 1.22
***************
*** 51,54 ****
--- 51,57 ----
private static final double FRAME_DEPTH = 0.05;
+ /** The depth of window and door frames */
+ private static final double GLASS_FRAME = 0.02;
+
/** serial id */
private static final long serialVersionUID = 1L;
***************
*** 353,356 ****
--- 356,367 ----
s.getParameters().put(new Attribute("type", sel));
}
+ if (!single && (env.get("cut") == null)) {
+ List options = new LinkedList();
+ options.add("type1");
+ options.add("type2");
+ Selector sel = new Selector(options);
+ sel.setCurrentValue("type1");
+ s.getParameters().put(new Attribute("cut", sel));
+ }
}
}
***************
*** 372,377 ****
while (fields.hasNext()) {
Surface field = (Surface)fields.next();
! if (field.getEdges().size() > 3) {
Surface cut1 = cutType1();
Surface cut2 = cutType2();
cut1.setBackDomain(frame);
--- 383,395 ----
while (fields.hasNext()) {
Surface field = (Surface)fields.next();
! if (field.getEdges().size() > 3) {
! Map envF = field.getParameters().environment();
Surface cut1 = cutType1();
+ if (envF.get("cut") instanceof Selector) {
+ Selector sel = (Selector)envF.get("cut");
+ if (sel.getCurrentValue().equals("type2")) {
+ cut1 = cutType3();
+ }
+ }
Surface cut2 = cutType2();
cut1.setBackDomain(frame);
***************
*** 385,392 ****
Set<Surface> frame1 = generateFrame(cut1, field.getEdges(), out);
Set<Surface> frame2 = generateFrame(cut2, field.getEdges(), out);
frame.removeSurface(cut1);
frame.removeSurface(cut2);
space.addAll(frame1);
! space.addAll(frame2);
}
}
--- 403,413 ----
Set<Surface> frame1 = generateFrame(cut1, field.getEdges(), out);
Set<Surface> frame2 = generateFrame(cut2, field.getEdges(), out);
+
frame.removeSurface(cut1);
frame.removeSurface(cut2);
space.addAll(frame1);
! space.addAll(frame2);
! Geometry.allPossibleCollapses(Geometry.collect(frame1));
! Geometry.allPossibleCollapses(Geometry.collect(frame2));
}
}
***************
*** 476,482 ****
} else if (type.equals("Door")) {
frameSize = DOOR_FRAME;
! }
}
! if (frameSize > 0) {
Map offmap1 = new HashMap<Edge, Double>();
Map offmap2 = new HashMap<Edge, Double>();
--- 497,503 ----
} else if (type.equals("Door")) {
frameSize = DOOR_FRAME;
! }
}
! if (frameSize > FRAME_IDENTATION) {
Map offmap1 = new HashMap<Edge, Double>();
Map offmap2 = new HashMap<Edge, Double>();
***************
*** 518,523 ****
assignOpposite(front, hole, space, f);
Geometry.holeAnalysis(hole);
! }
}
--- 539,576 ----
assignOpposite(front, hole, space, f);
+
Geometry.holeAnalysis(hole);
! } /*else if (frameSize == 0) {
! Map offmap1 = new HashMap<Edge, Double>();
! for (Object o : hole.getEdges()) {
! Edge e = (Edge)o;
! offmap1.put(e, FRAME_IDENTATION);
! }
! Surface in = new Surface(Edge.placeOffset(hole.getEdges(), hole, offmap1));
! Space f = new Space(type + " Frame",
! Space.CONSTRUCTION,
! Space.ELEMENT_LEVEL,
! true);
! Space g = new Space("Glass",
! Space.CONSTRUCTION,
! Space.ELEMENT_LEVEL,
! true);
! g.setTransparent(true);
! space.add(g);
! space.add(f);
! assignSame(front, in, space, f);
! assignSame(front, hole, space, g);
! in = space.insert(in);
! Geometry.holeAnalysis(in);
!
! Set sides = new HashSet();
! Surface inEx = extrudeIntoSpace(in, FRAME_DEPTH, sides);
! space.add(inEx);
! assignSame(front, inEx, space, frame);
! Geometry.holeAnalysis(inEx);
!
! //assignOpposite(front, hole, space, f);
! Geometry.holeAnalysis(hole);
! }*/
}
***************
*** 858,861 ****
--- 911,933 ----
}
+ private static Surface cutType3() {
+ List<Vertex> vl = new LinkedList<Vertex>();
+ Vertex first = new Vertex(0, 0, 0);
+ vl.add(new Vertex(0.050, 0, 0));
+ vl.add(new Vertex(0.050, 0.125, 0));
+ vl.add(new Vertex(0.004, 0.125, 0));
+ vl.add(new Vertex(0.004, 0.121, 0));
+ vl.add(new Vertex(0.000, 0.121, 0));
+ List<Edge> el = new LinkedList<Edge>();
+ Vertex prevV = first;
+ for (Vertex v : vl) {
+ el.add(new Edge(prevV, v));
+ prevV = v;
+ }
+ el.add(new Edge(prevV, first));
+ Surface cut = new Surface(el);
+ return cut;
+ }
+
/**
* Generates one frame post.
|