Private_Private_Private_Private_Private_Private_PrivatectxCursor left the canvas — drop the pending position and cancel rAF.
Drop the pending cursor and cancel the armed rAF without forgetting the suppression state. Used when the stored canvas-local coordinate is no longer valid — e.g. a page/ancestor scroll moved the canvas after the rect was cached but before the settle pick fired, so the pending coordinate would resolve against the stale frame. Picking re-arms naturally on the next mousemove (which re-fetches the rect).
Camera/geometry/viewport changed — bump the dirty axis and re-arm.
Suppress (true) or resume (false) picking. Resume re-arms the
rAF when there's a pending cursor so orbit-and-release picks once
the camera settles, without requiring a fresh mousemove.
Cancel any pending rAF and forget the pending cursor. Idempotent.
PrivateschedulePrivatecancelPrivaterafPer-frame settle check. Fires when both axes have been quiet for HOVER_SETTLE_MS and at least one axis has changed since the last pick. Reschedules itself while waiting; stops once idle.
Record a cursor position from a mousemove. The position + timestamp are tracked even while suppressed so the re-pick on resume (orbit/pan/zoom release) uses where the cursor actually is — not a stale pre-interaction position. While suppressed we still skip scheduling, so no pick fires mid-interaction;
setSuppressed(false)re-arms the loop using the latest tracked position.