Tweak content selecton logic

This commit is contained in:
Matthias Bisping 2023-01-18 16:56:14 +01:00
parent 5e51fd1d10
commit fd57fe99b7

View File

@ -460,9 +460,9 @@ class RandomContentRectangle(ContentRectangle):
class Size(Enum):
SMALL = 1000
MEDIUM = 5000
LARGE = 10000
SMALL = sqrt(100**2)
MEDIUM = sqrt((100*5)**2)
LARGE = sqrt((100*10)**2)
def get_size_class(rectangle: Rectangle):
@ -504,26 +504,29 @@ class RecursiveRandomTable(RandomContentRectangle):
def inner(cell):
inner_region = shrink_rectangle(cell, 0.1)
choice = random.choice(["text", "plot", "recurse", "plain_table"])
choice = random.choice(["text", "plot", "recurse", "plain_table", "blank"])
size = get_size(inner_region)
if size <= Size.LARGE.value:
if choice == "recurse":
return generate_recursive_random_table(cell, border_width=0)
elif choice == "plot" and is_square_like(cell):
return generate_random_plot(cell)
else:
return generate_random_table(cell)
if size <= Size.SMALL.value:
return generate_random_text_block(inner_region)
elif size <= Size.MEDIUM.value:
if choice == "plain_table":
return generate_random_table(cell)
elif choice == "text":
return generate_random_text_block(inner_region)
elif choice == "plot":
return generate_random_plot(cell)
else:
return generate_random_text_block(inner_region)
elif size <= Size.SMALL.value:
if choice == "text":
return generate_random_text_block(inner_region)
return cell
elif size <= Size.LARGE.value:
if choice == "plot" and is_square_like(cell):
return generate_random_plot(cell)
# elif choice == "plain_table":
# return generate_random_table(cell)
elif choice == "blank":
return cell
else:
return generate_recursive_random_table(cell, border_width=0)
return cell
cell.content = inner(cell).content