clipping_mode = 1
path_width = 70
rays_inner_graph_thinout = 0
rays_remove_path_overlaps = 1
selection_internal_minimal = 1
 
Park --> rays(
	[0, 0.2, 0.5, 0.8]
	, R300
	, 125
	) 
	{ border: Quarter1 | else: QuarterInner }
	{ Path1 } 
	{ Junction1 }

////////////////////////////////////////////////////////////////
// junctions
////////////////////////////////////////////////////////////////

// at a junction centre either a fountain or a tree
Junction1 --> select { 75%: JunctionTree | JunctionFountain }

JunctionFountain --> scatter(CENTRE) { jf: "Fountain1Marble" }

JunctionTree -->  place(CENTRE)
	{	JunctionPath }
	{	i("iregion:shrink", %25) 
		JunctionTree1 }

JunctionTree1 --> place(CENTRE)
	{	set(type, "border") 
		JunctionPath1 }
	{	i("iregion:shrink", %6) 
		set(type, "quarter") 
		set(elevation, 2) 
		JunctionTreeQuarter }

JunctionTreeQuarter --> scatter(CENTRE) { jt: "3dast_banana_tree" }

////////////////////////////////////////////////////////////////
// quarters
////////////////////////////////////////////////////////////////

// outer (boundary-touching)
Quarter1 --> peel([1, 2], 80) { 
	BushQOuter} { QuarterBoundary }

// outer boundary
QuarterBoundary --> place([0.1, 0.9], 80, [0.1,0.4,0.6,0.9]) 
	{ Quarter2A  }  
	{ i("builtin:circle", 20) BoundaryPlantsRegion} 
	{ Quarter2B }

// outer plants
BoundaryPlantsRegion --> scatter(CENTRE) {  BoundaryPlantsRegionWithPlants : "nettle_bush" }
		
BushQOuter--> peel([1, 2], 19) { set(type, "bushes") BushQ2Outer} {  Quarter3 }

Quarter3 --> place([1,2], 30, [0.1,0.4,0.6,0.9]) 
	{ Quarter3A  }  
	{ i("builtin:circle", 16) BoundaryPlantsRegion} 
	{ Quarter3B }

// two variations for inner regions
QuarterInner --> select { 50%: QuarterInner1 | QuarterInner2 }

QuarterInner1	--> peel([0, 1], 50) 	{ BushQInner } 	{ Grass }
BushQInner		--> peel([0, 1], 30)	{ BushQ2Inner }	{ set(elevation, 24) Bushes }
BushQ2Inner		--> peel([0, 1], 20) 	{ BushQ3Inner }	{ set(elevation, 16) Bushes }
BushQ3Inner		--> peel([0, 1], 10) 	{ Q4Inner } 			{ set(elevation, 8) 	Bushes }
Q4Inner			--> select { Grass}

QuarterInner2	--> peel([0, 1], 60) 	{ BushQ1Inner2 } 	{ Grass }
BushQ1Inner2	--> peel([0, 1], 50)	{ BushQ2Inner2 }	{ Bushes }
BushQ2Inner2	--> peel([0, 1], 40) 	{ BushQ3Inner2 }	{ Grass }
BushQ3Inner2	--> peel([0, 1], 30) 	{ BushQ4Inner2 } 	{ Bushes }
BushQ4Inner2	--> peel([0, 1], 20) 	{ BushQ5Inner2 }	{ Grass }
BushQ5Inner2	--> peel([0, 1], 10) 	{ BushQ6Inner2 } 	{ Bushes }
BushQ6Inner2	--> select { Grass}

// materal attribute assignment
Grass --> select { set(type, "quarter") QuarterGrass}
Bushes --> select { set(type, "bushes") QuarterBushes}


