Record intersection as built in the requirement and the mask plan

FR-DEV-19a said a part is added to the mask or taken out of it, and
mask-editing.md listed Intersect as an M2 item with nothing built. Both
now say what shipped: the requirement names the third join and why it is
a product rather than a minimum, and how old and new sidecars read across
it; the plan marks the blend-table row built, names the tests that hold
the GPU to the definition, and splits M2 into what is done and what is
still outstanding (joining non-painted parts from the panel, per-part
distance fields, folding two layers).
This commit is contained in:
2026-09-24 21:25:48 -04:00
parent 8f3df7b68d
commit e8f68a92f8
2 changed files with 30 additions and 4 deletions
+11 -3
View File
@@ -544,9 +544,17 @@ decade; a mask that cannot be corrected is the reason an edit leaves this applic
editor.
**FR-DEV-19a — Mask composition.** A layer's mask is an ordered list of parts, each naming a source
and how it joins the mask before it — added to it, or taken out of it. A layer of one part is
exactly the layer that existed before this, and reads and writes the same sidecar. The parts of a
layer merge under FR-NC-9 as the layer does, and each carries its own edge treatment.
and how it joins the mask before it — added to it, taken out of it, or intersected with it, keeping
only where both agree. A layer of one part is exactly the layer that existed before this, and reads
and writes the same sidecar. The parts of a layer merge under FR-NC-9 as the layer does, and each
carries its own edge treatment.
*Intersection added 2026-09-24* (issue #9, `mask-editing.md` M2). Union and subtraction were built
first; the selections that most need composing — the sky that is also bright, the subject that is
also skin — are intersections, and spelling one as a subtraction needs a part that selects the
complement. Intersection is the product of the two coverages, which is the minimum wherever either
side is fully in or out. A sidecar written before it never names it; a build from before it reads
the word as a union, which keeps the part visible rather than dropping it.
**FR-DEV-19b — Hand correction.** A part may be painted, with add and erase strokes, at a radius,
hardness and flow the photographer sets. Strokes are stored as normalised source coordinates and