Begin a pointer interaction. On the first pointer, captures it and attaches
the move/up/cancel listeners; tracks the pointer in the array and position
map (reusing an existing Vector2 for the same id to avoid allocation).
Touch pointers are routed to onTouchStart; otherwise the mouse button +
shift state selects rotate/pan/zoom and seeds the matching start point.
Dispatches start when a gesture became active. No-op while disabled.
Begin a pointer interaction. On the first pointer, captures it and attaches the move/up/cancel listeners; tracks the pointer in the array and position map (reusing an existing Vector2 for the same id to avoid allocation). Touch pointers are routed to
onTouchStart; otherwise the mouse button + shift state selects rotate/pan/zoom and seeds the matching start point. Dispatchesstartwhen a gesture became active. No-op while disabled.