@flighthq/interaction 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/displayHitTests.d.ts +13 -0
  2. package/dist/displayHitTests.d.ts.map +1 -0
  3. package/dist/displayHitTests.js +38 -0
  4. package/dist/displayHitTests.js.map +1 -0
  5. package/dist/displayObjectOverlap.d.ts +5 -0
  6. package/dist/displayObjectOverlap.d.ts.map +1 -0
  7. package/dist/displayObjectOverlap.js +21 -0
  8. package/dist/displayObjectOverlap.js.map +1 -0
  9. package/dist/hitTests.d.ts +38 -0
  10. package/dist/hitTests.d.ts.map +1 -0
  11. package/dist/hitTests.js +80 -0
  12. package/dist/hitTests.js.map +1 -0
  13. package/dist/index.d.ts +8 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +8 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/interactionManager.d.ts +38 -0
  18. package/dist/interactionManager.d.ts.map +1 -0
  19. package/dist/interactionManager.js +470 -0
  20. package/dist/interactionManager.js.map +1 -0
  21. package/dist/registerDefaultHitTestPoints.d.ts +2 -0
  22. package/dist/registerDefaultHitTestPoints.d.ts.map +1 -0
  23. package/dist/registerDefaultHitTestPoints.js +21 -0
  24. package/dist/registerDefaultHitTestPoints.js.map +1 -0
  25. package/dist/spatialQuery.d.ts +4 -0
  26. package/dist/spatialQuery.d.ts.map +1 -0
  27. package/dist/spatialQuery.js +37 -0
  28. package/dist/spatialQuery.js.map +1 -0
  29. package/dist/spriteHitTests.d.ts +5 -0
  30. package/dist/spriteHitTests.d.ts.map +1 -0
  31. package/dist/spriteHitTests.js +11 -0
  32. package/dist/spriteHitTests.js.map +1 -0
  33. package/package.json +43 -0
  34. package/src/displayHitTests.test.ts +137 -0
  35. package/src/displayObjectOverlap.test.ts +78 -0
  36. package/src/hitTests.test.ts +206 -0
  37. package/src/interactionManager.test.ts +635 -0
  38. package/src/registerDefaultHitTestPoints.test.ts +29 -0
  39. package/src/spatialQuery.test.ts +47 -0
  40. package/src/spriteHitTests.test.ts +76 -0
