@flighthq/interaction 0.2.0 → 0.2.1-next.410.a23f189
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.
- package/dist/cursorBackend.d.ts +12 -0
- package/dist/cursorBackend.d.ts.map +1 -0
- package/dist/cursorBackend.js +17 -0
- package/dist/cursorBackend.js.map +1 -0
- package/dist/displayHitTests.d.ts +10 -11
- package/dist/displayHitTests.d.ts.map +1 -1
- package/dist/displayHitTests.js +12 -14
- package/dist/displayHitTests.js.map +1 -1
- package/dist/enableInteractionGuards.d.ts +23 -0
- package/dist/enableInteractionGuards.d.ts.map +1 -0
- package/dist/enableInteractionGuards.js +75 -0
- package/dist/enableInteractionGuards.js.map +1 -0
- package/dist/focusManager.d.ts +46 -0
- package/dist/focusManager.d.ts.map +1 -0
- package/dist/focusManager.js +243 -0
- package/dist/focusManager.js.map +1 -0
- package/dist/hitTests.d.ts +45 -24
- package/dist/hitTests.d.ts.map +1 -1
- package/dist/hitTests.js +164 -47
- package/dist/hitTests.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/interactionManager.d.ts +10 -2
- package/dist/interactionManager.d.ts.map +1 -1
- package/dist/interactionManager.js +58 -6
- package/dist/interactionManager.js.map +1 -1
- package/dist/interactionSpatialIndex.d.ts +17 -0
- package/dist/interactionSpatialIndex.d.ts.map +1 -0
- package/dist/interactionSpatialIndex.js +77 -0
- package/dist/interactionSpatialIndex.js.map +1 -0
- package/dist/nodeInteractionState.d.ts +39 -0
- package/dist/nodeInteractionState.d.ts.map +1 -0
- package/dist/nodeInteractionState.js +72 -0
- package/dist/nodeInteractionState.js.map +1 -0
- package/dist/registerBitmapHitTest.d.ts +11 -0
- package/dist/registerBitmapHitTest.d.ts.map +1 -0
- package/dist/registerBitmapHitTest.js +55 -0
- package/dist/registerBitmapHitTest.js.map +1 -0
- package/dist/registerDefaultHitTests.d.ts +2 -0
- package/dist/registerDefaultHitTests.d.ts.map +1 -0
- package/dist/registerDefaultHitTests.js +20 -0
- package/dist/registerDefaultHitTests.js.map +1 -0
- package/dist/registerShapeHitTest.d.ts +10 -0
- package/dist/registerShapeHitTest.d.ts.map +1 -0
- package/dist/registerShapeHitTest.js +32 -0
- package/dist/registerShapeHitTest.js.map +1 -0
- package/dist/registerTextHitTest.d.ts +12 -0
- package/dist/registerTextHitTest.d.ts.map +1 -0
- package/dist/registerTextHitTest.js +32 -0
- package/dist/registerTextHitTest.js.map +1 -0
- package/dist/spriteHitTests.d.ts +3 -3
- package/dist/spriteHitTests.d.ts.map +1 -1
- package/dist/spriteHitTests.js +5 -5
- package/dist/spriteHitTests.js.map +1 -1
- package/package.json +13 -7
- package/src/cursorBackend.test.ts +24 -0
- package/src/displayHitTests.test.ts +39 -47
- package/src/enableInteractionGuards.test.ts +102 -0
- package/src/focusManager.test.ts +307 -0
- package/src/hitTests.test.ts +235 -98
- package/src/interactionManager.test.ts +59 -8
- package/src/interactionSpatialIndex.test.ts +103 -0
- package/src/nodeInteractionState.test.ts +141 -0
- package/src/registerBitmapHitTest.test.ts +22 -0
- package/src/{registerDefaultHitTestPoints.test.ts → registerDefaultHitTests.test.ts} +10 -7
- package/src/registerShapeHitTest.test.ts +27 -0
- package/src/registerTextHitTest.test.ts +54 -0
- package/src/spriteHitTests.test.ts +15 -15
- package/dist/registerDefaultHitTestPoints.d.ts +0 -2
- package/dist/registerDefaultHitTestPoints.d.ts.map +0 -1
- package/dist/registerDefaultHitTestPoints.js +0 -21
- package/dist/registerDefaultHitTestPoints.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactionManager.js","sourceRoot":"","sources":["../src/interactionManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interactionManager.js","sourceRoot":"","sources":["../src/interactionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { InteractionManager, NodeAny } from '@flighthq/types';
|
|
2
|
+
/**
|
|
3
|
+
* Picks the topmost hit among the broadphase candidates at world-space (x, y), matching the tree walk's
|
|
4
|
+
* front-to-back priority (smallest candidate rank wins). Requires `manager.spatialIndex` populated by
|
|
5
|
+
* `refreshInteractionSpatialIndex`; returns null when no candidate's precise region contains the point.
|
|
6
|
+
* The manager's dispatch uses this automatically when a `spatialIndex` is set — callers rarely invoke it.
|
|
7
|
+
*/
|
|
8
|
+
export declare function findSpatialInteractionTarget<N extends NodeAny>(manager: InteractionManager<N>, x: number, y: number, precise?: boolean): N | null;
|
|
9
|
+
/**
|
|
10
|
+
* Rebuilds `manager.spatialIndex` from the current scene. Walks the eligible, atomic candidates in
|
|
11
|
+
* front-to-back order — mirroring `findGraphHitTarget` (reverse child order; an atomic `hitArea` unit is
|
|
12
|
+
* indexed and not descended) — and inserts each by its world-bounds AABB. The world bounds are a
|
|
13
|
+
* conservative superset; `hitTestNodeRegion` confirms each candidate precisely on query. Call after the
|
|
14
|
+
* scene graph or transforms change; a no-op without a `spatialIndex`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function refreshInteractionSpatialIndex<N extends NodeAny>(manager: InteractionManager<N>): void;
|
|
17
|
+
//# sourceMappingURL=interactionSpatialIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactionSpatialIndex.d.ts","sourceRoot":"","sources":["../src/interactionSpatialIndex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,kBAAkB,EAAE,OAAO,EAAgC,MAAM,iBAAiB,CAAC;AAKhH;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,OAAO,EAC5D,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,GAAE,OAAe,GACvB,CAAC,GAAG,IAAI,CAmBV;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAiBtG"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { getNodeRuntime, getNodeWorldBoundsRectangle } from '@flighthq/node';
|
|
2
|
+
import { clearSpatialIndex, insertSpatialObject, querySpatialPoint } from '@flighthq/spatial';
|
|
3
|
+
import { hitTestNodeRegion } from './hitTests';
|
|
4
|
+
import { getNodeInteractionState } from './nodeInteractionState';
|
|
5
|
+
/**
|
|
6
|
+
* Picks the topmost hit among the broadphase candidates at world-space (x, y), matching the tree walk's
|
|
7
|
+
* front-to-back priority (smallest candidate rank wins). Requires `manager.spatialIndex` populated by
|
|
8
|
+
* `refreshInteractionSpatialIndex`; returns null when no candidate's precise region contains the point.
|
|
9
|
+
* The manager's dispatch uses this automatically when a `spatialIndex` is set — callers rarely invoke it.
|
|
10
|
+
*/
|
|
11
|
+
export function findSpatialInteractionTarget(manager, x, y, precise = false) {
|
|
12
|
+
const index = manager.spatialIndex;
|
|
13
|
+
if (index === null)
|
|
14
|
+
return null;
|
|
15
|
+
const nodes = managerCandidates.get(manager);
|
|
16
|
+
if (nodes === undefined || nodes.length === 0)
|
|
17
|
+
return null;
|
|
18
|
+
querySpatialPoint(index, x, y, spatialQueryOut);
|
|
19
|
+
let best = null;
|
|
20
|
+
let bestRank = Infinity;
|
|
21
|
+
for (let i = 0; i < spatialQueryOut.length; i++) {
|
|
22
|
+
const rank = spatialQueryOut[i];
|
|
23
|
+
if (rank >= bestRank)
|
|
24
|
+
continue;
|
|
25
|
+
const node = nodes[rank];
|
|
26
|
+
if (node !== undefined && hitTestNodeRegion(node, x, y, precise)) {
|
|
27
|
+
best = node;
|
|
28
|
+
bestRank = rank;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return best;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Rebuilds `manager.spatialIndex` from the current scene. Walks the eligible, atomic candidates in
|
|
35
|
+
* front-to-back order — mirroring `findGraphHitTarget` (reverse child order; an atomic `hitArea` unit is
|
|
36
|
+
* indexed and not descended) — and inserts each by its world-bounds AABB. The world bounds are a
|
|
37
|
+
* conservative superset; `hitTestNodeRegion` confirms each candidate precisely on query. Call after the
|
|
38
|
+
* scene graph or transforms change; a no-op without a `spatialIndex`.
|
|
39
|
+
*/
|
|
40
|
+
export function refreshInteractionSpatialIndex(manager) {
|
|
41
|
+
const index = manager.spatialIndex;
|
|
42
|
+
if (index === null)
|
|
43
|
+
return;
|
|
44
|
+
const nodes = [];
|
|
45
|
+
collectSpatialCandidates(manager.root, nodes);
|
|
46
|
+
managerCandidates.set(manager, nodes);
|
|
47
|
+
clearSpatialIndex(index);
|
|
48
|
+
for (let rank = 0; rank < nodes.length; rank++) {
|
|
49
|
+
const bounds = getNodeWorldBoundsRectangle(nodes[rank]);
|
|
50
|
+
spatialInsertAabb.minX = bounds.x;
|
|
51
|
+
spatialInsertAabb.minY = bounds.y;
|
|
52
|
+
spatialInsertAabb.maxX = bounds.x + bounds.width;
|
|
53
|
+
spatialInsertAabb.maxY = bounds.y + bounds.height;
|
|
54
|
+
insertSpatialObject(index, rank, spatialInsertAabb);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function collectSpatialCandidates(node, out) {
|
|
58
|
+
if (!node.enabled)
|
|
59
|
+
return;
|
|
60
|
+
const state = getNodeInteractionState(node);
|
|
61
|
+
const enabled = state?.hitTestEnabled === true;
|
|
62
|
+
if (enabled && state?.hitArea != null) {
|
|
63
|
+
out.push(node);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const children = getNodeRuntime(node).children;
|
|
67
|
+
if (children !== null) {
|
|
68
|
+
for (let i = children.length - 1; i >= 0; i--)
|
|
69
|
+
collectSpatialCandidates(children[i], out);
|
|
70
|
+
}
|
|
71
|
+
if (enabled)
|
|
72
|
+
out.push(node);
|
|
73
|
+
}
|
|
74
|
+
const managerCandidates = new WeakMap();
|
|
75
|
+
const spatialInsertAabb = { maxX: 0, maxY: 0, minX: 0, minY: 0 };
|
|
76
|
+
const spatialQueryOut = [];
|
|
77
|
+
//# sourceMappingURL=interactionSpatialIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactionSpatialIndex.js","sourceRoot":"","sources":["../src/interactionSpatialIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Cursor, HitArea, NodeAny, NodeInteractionState } from '@flighthq/types';
|
|
2
|
+
/**
|
|
3
|
+
* Allocates a `NodeInteractionState` with all fields at their defaults: NOT a hit candidate (hit
|
|
4
|
+
* testing is opt-in), no hit area, no cursor, not focusable. Prefer this over an object literal so
|
|
5
|
+
* every field is set consistently.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createNodeInteractionState(): NodeInteractionState;
|
|
8
|
+
/**
|
|
9
|
+
* Returns the node's interaction-state cell, creating it on first use. Use this when about to write a
|
|
10
|
+
* field; readers should prefer the typed getters, which treat an absent cell as defaults.
|
|
11
|
+
*/
|
|
12
|
+
export declare function enableNodeInteractionState(source: NodeAny): NodeInteractionState;
|
|
13
|
+
/** Rollover cursor for this node, or `null` when unset (inherits nearest ancestor / backend default). */
|
|
14
|
+
export declare function getNodeCursor(source: Readonly<NodeAny>): Cursor | null;
|
|
15
|
+
/** Hit-area proxy overriding this node's own geometry, or `null` when it hit-tests its own geometry. */
|
|
16
|
+
export declare function getNodeHitArea(source: Readonly<NodeAny>): HitArea | null;
|
|
17
|
+
/** Raw interaction-state cell, or `null` if the node has never had one enabled. */
|
|
18
|
+
export declare function getNodeInteractionState(source: Readonly<NodeAny>): NodeInteractionState | null;
|
|
19
|
+
/** Focus-order key for this node; `-1` (the default) means natural order. */
|
|
20
|
+
export declare function getNodeTabIndex(source: Readonly<NodeAny>): number;
|
|
21
|
+
/** Whether this node is a keyboard focus target (default `false` — focus is opt-in). */
|
|
22
|
+
export declare function isNodeFocusable(source: Readonly<NodeAny>): boolean;
|
|
23
|
+
/** Whether this node is a hit candidate. Default `false` — hit testing is opt-in per node. */
|
|
24
|
+
export declare function isNodeHitTestEnabled(source: Readonly<NodeAny>): boolean;
|
|
25
|
+
/** Sets the rollover cursor for this node; `null` clears it (inherits nearest ancestor / default). */
|
|
26
|
+
export declare function setNodeCursor(source: NodeAny, cursor: Cursor | null): void;
|
|
27
|
+
/** Marks this node as a keyboard focus target (or not). */
|
|
28
|
+
export declare function setNodeFocusable(source: NodeAny, focusable: boolean): void;
|
|
29
|
+
/**
|
|
30
|
+
* Sets the hit region this node presents; `null` restores own-geometry hit testing. Setting a hitArea
|
|
31
|
+
* makes the node an atomic hit unit (stops recursion into children, hit resolves here). See `HitArea`
|
|
32
|
+
* for the region forms (`Rectangle`/`Path`/`'bounds'` in local space, or a `Node` proxy in world space).
|
|
33
|
+
*/
|
|
34
|
+
export declare function setNodeHitArea(source: NodeAny, hitArea: HitArea | null): void;
|
|
35
|
+
/** Opts this node into (or out of) hit testing. Default is out — a node is a candidate only once enabled. */
|
|
36
|
+
export declare function setNodeHitTestEnabled(source: NodeAny, enabled: boolean): void;
|
|
37
|
+
/** Sets this node's focus-order key; `-1` means natural order. */
|
|
38
|
+
export declare function setNodeTabIndex(source: NodeAny, tabIndex: number): void;
|
|
39
|
+
//# sourceMappingURL=nodeInteractionState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeInteractionState.d.ts","sourceRoot":"","sources":["../src/nodeInteractionState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAe,MAAM,iBAAiB,CAAC;AAEnG;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,oBAAoB,CAQjE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,oBAAoB,CAGhF;AAED,yGAAyG;AACzG,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAEtE;AAED,wGAAwG;AACxG,wBAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,IAAI,CAExE;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,oBAAoB,GAAG,IAAI,CAE9F;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,MAAM,CAEjE;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAElE;AAED,8FAA8F;AAC9F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAEvE;AAED,sGAAsG;AACtG,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE1E;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAE7E;AAED,6GAA6G;AAC7G,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAE7E;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEvE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { getNodeRuntime } from '@flighthq/node';
|
|
2
|
+
/**
|
|
3
|
+
* Allocates a `NodeInteractionState` with all fields at their defaults: NOT a hit candidate (hit
|
|
4
|
+
* testing is opt-in), no hit area, no cursor, not focusable. Prefer this over an object literal so
|
|
5
|
+
* every field is set consistently.
|
|
6
|
+
*/
|
|
7
|
+
export function createNodeInteractionState() {
|
|
8
|
+
return {
|
|
9
|
+
cursor: null,
|
|
10
|
+
focusable: false,
|
|
11
|
+
hitArea: null,
|
|
12
|
+
hitTestEnabled: false,
|
|
13
|
+
tabIndex: -1,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Returns the node's interaction-state cell, creating it on first use. Use this when about to write a
|
|
18
|
+
* field; readers should prefer the typed getters, which treat an absent cell as defaults.
|
|
19
|
+
*/
|
|
20
|
+
export function enableNodeInteractionState(source) {
|
|
21
|
+
const runtime = getNodeRuntime(source);
|
|
22
|
+
return (runtime.interactionState ??= createNodeInteractionState());
|
|
23
|
+
}
|
|
24
|
+
/** Rollover cursor for this node, or `null` when unset (inherits nearest ancestor / backend default). */
|
|
25
|
+
export function getNodeCursor(source) {
|
|
26
|
+
return getNodeInteractionState(source)?.cursor ?? null;
|
|
27
|
+
}
|
|
28
|
+
/** Hit-area proxy overriding this node's own geometry, or `null` when it hit-tests its own geometry. */
|
|
29
|
+
export function getNodeHitArea(source) {
|
|
30
|
+
return getNodeInteractionState(source)?.hitArea ?? null;
|
|
31
|
+
}
|
|
32
|
+
/** Raw interaction-state cell, or `null` if the node has never had one enabled. */
|
|
33
|
+
export function getNodeInteractionState(source) {
|
|
34
|
+
return getNodeRuntime(source).interactionState;
|
|
35
|
+
}
|
|
36
|
+
/** Focus-order key for this node; `-1` (the default) means natural order. */
|
|
37
|
+
export function getNodeTabIndex(source) {
|
|
38
|
+
return getNodeInteractionState(source)?.tabIndex ?? -1;
|
|
39
|
+
}
|
|
40
|
+
/** Whether this node is a keyboard focus target (default `false` — focus is opt-in). */
|
|
41
|
+
export function isNodeFocusable(source) {
|
|
42
|
+
return getNodeInteractionState(source)?.focusable ?? false;
|
|
43
|
+
}
|
|
44
|
+
/** Whether this node is a hit candidate. Default `false` — hit testing is opt-in per node. */
|
|
45
|
+
export function isNodeHitTestEnabled(source) {
|
|
46
|
+
return getNodeInteractionState(source)?.hitTestEnabled ?? false;
|
|
47
|
+
}
|
|
48
|
+
/** Sets the rollover cursor for this node; `null` clears it (inherits nearest ancestor / default). */
|
|
49
|
+
export function setNodeCursor(source, cursor) {
|
|
50
|
+
enableNodeInteractionState(source).cursor = cursor;
|
|
51
|
+
}
|
|
52
|
+
/** Marks this node as a keyboard focus target (or not). */
|
|
53
|
+
export function setNodeFocusable(source, focusable) {
|
|
54
|
+
enableNodeInteractionState(source).focusable = focusable;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Sets the hit region this node presents; `null` restores own-geometry hit testing. Setting a hitArea
|
|
58
|
+
* makes the node an atomic hit unit (stops recursion into children, hit resolves here). See `HitArea`
|
|
59
|
+
* for the region forms (`Rectangle`/`Path`/`'bounds'` in local space, or a `Node` proxy in world space).
|
|
60
|
+
*/
|
|
61
|
+
export function setNodeHitArea(source, hitArea) {
|
|
62
|
+
enableNodeInteractionState(source).hitArea = hitArea;
|
|
63
|
+
}
|
|
64
|
+
/** Opts this node into (or out of) hit testing. Default is out — a node is a candidate only once enabled. */
|
|
65
|
+
export function setNodeHitTestEnabled(source, enabled) {
|
|
66
|
+
enableNodeInteractionState(source).hitTestEnabled = enabled;
|
|
67
|
+
}
|
|
68
|
+
/** Sets this node's focus-order key; `-1` means natural order. */
|
|
69
|
+
export function setNodeTabIndex(source, tabIndex) {
|
|
70
|
+
enableNodeInteractionState(source).tabIndex = tabIndex;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=nodeInteractionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeInteractionState.js","sourceRoot":"","sources":["../src/nodeInteractionState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,CAAC,CAAC;KACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAe;IACxD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAyB,CAAC;IAC/D,OAAO,CAAC,OAAO,CAAC,gBAAgB,KAAK,0BAA0B,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,aAAa,CAAC,MAAyB;IACrD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;AACzD,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,cAAc,CAAC,MAAyB;IACtD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AAC1D,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,uBAAuB,CAAC,MAAyB;IAC/D,OAAQ,cAAc,CAAC,MAAM,CAA0B,CAAC,gBAAgB,CAAC;AAC3E,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC;AAC7D,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,oBAAoB,CAAC,MAAyB;IAC5D,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,cAAc,IAAI,KAAK,CAAC;AAClE,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,aAAa,CAAC,MAAe,EAAE,MAAqB;IAClE,0BAA0B,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;AACrD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAAC,MAAe,EAAE,SAAkB;IAClE,0BAA0B,CAAC,MAAM,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe,EAAE,OAAuB;IACrE,0BAA0B,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;AACvD,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,qBAAqB,CAAC,MAAe,EAAE,OAAgB;IACrE,0BAA0B,CAAC,MAAM,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC;AAC9D,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,MAAe,EAAE,QAAgB;IAC/D,0BAA0B,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Opt-in exact hit provider for bitmaps: the `*Precise` queries then hit a Bitmap only where its pixel
|
|
3
|
+
* alpha meets `alphaThreshold` (0..255). Within the node's bounds but where the pixels aren't readable
|
|
4
|
+
* (no image, a GPU-only texture, or a headless environment that can't rasterize), it falls back to a
|
|
5
|
+
* bounds hit rather than throwing — best-available precision for that instance.
|
|
6
|
+
*
|
|
7
|
+
* Importing this module is the opt-in — it pulls `@flighthq/surface`, so the base interaction bundle
|
|
8
|
+
* stays free of it (tree-shaken unless referenced).
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerBitmapHitTest(alphaThreshold?: number): void;
|
|
11
|
+
//# sourceMappingURL=registerBitmapHitTest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerBitmapHitTest.d.ts","sourceRoot":"","sources":["../src/registerBitmapHitTest.ts"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,GAAE,MAAU,GAAG,IAAI,CAEtE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { inverseMatrixTransformPointXY } from '@flighthq/geometry';
|
|
2
|
+
import { getNodeWorldMatrix } from '@flighthq/node';
|
|
3
|
+
import { createSurfaceFromImageResource, getSurfacePixelChannel } from '@flighthq/surface';
|
|
4
|
+
import { BitmapKind, ImageChannel } from '@flighthq/types';
|
|
5
|
+
import { hitTestGraphLocalBounds, registerHitTestPrecise } from './hitTests';
|
|
6
|
+
/**
|
|
7
|
+
* Opt-in exact hit provider for bitmaps: the `*Precise` queries then hit a Bitmap only where its pixel
|
|
8
|
+
* alpha meets `alphaThreshold` (0..255). Within the node's bounds but where the pixels aren't readable
|
|
9
|
+
* (no image, a GPU-only texture, or a headless environment that can't rasterize), it falls back to a
|
|
10
|
+
* bounds hit rather than throwing — best-available precision for that instance.
|
|
11
|
+
*
|
|
12
|
+
* Importing this module is the opt-in — it pulls `@flighthq/surface`, so the base interaction bundle
|
|
13
|
+
* stays free of it (tree-shaken unless referenced).
|
|
14
|
+
*/
|
|
15
|
+
export function registerBitmapHitTest(alphaThreshold = 1) {
|
|
16
|
+
registerHitTestPrecise(BitmapKind, (source, x, y) => hitTestBitmapAlpha(source, x, y, alphaThreshold));
|
|
17
|
+
}
|
|
18
|
+
// Returns 0 on a hit (opaque pixel, or bounds fallback when pixels are unreadable), -1 on a miss.
|
|
19
|
+
function hitTestBitmapAlpha(source, x, y, alphaThreshold) {
|
|
20
|
+
if (!hitTestGraphLocalBounds(source, x, y))
|
|
21
|
+
return -1;
|
|
22
|
+
const bitmap = source;
|
|
23
|
+
const image = bitmap.data.image;
|
|
24
|
+
if (image === null)
|
|
25
|
+
return 0;
|
|
26
|
+
const surface = surfaceForImage(image);
|
|
27
|
+
if (surface === null)
|
|
28
|
+
return 0;
|
|
29
|
+
inverseMatrixTransformPointXY(bitmapAlphaLocalPoint, getNodeWorldMatrix(source), x, y);
|
|
30
|
+
const rect = bitmap.data.sourceRectangle;
|
|
31
|
+
const px = Math.floor(bitmapAlphaLocalPoint.x + (rect !== null ? rect.x : 0));
|
|
32
|
+
const py = Math.floor(bitmapAlphaLocalPoint.y + (rect !== null ? rect.y : 0));
|
|
33
|
+
if (px < 0 || py < 0 || px >= surface.width || py >= surface.height)
|
|
34
|
+
return -1;
|
|
35
|
+
return getSurfacePixelChannel(surface, px, py, ImageChannel.Alpha) >= alphaThreshold ? 0 : -1;
|
|
36
|
+
}
|
|
37
|
+
function surfaceForImage(image) {
|
|
38
|
+
const cached = surfaceCache.get(image);
|
|
39
|
+
if (cached !== undefined)
|
|
40
|
+
return cached;
|
|
41
|
+
let surface = null;
|
|
42
|
+
try {
|
|
43
|
+
surface = createSurfaceFromImageResource(image);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
surface = null;
|
|
47
|
+
}
|
|
48
|
+
// Cache only successes so an image that is not yet readable is retried later.
|
|
49
|
+
if (surface !== null)
|
|
50
|
+
surfaceCache.set(image, surface);
|
|
51
|
+
return surface;
|
|
52
|
+
}
|
|
53
|
+
const bitmapAlphaLocalPoint = { x: 0, y: 0 };
|
|
54
|
+
const surfaceCache = new WeakMap();
|
|
55
|
+
//# sourceMappingURL=registerBitmapHitTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerBitmapHitTest.js","sourceRoot":"","sources":["../src/registerBitmapHitTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerDefaultHitTests.d.ts","sourceRoot":"","sources":["../src/registerDefaultHitTests.ts"],"names":[],"mappings":"AAkCA,wBAAgB,uBAAuB,IAAI,IAAI,CAc9C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BitmapKind, DisplayObjectKind, HtmlViewKind, MovieClipKind, QuadBatchKind, RenderViewKind, RichTextKind, Scale9ShapeKind, ShapeKind, SpriteKind, TextLabelKind, TilemapKind, VideoKind, } from '@flighthq/types';
|
|
2
|
+
import { defaultBitmapHitTestHandler, defaultDisplayObjectHitTestHandler, defaultHtmlViewHitTestHandler, defaultMovieClipHitTestHandler, defaultRenderViewHitTestHandler, defaultRichTextHitTestHandler, defaultShapeHitTestHandler, defaultTextHitTestHandler, defaultVideoHitTestHandler, } from './displayHitTests';
|
|
3
|
+
import { registerHitTest } from './hitTests';
|
|
4
|
+
import { defaultQuadBatchHitTestHandler, defaultSpriteHitTestHandler, defaultTilemapHitTestHandler, } from './spriteHitTests';
|
|
5
|
+
export function registerDefaultHitTests() {
|
|
6
|
+
registerHitTest(BitmapKind, defaultBitmapHitTestHandler);
|
|
7
|
+
registerHitTest(DisplayObjectKind, defaultDisplayObjectHitTestHandler);
|
|
8
|
+
registerHitTest(HtmlViewKind, defaultHtmlViewHitTestHandler);
|
|
9
|
+
registerHitTest(MovieClipKind, defaultMovieClipHitTestHandler);
|
|
10
|
+
registerHitTest(QuadBatchKind, defaultQuadBatchHitTestHandler);
|
|
11
|
+
registerHitTest(RenderViewKind, defaultRenderViewHitTestHandler);
|
|
12
|
+
registerHitTest(RichTextKind, defaultRichTextHitTestHandler);
|
|
13
|
+
registerHitTest(Scale9ShapeKind, defaultShapeHitTestHandler);
|
|
14
|
+
registerHitTest(ShapeKind, defaultShapeHitTestHandler);
|
|
15
|
+
registerHitTest(SpriteKind, defaultSpriteHitTestHandler);
|
|
16
|
+
registerHitTest(TextLabelKind, defaultTextHitTestHandler);
|
|
17
|
+
registerHitTest(TilemapKind, defaultTilemapHitTestHandler);
|
|
18
|
+
registerHitTest(VideoKind, defaultVideoHitTestHandler);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=registerDefaultHitTests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerDefaultHitTests.js","sourceRoot":"","sources":["../src/registerDefaultHitTests.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,aAAa,EACb,WAAW,EACX,SAAS,GACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,EAClC,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,uBAAuB;IACrC,eAAe,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IACzD,eAAe,CAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;IACvE,eAAe,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;IAC7D,eAAe,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAC/D,eAAe,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAC/D,eAAe,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;IACjE,eAAe,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;IAC7D,eAAe,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;IAC7D,eAAe,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IACvD,eAAe,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IACzD,eAAe,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;IAC1D,eAAe,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC;IAC3D,eAAe,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Opt-in exact hit provider for shapes: the `*Precise` queries then hit a Shape/Scale9Shape only where
|
|
3
|
+
* the point falls inside actual filled geometry (winding), not the bounding box. The coarse queries and
|
|
4
|
+
* `registerDefaultHitTests` are unaffected.
|
|
5
|
+
*
|
|
6
|
+
* Importing this module is the opt-in — it pulls `@flighthq/shape` + `@flighthq/path`, so the base
|
|
7
|
+
* interaction bundle stays free of them (tree-shaken unless referenced).
|
|
8
|
+
*/
|
|
9
|
+
export declare function registerShapeHitTest(): void;
|
|
10
|
+
//# sourceMappingURL=registerShapeHitTest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerShapeHitTest.d.ts","sourceRoot":"","sources":["../src/registerShapeHitTest.ts"],"names":[],"mappings":"AASA;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { inverseMatrixTransformPointXY } from '@flighthq/geometry';
|
|
2
|
+
import { getNodeWorldMatrix } from '@flighthq/node';
|
|
3
|
+
import { containsPathPoint } from '@flighthq/path';
|
|
4
|
+
import { getShapeFillRegions } from '@flighthq/shape';
|
|
5
|
+
import { Scale9ShapeKind, ShapeKind } from '@flighthq/types';
|
|
6
|
+
import { registerHitTestPrecise } from './hitTests';
|
|
7
|
+
/**
|
|
8
|
+
* Opt-in exact hit provider for shapes: the `*Precise` queries then hit a Shape/Scale9Shape only where
|
|
9
|
+
* the point falls inside actual filled geometry (winding), not the bounding box. The coarse queries and
|
|
10
|
+
* `registerDefaultHitTests` are unaffected.
|
|
11
|
+
*
|
|
12
|
+
* Importing this module is the opt-in — it pulls `@flighthq/shape` + `@flighthq/path`, so the base
|
|
13
|
+
* interaction bundle stays free of them (tree-shaken unless referenced).
|
|
14
|
+
*/
|
|
15
|
+
export function registerShapeHitTest() {
|
|
16
|
+
registerHitTestPrecise(ShapeKind, hitTestShapeFill);
|
|
17
|
+
registerHitTestPrecise(Scale9ShapeKind, hitTestShapeFill);
|
|
18
|
+
}
|
|
19
|
+
// Returns 0 when the point is inside any fill region (a hit with no sub-element), -1 otherwise.
|
|
20
|
+
function hitTestShapeFill(source, x, y) {
|
|
21
|
+
const regions = getShapeFillRegions(source.data.commands);
|
|
22
|
+
if (regions === null)
|
|
23
|
+
return -1;
|
|
24
|
+
inverseMatrixTransformPointXY(shapeHitTestLocalPoint, getNodeWorldMatrix(source), x, y);
|
|
25
|
+
for (const region of regions) {
|
|
26
|
+
if (containsPathPoint(region.path, shapeHitTestLocalPoint.x, shapeHitTestLocalPoint.y))
|
|
27
|
+
return 0;
|
|
28
|
+
}
|
|
29
|
+
return -1;
|
|
30
|
+
}
|
|
31
|
+
const shapeHitTestLocalPoint = { x: 0, y: 0 };
|
|
32
|
+
//# sourceMappingURL=registerShapeHitTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerShapeHitTest.js","sourceRoot":"","sources":["../src/registerShapeHitTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB;IAClC,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACpD,sBAAsB,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAC5D,CAAC;AAED,gGAAgG;AAChG,SAAS,gBAAgB,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAC7D,MAAM,OAAO,GAAG,mBAAmB,CAAE,MAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC;IAEhC,6BAA6B,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,MAAuB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzG,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,sBAAsB,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Opt-in exact hit provider for text: a text field still hits across its whole box (like coarse), but the
|
|
3
|
+
* provider resolves *which character* is under the point — so `describeGraphHit`'s `subIndex` becomes the
|
|
4
|
+
* character index (the basis for caret placement, selection, and link hit testing).
|
|
5
|
+
*
|
|
6
|
+
* Importing this module is the opt-in — it pulls `@flighthq/text` (`getTextLayout`) and
|
|
7
|
+
* `@flighthq/textlayout` (`computeRichTextCharIndexAtPoint`), so the base interaction bundle stays free
|
|
8
|
+
* of them (tree-shaken unless referenced). Returns 0 (a bounds hit with no char detail) when the text has
|
|
9
|
+
* no computed layout yet (no measure provider registered).
|
|
10
|
+
*/
|
|
11
|
+
export declare function registerTextHitTest(): void;
|
|
12
|
+
//# sourceMappingURL=registerTextHitTest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerTextHitTest.d.ts","sourceRoot":"","sources":["../src/registerTextHitTest.ts"],"names":[],"mappings":"AASA;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { inverseMatrixTransformPointXY } from '@flighthq/geometry';
|
|
2
|
+
import { getNodeWorldMatrix } from '@flighthq/node';
|
|
3
|
+
import { getTextLayout } from '@flighthq/text';
|
|
4
|
+
import { computeRichTextCharIndexAtPoint } from '@flighthq/textlayout';
|
|
5
|
+
import { RichTextKind, TextLabelKind } from '@flighthq/types';
|
|
6
|
+
import { hitTestGraphLocalBounds, registerHitTestPrecise } from './hitTests';
|
|
7
|
+
/**
|
|
8
|
+
* Opt-in exact hit provider for text: a text field still hits across its whole box (like coarse), but the
|
|
9
|
+
* provider resolves *which character* is under the point — so `describeGraphHit`'s `subIndex` becomes the
|
|
10
|
+
* character index (the basis for caret placement, selection, and link hit testing).
|
|
11
|
+
*
|
|
12
|
+
* Importing this module is the opt-in — it pulls `@flighthq/text` (`getTextLayout`) and
|
|
13
|
+
* `@flighthq/textlayout` (`computeRichTextCharIndexAtPoint`), so the base interaction bundle stays free
|
|
14
|
+
* of them (tree-shaken unless referenced). Returns 0 (a bounds hit with no char detail) when the text has
|
|
15
|
+
* no computed layout yet (no measure provider registered).
|
|
16
|
+
*/
|
|
17
|
+
export function registerTextHitTest() {
|
|
18
|
+
registerHitTestPrecise(TextLabelKind, resolveTextCharIndex);
|
|
19
|
+
registerHitTestPrecise(RichTextKind, resolveTextCharIndex);
|
|
20
|
+
}
|
|
21
|
+
// -1 outside the text box; otherwise the character index at the point (0 when no layout is available yet).
|
|
22
|
+
function resolveTextCharIndex(source, x, y) {
|
|
23
|
+
if (!hitTestGraphLocalBounds(source, x, y))
|
|
24
|
+
return -1;
|
|
25
|
+
const layout = getTextLayout(source);
|
|
26
|
+
if (layout === null)
|
|
27
|
+
return 0;
|
|
28
|
+
inverseMatrixTransformPointXY(textHitLocalPoint, getNodeWorldMatrix(source), x, y);
|
|
29
|
+
return computeRichTextCharIndexAtPoint(layout, textHitLocalPoint.x, textHitLocalPoint.y);
|
|
30
|
+
}
|
|
31
|
+
const textHitLocalPoint = { x: 0, y: 0 };
|
|
32
|
+
//# sourceMappingURL=registerTextHitTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerTextHitTest.js","sourceRoot":"","sources":["../src/registerTextHitTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB;IACjC,sBAAsB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IAC5D,sBAAsB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AAC7D,CAAC;AAED,2GAA2G;AAC3G,SAAS,oBAAoB,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IACjE,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAmB,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC9B,6BAA6B,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,MAAuB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpG,OAAO,+BAA+B,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC"}
|
package/dist/spriteHitTests.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NodeAny } from '@flighthq/types';
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
2
|
+
export declare function defaultQuadBatchHitTestHandler(source: NodeAny, x: number, y: number): boolean;
|
|
3
|
+
export declare function defaultSpriteHitTestHandler(source: NodeAny, x: number, y: number): boolean;
|
|
4
|
+
export declare function defaultTilemapHitTestHandler(source: NodeAny, x: number, y: number): boolean;
|
|
5
5
|
//# sourceMappingURL=spriteHitTests.d.ts.map
|
|
@@ -1 +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,
|
|
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,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE7F;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1F;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE3F"}
|
package/dist/spriteHitTests.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { hitTestGraphLocalBounds } from './hitTests';
|
|
2
|
-
export function
|
|
3
|
-
return
|
|
2
|
+
export function defaultQuadBatchHitTestHandler(source, x, y) {
|
|
3
|
+
return defaultSpriteHitTestHandler(source, x, y);
|
|
4
4
|
}
|
|
5
|
-
export function
|
|
5
|
+
export function defaultSpriteHitTestHandler(source, x, y) {
|
|
6
6
|
return hitTestGraphLocalBounds(source, x, y);
|
|
7
7
|
}
|
|
8
|
-
export function
|
|
9
|
-
return
|
|
8
|
+
export function defaultTilemapHitTestHandler(source, x, y) {
|
|
9
|
+
return defaultSpriteHitTestHandler(source, x, y);
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=spriteHitTests.js.map
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"spriteHitTests.js","sourceRoot":"","sources":["../src/spriteHitTests.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,UAAU,8BAA8B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAClF,OAAO,2BAA2B,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAC/E,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAChF,OAAO,2BAA2B,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC"}
|