functional language for computing with geometry
DEF ExtWall2Da = MKPOL:<<<0,0>,<7,0>,<7,5>,<0,8>,<7,3>,<9,4>, <10.5,1.5>,<10.5,0>,<11,1.5>, <11,3>>,<1..4,<2,8,7,6,5>,<6,7,9,10>>, <<1>,<2>,<3>>> & ((Q ~ #:12):1 * Q:8);
DEF ExtWall2Db = MKPOL:<<<0.5,0>,<4,0>,<5,0>,<6,0>,<6,3>,<5.5,3.5>, <5,3>,<4.5,3.5>,<4,3>,<2,4>, <0,3>,<0,1.5>,<0.5,1.5>>, <<10,11,12, 13>,<1,2,9,10,13>,<2,3,7,8,9>,<3,4,5,6,7>>,<1..4>> & ((Q ~ #:6):1 * Q:4);
DEF ExtWall2D = STRUCT:<ExtWall2Da, T:1:11, ExtWall2Db>;
DEF sizxExtWall = SIZE:1:ExtWall2D;
DEF ExtWall = R:<2,3>:(PI/2):(ExtWall2D * QUOTE:<1.5>);
DEF CurvedExtWall = (cylMap ~ T:2:r3 ~ S:<1,3>:<PI/(4*sizxExtWall),hw4/8>): ExtWall;
DEF DoubleExtWall = STRUCT: <CurvedExtWall, S:1:-1, CurvedExtWall>;
DEF FullExtWall = (STRUCT ~ ##:4):<DoubleExtWall, R:<1,2>:(PI/2)>;