attr Number_Floors = 3
attr Floor_Height = 2.8
attr Tile_Width = 3.5
attr Relative_Bay_Height = 0.5
attr Bay_Angle = 60
attr Bay_Border_Thickness = 0.1
attr Bay_Border_Depth = 0.12
attr Bay_Window_LowerHeight = 0.8
Lot -->
extrude(world.y, Number_Floors * Floor_Height )
comp(f) {side : Facade | top : Roof. }
Facade -->
split(y) {~Floor_Height : Floor }*
Floor -->
split(x) {~Tile_Width : Tile }*
Tile -->
30%:
roofGable(Bay_Angle,0,0,false,0) # Reorient Roof vertically !
split(y) { ' Relative_Bay_Height : alignScopeToAxes(y) BayWindowVolume(scope.sy) | ~1 : NIL }
else :
Facade.
BayWindowVolume(yDim) -->
comp(f) {back : NIL | side : BayWindowSide | all : Rest. }
BayWindowSide -->
alignScopeToAxes(y)
split(y) {Bay_Border_Thickness : BayBorder | ~1 : BayWindow | Bay_Border_Thickness : BayBorder}
BayBorder -->
s('1.10,'1,Bay_Border_Depth)
center(x)
i("builtin:cube")
trim()
BayWindow -->
split(y){Bay_Window_LowerHeight : Wall. | ~1 : BayWindowFrame}
BayWindowFrame -->
offset(-.1)
comp(f){border : Frame | inside : Glass.}
Frame -->
extrude(.05)
Is it possible to create a single roof that can cover the initial mass and the bay windows on the top floor?