OptionalgetRead the pose's rotation in radians. Pivot is the AABB center
(getBounds(pose) center). Default 0 when omitted — descriptor
declares "this pose has no rotation." When supplied and non-zero,
useResize projects the drag delta into the leaf's local frame,
runs anchor math there, and translates the resulting pose so the
diagonally opposite world-space corner is pinned.
OptionalintersectsTrue iff any portion of the pose's geometry intersects rect. Optional
— when omitted, area-select and similar callers test against getBounds
AABB (looser, but correct for axis-aligned rect poses).
OptionallerpOptionalsupportsTrue iff this pose shape can carry a rotation. Consulted by the
rotation affordance to decide whether to render the rotate cursor /
drag-band over a selection. When omitted, the kit assumes true for
back-compat — descriptors whose poses lack x/y/width/height/rotation
fields (e.g. polygon Paths) should return false so the affordance
hides instead of exposing a non-functional rotate cursor.
Optionaltranslate
Bridges arbitrary
TPoseshapes into the resize hook's bounds-driven math. The hook reads bounds viagetBounds, runs anchor-relative math on those bounds, then asksremapBoundsto project the result back into TPose.remapBounds(pose, src, dst)is a single operation that subsumes both "set my own AABB to dst" (single-leaf resize) and "scale me as a leaf inside parent's src→dst rect" (group resize) — they're the same affine map. For rect-shaped poses the default geometry interprets the pose as its own bounds; for Path or polygon poses the consumer supplies a projection that knows how to read and rewrite the underlying geometry.