Merge pull request #7511 from dotCooCoo/fix/live-paint-make-drawn-rows

Live Paint: Make keeps every fill and stroke row that draws on the source
This commit is contained in:
BFlat
2026-11-15 09:46:20 +07:00
committed by GitHub
5 changed files with 746 additions and 35 deletions
+14 -2
View File
@@ -3698,8 +3698,20 @@ already walks Image Trace. Short agent entry points:
`ui.imageTracePresetDialog {params?, rename?}` opens the Image Trace panel's Save as New Preset… or Rename… dialog.
- Live Paint: `livePaint.make`, `livePaint.merge`, `livePaint.fill {group?, point}`, `livePaint.strokeEdge`,
`livePaint.info {group?|id?}`, `livePaint.release`, `livePaint.expand`, and `livePaint.gapOptions {ids?, detect?, size?,
color?, closeGaps?}` (Object › Live Paint › Gap Options). Make gives each covered face the fill of its front-most
covering source, including compound paths with shared curved boundaries. Expand keeps those face fills.
color?, closeGaps?}` (Object › Live Paint › Gap Options). Make gives each covered face the fill rows that draw of
its front-most covering source that has one, including compound paths with shared curved boundaries, and each edge
the stroke rows that draw of its source. A row draws when it is shown and has paint and an opacity above 0; a
stroke also needs a weight above 0, and a source whose opacity is 0 has no rows that draw. The rows keep their order
and settings (opacity, blending mode, effects, overprint, and a stroke's weight, caps, joins, dashes and alignment),
gradients keep their fit on the source, and the face or edge takes the source's opacity and blending mode. Where a
path is cut into several edges, each edge runs the way the path does, its dashes go on from where it starts along
the path (Align Dashes to Corners is turned off on it), the arrowheads stay only at the path's own ends, and a width
profile or brush stays only on an edge that runs the whole path. A gradient applied along a stroke starts again on
each cut edge, and an inside or outside stroke is drawn centered on an edge that is an open piece of a closed path.
When `livePaint.gapOptions` or `livePaint.merge` cuts an edge into pieces, each piece takes the edge's paint, with
its rows fitted to its part of the edge in the same way. A face or edge given no such row has one unpainted row. Rows that do not draw stay with the stored sources, which
`livePaint.release` returns unchanged. The source's object effects and the strokes' pen pressure are not carried.
Expand keeps those face fills.
`livePaint.expand` keeps each face and edge that draws, with all its fill and stroke rows: it is shown, its opacity
is above 0, and a fill or stroke row is shown, has paint and an opacity above 0 (a stroke also a weight above 0),
whichever row is on top. A painted lower row under an unpainted top row keeps the part; a part whose only painted