//////////////////////////////////////////////////////////////// // Nov/2019 // villandry park (2), variant (b) //////////////////////////////////////////////////////////////// border_width = 8 outer_layout_r = 100 small_path_width = 50 second_centre_size = 100 top_quarter_lshape = 160 _main_layout_centre_cell_width = 540 //////////////////////////////////////////////////////////////// // top-level layout //////////////////////////////////////////////////////////////// Park --> place(CENTRE) { Border1 } { i("iregion:shrink", outer_layout_r) set(type, "quarter") set(path_width, _main_layout_centre_cell_width) MainLayout } MainLayout --> grid(2, 2) { set(path_width, small_path_width) TopQuarter } { LayoutPathSection } { set(path_width, small_path_width) GridJunction } //////////////////////////////////////////////////////////////// // corner quarters //////////////////////////////////////////////////////////////// TopQuarter --> peel([0, 1], top_quarter_lshape) { set(variant, 3) QuarterOuterL } { TopQuarterTmp1 } TopQuarterTmp1 --> peel([1, 2], path_width) { set(type, "path") QuarterPath } { set(variant, 2) BlockB } QuarterPathSide --> select { PathRegion } BlockB --> select { set(variant, 1) QuarterRegion } QuarterOuterL --> select { set(variant, 1) QuarterRegion } //////////////////////////////////////////////////////////////// // middle paths //////////////////////////////////////////////////////////////// LayoutPathSection --> select { CarveCentrePath } CarveCentrePath --> peel ( ea[ 85 , 95 ] , small_path_width) { PathRegion } { GridPathTmp1 } GridPathTmp1--> peel ( ea[ -95, -85 ] , small_path_width) { PathRegion } { set(path_width,small_path_width) LayoutSectionMiddle } GridPathMiddle --> select { PathRegion } LayoutSectionMiddle --> grid(0, 2) { MainSectionQ } { MainSectionS } { _unproduced } MainSectionQ --> select { set(variant, 2) QuarterRegion } //////////////////////////////////////////////////////////////// // centre / main junction grid sub-layout //////////////////////////////////////////////////////////////// GridJunction --> place(CENTRE) { PathRegion } { i("iregion:shrink", small_path_width) set(path_width, small_path_width) GridCentre } GridCentre --> grid(2, 2) { QuarterInner } { PathInner } { i("builtin:square", second_centre_size) ParkCentre } QuarterInner --> select { set(variant, 3) QuarterRegion } //////////////////////////////////////////////////////////////// // materials and details //////////////////////////////////////////////////////////////// PathRegion --> select { set(type, "path") PathT } // add borders to regions QuarterRegion --> place(CENTRE) { set(type, "border") QBorder } { i("iregion:shrink", border_width) set(type, "quarter") QuarterEnd } ParkCentre --> scatter(CENTRE) { ParkCentreWithFountain : "Fountain1Marble" }