Outer-ellipse center (target-local).
Inner rect (target-local) — the cutout. Typically the selection's AABB.
OptionalminBandPx?: numberMinimum band thickness outside the inner rect, in screen
pixels. The framework widens rx/ry to at least
innerHalfExtent + minBandPx / meanScale(view.scale) for both
paint and hit-test.
This exists because the clamp has to know the view and the
affordance doesn't: ChromeState carries no scale. Expressing the
floor in world units instead (which is what the rotate ring used
to do) makes the band shrink on screen as you zoom in, until the
ring around a small shape is too thin to hover.
Outer-ellipse semi-axes (target-local).
An annulus region's effective outer semi-axes, with
minBandPxapplied.The affordance declares the natural ellipse (typically the smallest one containing the inner rect) plus a screen-space floor on band thickness; this is where the floor becomes world units, because this is where the view is known. Paint calls it too, so the visible ring and the hoverable ring are the same ring.