(x, source)
| 4984 | const getInteractionX: RenderCoordinator['getInteractionX'] = () => interactionX; |
| 4985 | |
| 4986 | const setInteractionX: RenderCoordinator['setInteractionX'] = (x, source) => { |
| 4987 | assertNotDisposed(); |
| 4988 | const normalized = x !== null && Number.isFinite(x) ? x : null; |
| 4989 | |
| 4990 | // External interaction should not depend on y, so we treat it as “sync” mode. |
| 4991 | pointerState = { ...pointerState, source: normalized === null ? 'mouse' : 'sync' }; |
| 4992 | |
| 4993 | setInteractionXInternal(normalized, source); |
| 4994 | |
| 4995 | if (normalized === null && pointerState.hasPointer === false) { |
| 4996 | crosshairRenderer.setVisible(false); |
| 4997 | highlightRenderer.setVisible(false); |
| 4998 | hideTooltipInternal(); |
| 4999 | emitCrosshairCallback(null); |
| 5000 | } |
| 5001 | requestRender(); |
| 5002 | }; |
| 5003 | |
| 5004 | const onInteractionXChange: RenderCoordinator['onInteractionXChange'] = (callback) => { |
| 5005 | assertNotDisposed(); |
nothing calls this directly
no test coverage detected