bundle: update (2026-06-21)

This commit is contained in:
2026-06-21 09:22:22 +00:00
parent ee650f2b71
commit bf4b12d15c

View File

@@ -82,6 +82,16 @@ def point_at_length(path, target_length):
return (last_point[0], last_point[1]), (1.0, 0.0) return (last_point[0], last_point[1]), (1.0, 0.0)
def _apply_placement(item, x, y, angle):
# Bake placement into the path data; leaving it as a transform attr lets
# Inkscape shift the shape on ungroup (near-identity matrices lose the X translate).
transform = Transform()
transform.add_translate(x, y)
transform.add_rotate(angle)
item.path = item.path.transform(transform)
return item
def pattern_along_path(path, num_items, item_width, start_offset, spacing, create_shape_fn): def pattern_along_path(path, num_items, item_width, start_offset, spacing, create_shape_fn):
if isinstance(path, str): if isinstance(path, str):
@@ -104,12 +114,7 @@ def pattern_along_path(path, num_items, item_width, start_offset, spacing, creat
angle = math.degrees(math.atan2(tangent[1], tangent[0])) angle = math.degrees(math.atan2(tangent[1], tangent[0]))
item = create_shape_fn(i) item = create_shape_fn(i)
_apply_placement(item, point[0], point[1], angle)
transform = Transform()
transform.add_translate(point[0], point[1])
transform.add_rotate(angle)
item.transform = transform
items.append(item) items.append(item)
elif spacing == "endpoints": elif spacing == "endpoints":
@@ -120,12 +125,7 @@ def pattern_along_path(path, num_items, item_width, start_offset, spacing, creat
angle = math.degrees(math.atan2(tangent[1], tangent[0])) angle = math.degrees(math.atan2(tangent[1], tangent[0]))
item = create_shape_fn(i) item = create_shape_fn(i)
_apply_placement(item, point[0], point[1], angle)
transform = Transform()
transform.add_translate(point[0], point[1])
transform.add_rotate(angle)
item.transform = transform
items.append(item) items.append(item)
elif spacing == "simple": elif spacing == "simple":
@@ -138,12 +138,7 @@ def pattern_along_path(path, num_items, item_width, start_offset, spacing, creat
angle = math.degrees(math.atan2(tangent[1], tangent[0])) angle = math.degrees(math.atan2(tangent[1], tangent[0]))
item = create_shape_fn(i) item = create_shape_fn(i)
_apply_placement(item, point[0], point[1], angle)
transform = Transform()
transform.add_translate(point[0], point[1])
transform.add_rotate(angle)
item.transform = transform
items.append(item) items.append(item)
return items return items