Uniform group transform proposed by a gesture and shaped by behaviors.
Applied identically to every dragged id so a multi-select gesture cannot
drift apart (the historical bug: snap shifted only the primary, secondaries
kept the raw cursor delta).
v1 of the migration: only 'translate' is wired end-to-end. 'scale' and
'rotate' exist for forward compatibility — useResize already remaps
each leaf via geom.remapBounds, and useRotate is single-id-pivot-bound,
so neither suffers the multi-select drift 'translate' did. Migrate those
gestures to emit GroupTransform in a follow-up.
Uniform group transform proposed by a gesture and shaped by behaviors. Applied identically to every dragged id so a multi-select gesture cannot drift apart (the historical bug: snap shifted only the primary, secondaries kept the raw cursor delta).
v1 of the migration: only
'translate'is wired end-to-end.'scale'and'rotate'exist for forward compatibility —useResizealready remaps each leaf viageom.remapBounds, anduseRotateis single-id-pivot-bound, so neither suffers the multi-select drift'translate'did. Migrate those gestures to emitGroupTransformin a follow-up.