@@ -0,0 +1,470 @@
1
+ import { inverseMatrixTransformPointXY } from '@flighthq/geometry';
2
+ import { getNodeParent, getNodeRuntime, getNodeWorldTransformMatrix } from '@flighthq/node';
3
+ import { connectSignal, createSignal, disconnectSignal, emitSignal, isSlotConnected } from '@flighthq/signals';
4
+ import { findGraphHitTarget } from './hitTests';
5
+ export function captureInteractionPointer(manager, pointerId, target) {
6
+ manager.pointerCaptures.set(pointerId, target);
7
+ }
8
+ /**
9
+ * Wires an input source's pointer/keyboard signals into an interaction manager, forwarding each
10
+ * event to the matching dispatch function.
11
+ *
12
+ * Coordinate space: the pointer coordinates on an `InputPointerData` from the DOM input backend are
13
+ * CSS pixels (see `attachPointerInput`), while hit testing runs in the scene's device-pixel space.
14
+ * `coordScale` bridges the two and is multiplied into every forwarded pointer coordinate; pass the
15
+ * canvas's backing-store scale — typically `window.devicePixelRatio`, matching how the renderer
16
+ * sizes its drawing buffer. The default `1` is correct only when the backing store is unscaled.
17
+ *
18
+ * This scales but does not translate: it assumes the pointer coordinates are already canvas-local
19
+ * (origin at the canvas's top-left). A backend delivering viewport-relative coordinates for a canvas
20
+ * not at the viewport origin must subtract the canvas bounding-rect offset per event before this
21
+ * point, since that offset moves with scroll and layout.
22
+ */
23
+ export function connectInputToInteraction(input, manager, coordScale = 1) {
24
+ const sx = (v) => v * coordScale;
25
+ const onKeyDown = (data) => dispatchInteractionKeyDown(manager, data.key, data.keyCode, data);
26
+ const onKeyUp = (data) => dispatchInteractionKeyUp(manager, data.key, data.keyCode, data);
27
+ const onPointerCancel = (data) => dispatchInteractionPointerCancel(manager, sx(data.x), sx(data.y), data);
28
+ const onPointerDown = (data) => dispatchInteractionPointerDown(manager, sx(data.x), sx(data.y), data.button, data);
29
+ const onPointerMove = (data) => dispatchInteractionPointerMove(manager, sx(data.x), sx(data.y), data.button, data);
30
+ const onPointerUp = (data) => dispatchInteractionPointerUp(manager, sx(data.x), sx(data.y), data.button, Date.now(), data);
31
+ const onWheel = (data) => dispatchInteractionWheel(manager, sx(data.x), sx(data.y), data.deltaX, data.deltaY, data);
32
+ connectSignal(input.onKeyDown, onKeyDown);
33
+ connectSignal(input.onKeyUp, onKeyUp);
34
+ connectSignal(input.onPointerCancel, onPointerCancel);
35
+ connectSignal(input.onPointerDown, onPointerDown);
36
+ connectSignal(input.onPointerMove, onPointerMove);
37
+ connectSignal(input.onPointerUp, onPointerUp);
38
+ connectSignal(input.onWheel, onWheel);
39
+ return () => {
40
+ disconnectSignal(input.onKeyDown, onKeyDown);
41
+ disconnectSignal(input.onKeyUp, onKeyUp);
42
+ disconnectSignal(input.onPointerCancel, onPointerCancel);
43
+ disconnectSignal(input.onPointerDown, onPointerDown);
44
+ disconnectSignal(input.onPointerMove, onPointerMove);
45
+ disconnectSignal(input.onPointerUp, onPointerUp);
46
+ disconnectSignal(input.onWheel, onWheel);
47
+ };
48
+ }
49
+ export function connectInteractionSignal(manager, target, name, slot, options) {
50
+ const signal = enableInteractionSignals(target)[name];
51
+ const trackedSlot = getTrackedInteractionSignalSlot(manager, target, name, slot);
52
+ if (trackedSlot !== null && isSlotConnected(signal, trackedSlot))
53
+ return;
54
+ if (isSlotConnected(signal, slot)) {
55
+ setTrackedInteractionSignalSlot(manager, target, name, slot, slot);
56
+ incrementInteractionSignalSubscriberCount(manager, name);
57
+ return;
58
+ }
59
+ const connectedSlot = options?.once === true
60
+ ? (data) => {
61
+ slot(data);
62
+ removeTrackedInteractionSignalSlot(manager, target, name, slot);
63
+ decrementInteractionSignalSubscriberCount(manager, name);
64
+ }
65
+ : slot;
66
+ connectSignal(signal, connectedSlot, options);
67
+ setTrackedInteractionSignalSlot(manager, target, name, slot, connectedSlot);
68
+ incrementInteractionSignalSubscriberCount(manager, name);
69
+ }
70
+ export function createInteractionManager(root, options = {}) {
71
+ return {
72
+ doubleClickDelay: 500,
73
+ enabled: options.enabled ?? true,
74
+ pointerCaptures: new Map(),
75
+ pointerStates: new Map(),
76
+ root,
77
+ signalSubscriberCounts: new Map(),
78
+ trackedSignalSlots: new Map(),
79
+ trackedSubscribersOnly: options.trackedSubscribersOnly ?? false,
80
+ };
81
+ }
82
+ export function createInteractionSignals() {
83
+ return {
84
+ onClick: createSignal(),
85
+ onContextMenu: createSignal(),
86
+ onDoubleClick: createSignal(),
87
+ onKeyDown: createSignal(),
88
+ onKeyUp: createSignal(),
89
+ onPointerCancel: createSignal(),
90
+ onPointerDown: createSignal(),
91
+ onPointerMove: createSignal(),
92
+ onPointerOut: createSignal(),
93
+ onPointerOver: createSignal(),
94
+ onPointerRollOut: createSignal(),
95
+ onPointerRollOver: createSignal(),
96
+ onPointerUp: createSignal(),
97
+ onReleaseOutside: createSignal(),
98
+ onWheel: createSignal(),
99
+ };
100
+ }
101
+ export function disconnectInteractionSignal(manager, target, name, slot) {
102
+ const signal = getInteractionSignal(target, name);
103
+ if (signal === null)
104
+ return;
105
+ const trackedSlot = getTrackedInteractionSignalSlot(manager, target, name, slot);
106
+ const connectedSlot = (trackedSlot ?? slot);
107
+ if (!isSlotConnected(signal, connectedSlot))
108
+ return;
109
+ disconnectSignal(signal, connectedSlot);
110
+ removeTrackedInteractionSignalSlot(manager, target, name, slot);
111
+ decrementInteractionSignalSubscriberCount(manager, name);
112
+ }
113
+ export function dispatchInteractionContextMenu(manager, x, y, button = 2, options) {
114
+ dispatchPointerSignalAt(manager, 'onContextMenu', x, y, button, 0, 0, options);
115
+ }
116
+ export function dispatchInteractionKeyDown(manager, key, keyCode = 0, modifiers) {
117
+ dispatchKeyboardSignal(manager, 'onKeyDown', key, keyCode, modifiers);
118
+ }
119
+ export function dispatchInteractionKeyUp(manager, key, keyCode = 0, modifiers) {
120
+ dispatchKeyboardSignal(manager, 'onKeyUp', key, keyCode, modifiers);
121
+ }
122
+ export function dispatchInteractionPointerCancel(manager, x, y, options) {
123
+ if (!isPointerSignalNeeded(manager, cancelSignalNames))
124
+ return;
125
+ const pointerId = options?.pointerId ?? 0;
126
+ const state = getInteractionPointerState(manager, pointerId);
127
+ const captured = manager.pointerCaptures.get(pointerId) ?? null;
128
+ const oldTarget = state.pointerOverTarget;
129
+ const target = captured ?? state.pointerDownTarget ?? oldTarget;
130
+ state.pointerDownTarget = null;
131
+ state.pointerOverTarget = null;
132
+ manager.pointerCaptures.delete(pointerId);
133
+ setPointerData(target, null, x, y, -1, 0, 0, options);
134
+ if (target !== null) {
135
+ emitInteractionSignal(target, manager.root, 'onPointerCancel', _pointerData);
136
+ }
137
+ if (oldTarget !== null) {
138
+ dispatchPointerRolloverChange(manager, oldTarget, null);
139
+ }
140
+ }
141
+ export function dispatchInteractionPointerDown(manager, x, y, button = 0, options) {
142
+ if (!isPointerSignalNeeded(manager, downSignalNames))
143
+ return;
144
+ const pointerId = options?.pointerId ?? 0;
145
+ const state = getInteractionPointerState(manager, pointerId);
146
+ const target = findInteractionTarget(manager, x, y, pointerId);
147
+ if (target === null)
148
+ return;
149
+ state.pointerDownTarget = target;
150
+ setPointerData(target, null, x, y, button, 0, 0, options);
151
+ emitInteractionSignal(target, manager.root, 'onPointerDown', _pointerData);
152
+ }
153
+ export function dispatchInteractionPointerMove(manager, x, y, button = 0, options) {
154
+ if (!isPointerSignalNeeded(manager, moveSignalNames))
155
+ return;
156
+ const pointerId = options?.pointerId ?? 0;
157
+ const state = getInteractionPointerState(manager, pointerId);
158
+ const oldTarget = state.pointerOverTarget;
159
+ const target = findInteractionTarget(manager, x, y, pointerId);
160
+ if (target === null && oldTarget === null)
161
+ return;
162
+ state.pointerOverTarget = target;
163
+ setPointerData(target, null, x, y, button, 0, 0, options);
164
+ if (target !== oldTarget) {
165
+ dispatchPointerRolloverChange(manager, oldTarget, target);
166
+ }
167
+ if (target !== null) {
168
+ emitInteractionSignal(target, manager.root, 'onPointerMove', _pointerData);
169
+ }
170
+ }
171
+ export function dispatchInteractionPointerUp(manager, x, y, button = 0, time = Date.now(), options) {
172
+ if (!isPointerSignalNeeded(manager, upSignalNames))
173
+ return;
174
+ const pointerId = options?.pointerId ?? 0;
175
+ const state = getInteractionPointerState(manager, pointerId);
176
+ const downTarget = state.pointerDownTarget;
177
+ const target = findInteractionTarget(manager, x, y, pointerId);
178
+ state.pointerDownTarget = null;
179
+ setPointerData(target ?? downTarget, null, x, y, button, 0, 0, options);
180
+ if (target !== null) {
181
+ emitInteractionSignal(target, manager.root, 'onPointerUp', _pointerData);
182
+ }
183
+ if (downTarget === null)
184
+ return;
185
+ if (target === downTarget) {
186
+ emitInteractionSignal(target, manager.root, 'onClick', _pointerData);
187
+ if (state.lastClickTarget === target && time - state.lastClickTime <= manager.doubleClickDelay) {
188
+ emitInteractionSignal(target, manager.root, 'onDoubleClick', _pointerData);
189
+ state.lastClickTarget = null;
190
+ state.lastClickTime = -Infinity;
191
+ }
192
+ else {
193
+ state.lastClickTarget = target;
194
+ state.lastClickTime = time;
195
+ }
196
+ }
197
+ else {
198
+ emitInteractionSignal(downTarget, manager.root, 'onReleaseOutside', _pointerData);
199
+ }
200
+ }
201
+ export function dispatchInteractionWheel(manager, x, y, deltaX = 0, deltaY = 0, options) {
202
+ dispatchPointerSignalAt(manager, 'onWheel', x, y, 0, deltaX, deltaY, options);
203
+ }
204
+ export function enableInteractionSignals(source) {
205
+ const runtime = getNodeRuntime(source);
206
+ return (runtime.interactionSignals ??= createInteractionSignals());
207
+ }
208
+ export function getInteractionSignals(source) {
209
+ return getNodeRuntime(source).interactionSignals;
210
+ }
211
+ export function releaseInteractionPointer(manager, pointerId) {
212
+ manager.pointerCaptures.delete(pointerId);
213
+ }
214
+ function dispatchKeyboardSignal(manager, name, key, keyCode, modifiers) {
215
+ if (!manager.enabled || !hasInteractionSignalSubscriber(manager, name))
216
+ return;
217
+ setKeyboardData(key, keyCode, modifiers);
218
+ emitInteractionSignal(manager.root, manager.root, name, _keyboardData);
219
+ }
220
+ function dispatchPointerRolloverChange(manager, oldTarget, target) {
221
+ if (oldTarget !== null) {
222
+ emitInteractionSignal(oldTarget, manager.root, 'onPointerOut', _pointerData);
223
+ }
224
+ const oldChain = oldTarget !== null ? getInteractionChain(oldTarget, manager.root) : [];
225
+ const newChain = target !== null ? getInteractionChain(target, manager.root) : [];
226
+ for (const node of oldChain) {
227
+ if (newChain.indexOf(node) === -1) {
228
+ setInteractionSignalCurrentTarget(_pointerData, node, node);
229
+ emitInteractionSignalDirect(node, 'onPointerRollOut', _pointerData);
230
+ }
231
+ }
232
+ for (let i = newChain.length - 1; i >= 0; i--) {
233
+ const node = newChain[i];
234
+ if (oldChain.indexOf(node) === -1) {
235
+ setInteractionSignalCurrentTarget(_pointerData, node, node);
236
+ emitInteractionSignalDirect(node, 'onPointerRollOver', _pointerData);
237
+ }
238
+ }
239
+ if (target !== null) {
240
+ emitInteractionSignal(target, manager.root, 'onPointerOver', _pointerData);
241
+ }
242
+ }
243
+ function dispatchPointerSignalAt(manager, name, x, y, button, deltaX = 0, deltaY = 0, options) {
244
+ if (!isPointerSignalNeeded(manager, [name]))
245
+ return;
246
+ const target = findInteractionTarget(manager, x, y, options?.pointerId ?? 0);
247
+ if (target === null)
248
+ return;
249
+ setPointerData(target, null, x, y, button, deltaX, deltaY, options);
250
+ emitInteractionSignal(target, manager.root, name, _pointerData);
251
+ }
252
+ function emitInteractionSignal(target, root, name, data) {
253
+ let current = target;
254
+ while (current !== null) {
255
+ setInteractionSignalCurrentTarget(data, target, current);
256
+ emitInteractionSignalDirect(current, name, data);
257
+ if (isInteractionSignalCancelled(current, name))
258
+ break;
259
+ if (current === root)
260
+ break;
261
+ current = getNodeParent(current);
262
+ }
263
+ }
264
+ function emitInteractionSignalDirect(target, name, data) {
265
+ const signal = getInteractionSignal(target, name);
266
+ if (signal !== null)
267
+ emitSignal(signal, data);
268
+ }
269
+ function decrementInteractionSignalSubscriberCount(manager, name) {
270
+ const count = manager.signalSubscriberCounts.get(name) ?? 0;
271
+ if (count <= 1) {
272
+ manager.signalSubscriberCounts.delete(name);
273
+ }
274
+ else {
275
+ manager.signalSubscriberCounts.set(name, count - 1);
276
+ }
277
+ }
278
+ function findInteractionTarget(manager, x, y, pointerId) {
279
+ if (!manager.enabled)
280
+ return null;
281
+ const captured = manager.pointerCaptures.get(pointerId);
282
+ if (captured !== undefined)
283
+ return captured;
284
+ return findGraphHitTarget(manager.root, x, y);
285
+ }
286
+ function getInteractionPointerState(manager, pointerId) {
287
+ let state = manager.pointerStates.get(pointerId);
288
+ if (state === undefined) {
289
+ state = {
290
+ lastClickTarget: null,
291
+ lastClickTime: -Infinity,
292
+ pointerDownTarget: null,
293
+ pointerOverTarget: null,
294
+ };
295
+ manager.pointerStates.set(pointerId, state);
296
+ }
297
+ return state;
298
+ }
299
+ function getInteractionChain(target, root) {
300
+ const out = [];
301
+ let current = target;
302
+ while (current !== null) {
303
+ out.push(current);
304
+ if (current === root)
305
+ break;
306
+ current = getNodeParent(current);
307
+ }
308
+ return out;
309
+ }
310
+ function getInteractionSignal(source, name) {
311
+ const signals = getNodeRuntime(source).interactionSignals;
312
+ return signals !== null ? signals[name] : null;
313
+ }
314
+ function getTrackedInteractionSignalSlot(manager, target, name, slot) {
315
+ return (manager.trackedSignalSlots
316
+ .get(target)
317
+ ?.get(name)
318
+ ?.get(slot) ?? null);
319
+ }
320
+ function hasInteractionSignalSubscriber(manager, name) {
321
+ if ((manager.signalSubscriberCounts.get(name) ?? 0) > 0)
322
+ return true;
323
+ if (manager.trackedSubscribersOnly)
324
+ return false;
325
+ return hasInteractionSignalSubscriberInGraph(manager.root, name);
326
+ }
327
+ function hasInteractionSignalSubscriberInGraph(source, name) {
328
+ const signal = getInteractionSignal(source, name);
329
+ if (signal?.data !== null && signal !== null)
330
+ return true;
331
+ const children = getNodeRuntime(source).children;
332
+ if (children !== null) {
333
+ for (const child of children) {
334
+ if (hasInteractionSignalSubscriberInGraph(child, name))
335
+ return true;
336
+ }
337
+ }
338
+ return false;
339
+ }
340
+ function incrementInteractionSignalSubscriberCount(manager, name) {
341
+ manager.signalSubscriberCounts.set(name, (manager.signalSubscriberCounts.get(name) ?? 0) + 1);
342
+ }
343
+ function isInteractionSignalCancelled(source, name) {
344
+ return getInteractionSignal(source, name)?.data?.cancelled === true;
345
+ }
346
+ function isPointerSignalNeeded(manager, names) {
347
+ if (!manager.enabled)
348
+ return false;
349
+ for (const name of names) {
350
+ if (hasInteractionSignalSubscriber(manager, name))
351
+ return true;
352
+ }
353
+ return false;
354
+ }
355
+ function removeTrackedInteractionSignalSlot(manager, target, name, slot) {
356
+ const targetSlots = manager.trackedSignalSlots.get(target);
357
+ const signalSlots = targetSlots?.get(name);
358
+ if (signalSlots === undefined)
359
+ return;
360
+ signalSlots.delete(slot);
361
+ if (signalSlots.size === 0)
362
+ targetSlots.delete(name);
363
+ if (targetSlots.size === 0)
364
+ manager.trackedSignalSlots.delete(target);
365
+ }
366
+ function setKeyboardData(key, keyCode, modifiers) {
367
+ _keyboardData.altKey = modifiers?.altKey ?? false;
368
+ _keyboardData.ctrlKey = modifiers?.ctrlKey ?? false;
369
+ _keyboardData.key = key;
370
+ _keyboardData.keyCode = keyCode;
371
+ _keyboardData.metaKey = modifiers?.metaKey ?? false;
372
+ _keyboardData.shiftKey = modifiers?.shiftKey ?? false;
373
+ }
374
+ function setInteractionSignalCurrentTarget(data, target, currentTarget) {
375
+ if ('currentTarget' in data) {
376
+ const pointerData = data;
377
+ pointerData.target = target;
378
+ pointerData.currentTarget = currentTarget;
379
+ setPointerDataLocalPosition(pointerData, currentTarget);
380
+ }
381
+ }
382
+ function setPointerData(target, currentTarget, x, y, button, deltaX = 0, deltaY = 0, options) {
383
+ _pointerData.altKey = options?.altKey ?? false;
384
+ _pointerData.button = button;
385
+ _pointerData.buttons = options?.buttons ?? (button >= 0 ? 1 << button : 0);
386
+ _pointerData.ctrlKey = options?.ctrlKey ?? false;
387
+ _pointerData.currentTarget = currentTarget;
388
+ _pointerData.deltaX = deltaX;
389
+ _pointerData.deltaY = deltaY;
390
+ _pointerData.localX = x;
391
+ _pointerData.localY = y;
392
+ _pointerData.metaKey = options?.metaKey ?? false;
393
+ _pointerData.pointerId = options?.pointerId ?? 0;
394
+ _pointerData.pointerType = options?.pointerType ?? 'mouse';
395
+ _pointerData.shiftKey = options?.shiftKey ?? false;
396
+ _pointerData.target = target;
397
+ _pointerData.worldX = x;
398
+ _pointerData.worldY = y;
399
+ _pointerData.x = x;
400
+ _pointerData.y = y;
401
+ if (currentTarget !== null)
402
+ setPointerDataLocalPosition(_pointerData, currentTarget);
403
+ }
404
+ function setTrackedInteractionSignalSlot(manager, target, name, slot, connectedSlot) {
405
+ let targetSlots = manager.trackedSignalSlots.get(target);
406
+ if (targetSlots === undefined) {
407
+ targetSlots = new Map();
408
+ manager.trackedSignalSlots.set(target, targetSlots);
409
+ }
410
+ let signalSlots = targetSlots.get(name);
411
+ if (signalSlots === undefined) {
412
+ signalSlots = new Map();
413
+ targetSlots.set(name, signalSlots);
414
+ }
415
+ signalSlots.set(slot, connectedSlot);
416
+ }
417
+ function setPointerDataLocalPosition(data, currentTarget) {
418
+ if (!isTransform2DNode(currentTarget)) {
419
+ data.localX = data.worldX;
420
+ data.localY = data.worldY;
421
+ return;
422
+ }
423
+ inverseMatrixTransformPointXY(_localPoint, getNodeWorldTransformMatrix(currentTarget), data.worldX, data.worldY);
424
+ data.localX = _localPoint.x;
425
+ data.localY = _localPoint.y;
426
+ }
427
+ function isTransform2DNode(source) {
428
+ const runtime = getNodeRuntime(source);
429
+ return 'worldTransform2D' in runtime;
430
+ }
431
+ const cancelSignalNames = ['onPointerCancel', 'onPointerOut', 'onPointerRollOut'];
432
+ const downSignalNames = ['onClick', 'onDoubleClick', 'onPointerCancel', 'onPointerDown', 'onReleaseOutside'];
433
+ const moveSignalNames = [
434
+ 'onPointerMove',
435
+ 'onPointerOut',
436
+ 'onPointerOver',
437
+ 'onPointerRollOut',
438
+ 'onPointerRollOver',
439
+ ];
440
+ const upSignalNames = ['onClick', 'onDoubleClick', 'onPointerUp', 'onReleaseOutside'];
441
+ const _keyboardData = {
442
+ altKey: false,
443
+ ctrlKey: false,
444
+ key: '',
445
+ keyCode: 0,
446
+ metaKey: false,
447
+ shiftKey: false,
448
+ };
449
+ const _localPoint = { x: 0, y: 0 };
450
+ const _pointerData = {
451
+ altKey: false,
452
+ button: 0,
453
+ buttons: 0,
454
+ ctrlKey: false,
455
+ currentTarget: null,
456
+ deltaX: 0,
457
+ deltaY: 0,
458
+ localX: 0,
459
+ localY: 0,
460
+ metaKey: false,
461
+ pointerId: 0,
462
+ pointerType: 'mouse',
463
+ shiftKey: false,
464
+ target: null,
465
+ worldX: 0,
466
+ worldY: 0,
467
+ x: 0,
468
+ y: 0,
469
+ };
470
+ //# sourceMappingURL=interactionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactionManager.js","sourceRoot":"","sources":["../src/interactionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function registerDefaultHitTestPoints(): void;
2
+ //# sourceMappingURL=registerDefaultHitTestPoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerDefaultHitTestPoints.d.ts","sourceRoot":"","sources":["../src/registerDefaultHitTestPoints.ts"],"names":[],"mappings":"AAoCA,wBAAgB,4BAA4B,IAAI,IAAI,CAenD"}
@@ -0,0 +1,21 @@
1
+ import { BitmapKind, DisplayObjectKind, HtmlViewKind, MovieClipKind, QuadBatchKind, RenderViewKind, RichTextKind, Scale9ShapeKind, ShapeKind, SpriteKind, StageKind, TextLabelKind, TilemapKind, VideoKind, } from '@flighthq/types';
2
+ import { defaultBitmapHitTestPointHandler, defaultDisplayObjectHitTestPointHandler, defaultHtmlViewHitTestPointHandler, defaultMovieClipHitTestPointHandler, defaultRenderViewHitTestPointHandler, defaultRichTextHitTestPointHandler, defaultShapeHitTestPointHandler, defaultStageHitTestPointHandler, defaultTextHitTestPointHandler, defaultVideoHitTestPointHandler, } from './displayHitTests';
3
+ import { registerHitTestPoint } from './hitTests';
4
+ import { defaultQuadBatchHitTestPointHandler, defaultSpriteHitTestPointHandler, defaultTilemapHitTestPointHandler, } from './spriteHitTests';
5
+ export function registerDefaultHitTestPoints() {
6
+ registerHitTestPoint(BitmapKind, defaultBitmapHitTestPointHandler);
7
+ registerHitTestPoint(DisplayObjectKind, defaultDisplayObjectHitTestPointHandler);
8
+ registerHitTestPoint(HtmlViewKind, defaultHtmlViewHitTestPointHandler);
9
+ registerHitTestPoint(MovieClipKind, defaultMovieClipHitTestPointHandler);
10
+ registerHitTestPoint(QuadBatchKind, defaultQuadBatchHitTestPointHandler);
11
+ registerHitTestPoint(RenderViewKind, defaultRenderViewHitTestPointHandler);
12
+ registerHitTestPoint(RichTextKind, defaultRichTextHitTestPointHandler);
13
+ registerHitTestPoint(Scale9ShapeKind, defaultShapeHitTestPointHandler);
14
+ registerHitTestPoint(ShapeKind, defaultShapeHitTestPointHandler);
15
+ registerHitTestPoint(SpriteKind, defaultSpriteHitTestPointHandler);
16
+ registerHitTestPoint(StageKind, defaultStageHitTestPointHandler);
17
+ registerHitTestPoint(TextLabelKind, defaultTextHitTestPointHandler);
18
+ registerHitTestPoint(TilemapKind, defaultTilemapHitTestPointHandler);
19
+ registerHitTestPoint(VideoKind, defaultVideoHitTestPointHandler);
20
+ }
21
+ //# sourceMappingURL=registerDefaultHitTestPoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerDefaultHitTestPoints.js","sourceRoot":"","sources":["../src/registerDefaultHitTestPoints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,SAAS,GACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gCAAgC,EAChC,uCAAuC,EACvC,kCAAkC,EAClC,mCAAmC,EACnC,oCAAoC,EACpC,kCAAkC,EAClC,+BAA+B,EAC/B,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,mCAAmC,EACnC,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,4BAA4B;IAC1C,oBAAoB,CAAC,UAAU,EAAE,gCAAgC,CAAC,CAAC;IACnE,oBAAoB,CAAC,iBAAiB,EAAE,uCAAuC,CAAC,CAAC;IACjF,oBAAoB,CAAC,YAAY,EAAE,kCAAkC,CAAC,CAAC;IACvE,oBAAoB,CAAC,aAAa,EAAE,mCAAmC,CAAC,CAAC;IACzE,oBAAoB,CAAC,aAAa,EAAE,mCAAmC,CAAC,CAAC;IACzE,oBAAoB,CAAC,cAAc,EAAE,oCAAoC,CAAC,CAAC;IAC3E,oBAAoB,CAAC,YAAY,EAAE,kCAAkC,CAAC,CAAC;IACvE,oBAAoB,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAC;IACvE,oBAAoB,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC;IACjE,oBAAoB,CAAC,UAAU,EAAE,gCAAgC,CAAC,CAAC;IACnE,oBAAoB,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC;IACjE,oBAAoB,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IACpE,oBAAoB,CAAC,WAAW,EAAE,iCAAiC,CAAC,CAAC;IACrE,oBAAoB,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { DisplayObject, Rectangle } from '@flighthq/types';
2
+ export declare function hitTestAreaQuery(root: DisplayObject, rect: Readonly<Rectangle>, out?: DisplayObject[]): DisplayObject[];
3
+ export declare function hitTestAreaQueryCircle(root: DisplayObject, cx: number, cy: number, radius: number, out?: DisplayObject[]): DisplayObject[];
4
+ //# sourceMappingURL=spatialQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatialQuery.d.ts","sourceRoot":"","sources":["../src/spatialQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEhE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,GAAG,GAAE,aAAa,EAAO,GACxB,aAAa,EAAE,CAgBjB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,aAAa,EAAO,GACxB,aAAa,EAAE,CAoBjB"}
@@ -0,0 +1,37 @@
1
+ import { intersectsRectangle } from '@flighthq/geometry';
2
+ import { getNodeRuntime, getNodeWorldBoundsRectangle } from '@flighthq/node';
3
+ export function hitTestAreaQuery(root, rect, out = []) {
4
+ if (!root.enabled)
5
+ return out;
6
+ const worldBounds = getNodeWorldBoundsRectangle(root);
7
+ if (intersectsRectangle(worldBounds, rect)) {
8
+ out.push(root);
9
+ }
10
+ const children = getNodeRuntime(root).children;
11
+ if (children !== null) {
12
+ for (const child of children) {
13
+ hitTestAreaQuery(child, rect, out);
14
+ }
15
+ }
16
+ return out;
17
+ }
18
+ export function hitTestAreaQueryCircle(root, cx, cy, radius, out = []) {
19
+ if (!root.enabled)
20
+ return out;
21
+ const b = getNodeWorldBoundsRectangle(root);
22
+ const nearX = Math.max(b.x, Math.min(cx, b.x + b.width));
23
+ const nearY = Math.max(b.y, Math.min(cy, b.y + b.height));
24
+ const dx = cx - nearX;
25
+ const dy = cy - nearY;
26
+ if (dx * dx + dy * dy <= radius * radius) {
27
+ out.push(root);
28
+ }
29
+ const children = getNodeRuntime(root).children;
30
+ if (children !== null) {
31
+ for (const child of children) {
32
+ hitTestAreaQueryCircle(child, cx, cy, radius, out);
33
+ }
34
+ }
35
+ return out;
36
+ }
37
+ //# sourceMappingURL=spatialQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatialQuery.js","sourceRoot":"","sources":["../src/spatialQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAG7E,MAAM,UAAU,gBAAgB,CAC9B,IAAmB,EACnB,IAAyB,EACzB,MAAuB,EAAE;IAEzB,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IAE9B,MAAM,WAAW,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC/C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,gBAAgB,CAAC,KAAsB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAmB,EACnB,EAAU,EACV,EAAU,EACV,MAAc,EACd,MAAuB,EAAE;IAEzB,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IAE9B,MAAM,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC/C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,sBAAsB,CAAC,KAAsB,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { NodeAny } from '@flighthq/types';
2
+ export declare function defaultQuadBatchHitTestPointHandler(source: NodeAny, x: number, y: number, shapeFlag: boolean): boolean;
3
+ export declare function defaultSpriteHitTestPointHandler(source: NodeAny, x: number, y: number, _shapeFlag: boolean): boolean;
4
+ export declare function defaultTilemapHitTestPointHandler(source: NodeAny, x: number, y: number, shapeFlag: boolean): boolean;
5
+ //# sourceMappingURL=spriteHitTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spriteHitTests.d.ts","sourceRoot":"","sources":["../src/spriteHitTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,OAAO,EACf,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,OAAO,GACjB,OAAO,CAET;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAEpH;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAEpH"}
@@ -0,0 +1,11 @@
1
+ import { hitTestGraphLocalBounds } from './hitTests';
2
+ export function defaultQuadBatchHitTestPointHandler(source, x, y, shapeFlag) {
3
+ return defaultSpriteHitTestPointHandler(source, x, y, shapeFlag);
4
+ }
5
+ export function defaultSpriteHitTestPointHandler(source, x, y, _shapeFlag) {
6
+ return hitTestGraphLocalBounds(source, x, y);
7
+ }
8
+ export function defaultTilemapHitTestPointHandler(source, x, y, shapeFlag) {
9
+ return defaultSpriteHitTestPointHandler(source, x, y, shapeFlag);
10
+ }
11
+ //# sourceMappingURL=spriteHitTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spriteHitTests.js","sourceRoot":"","sources":["../src/spriteHitTests.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,UAAU,mCAAmC,CACjD,MAAe,EACf,CAAS,EACT,CAAS,EACT,SAAkB;IAElB,OAAO,gCAAgC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,UAAmB;IACzG,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,SAAkB;IACzG,OAAO,gCAAgC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC"}