@flighthq/interaction 0.2.1-next.738.07b221d → 0.2.1-next.841.373388f

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 (34) hide show
  1. package/dist/displayHitTests.d.ts +1 -1
  2. package/dist/displayHitTests.d.ts.map +1 -1
  3. package/dist/displayHitTests.js +3 -3
  4. package/dist/displayHitTests.js.map +1 -1
  5. package/dist/displayObjectOverlap.d.ts +4 -4
  6. package/dist/displayObjectOverlap.d.ts.map +1 -1
  7. package/dist/displayObjectOverlap.js +3 -3
  8. package/dist/displayObjectOverlap.js.map +1 -1
  9. package/dist/hitTests.d.ts +6 -6
  10. package/dist/hitTests.d.ts.map +1 -1
  11. package/dist/hitTests.js +10 -10
  12. package/dist/hitTests.js.map +1 -1
  13. package/dist/interactionSpatialIndex.d.ts.map +1 -1
  14. package/dist/interactionSpatialIndex.js.map +1 -1
  15. package/dist/registerBitmapHitTest.js.map +1 -1
  16. package/dist/registerDefaultHitTests.js +2 -2
  17. package/dist/registerDefaultHitTests.js.map +1 -1
  18. package/dist/registerShapeHitTest.js.map +1 -1
  19. package/dist/registerTextHitTest.js.map +1 -1
  20. package/dist/spatialQuery.d.ts +3 -3
  21. package/dist/spatialQuery.d.ts.map +1 -1
  22. package/dist/spatialQuery.js.map +1 -1
  23. package/package.json +13 -13
  24. package/src/displayHitTests.test.ts +28 -28
  25. package/src/displayObjectOverlap.test.ts +13 -17
  26. package/src/enableInteractionGuards.test.ts +1 -1
  27. package/src/focusManager.test.ts +5 -5
  28. package/src/hitTests.test.ts +64 -64
  29. package/src/interactionManager.test.ts +18 -18
  30. package/src/interactionSpatialIndex.test.ts +10 -10
  31. package/src/nodeInteractionState.test.ts +1 -1
  32. package/src/registerBitmapHitTest.test.ts +1 -1
  33. package/src/registerDefaultHitTests.test.ts +2 -2
  34. package/src/spatialQuery.test.ts +1 -1
@@ -1,8 +1,8 @@
1
1
  import type { NodeAny } from '@flighthq/types';
2
2
  export declare function defaultBitmapHitTestHandler(source: NodeAny, x: number, y: number): boolean;
3
- export declare function defaultDisplayObjectHitTestHandler(_source: NodeAny, _x: number, _y: number): boolean;
4
3
  export declare function defaultHtmlViewHitTestHandler(_source: NodeAny, _x: number, _y: number): boolean;
5
4
  export declare function defaultMovieClipHitTestHandler(_source: NodeAny, _x: number, _y: number): boolean;
5
+ export declare function defaultNode2DHitTestHandler(_source: NodeAny, _x: number, _y: number): boolean;
6
6
  export declare function defaultRenderViewHitTestHandler(source: NodeAny, x: number, y: number): boolean;
7
7
  export declare function defaultRichTextHitTestHandler(source: NodeAny, x: number, y: number): boolean;
8
8
  export declare function defaultShapeHitTestHandler(source: NodeAny, x: number, y: number): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"displayHitTests.d.ts","sourceRoot":"","sources":["../src/displayHitTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1F;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAEpG;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAG/F;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAGhG;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE9F;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE5F;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAIzF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAExF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE7F;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEzF"}
1
+ {"version":3,"file":"displayHitTests.d.ts","sourceRoot":"","sources":["../src/displayHitTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1F;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAG/F;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAGhG;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAE7F;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE9F;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE5F;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAIzF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAExF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE7F;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEzF"}
@@ -2,9 +2,6 @@ import { hitTestGraphLocalBounds } from './hitTests';
2
2
  export function defaultBitmapHitTestHandler(source, x, y) {
3
3
  return hitTestGraphLocalBounds(source, x, y);
4
4
  }
5
- export function defaultDisplayObjectHitTestHandler(_source, _x, _y) {
6
- return false;
7
- }
8
5
  export function defaultHtmlViewHitTestHandler(_source, _x, _y) {
9
6
  // HtmlView elements handle pointer events through the browser — not the canvas interaction system.
10
7
  return false;
@@ -13,6 +10,9 @@ export function defaultMovieClipHitTestHandler(_source, _x, _y) {
13
10
  // Containers have no self hit area — findGraphHitTarget traverses children separately.
14
11
  return false;
15
12
  }
13
+ export function defaultNode2DHitTestHandler(_source, _x, _y) {
14
+ return false;
15
+ }
16
16
  export function defaultRenderViewHitTestHandler(source, x, y) {
17
17
  return hitTestGraphLocalBounds(source, x, y);
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"displayHitTests.js","sourceRoot":"","sources":["../src/displayHitTests.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,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,kCAAkC,CAAC,OAAgB,EAAE,EAAU,EAAE,EAAU;IACzF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAgB,EAAE,EAAU,EAAE,EAAU;IACpF,mGAAmG;IACnG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAAgB,EAAE,EAAU,EAAE,EAAU;IACrF,uFAAuF;IACvF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IACnF,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IACjF,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAC9E,wFAAwF;IACxF,wEAAwE;IACxE,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAC7E,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAClF,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAC9E,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"displayHitTests.js","sourceRoot":"","sources":["../src/displayHitTests.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,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,6BAA6B,CAAC,OAAgB,EAAE,EAAU,EAAE,EAAU;IACpF,mGAAmG;IACnG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAAgB,EAAE,EAAU,EAAE,EAAU;IACrF,uFAAuF;IACvF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAgB,EAAE,EAAU,EAAE,EAAU;IAClF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IACnF,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IACjF,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAC9E,wFAAwF;IACxF,wEAAwE;IACxE,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAC7E,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAClF,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAC9E,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { DisplayObject, Rectangle } from '@flighthq/types';
2
- export declare function containsDisplayObject(outer: DisplayObject, inner: DisplayObject): boolean;
3
- export declare function getDisplayObjectOverlapRectangle(source: DisplayObject, other: DisplayObject, out: Rectangle): Rectangle;
4
- export declare function hitTestDisplayObjectsShape(source: DisplayObject, other: DisplayObject): boolean;
1
+ import type { Node2D, Rectangle } from '@flighthq/types';
2
+ export declare function containsNode2D(outer: Node2D, inner: Node2D): boolean;
3
+ export declare function getNode2DOverlapRectangle(source: Node2D, other: Node2D, out: Rectangle): Rectangle;
4
+ export declare function hitTestNode2DsShape(source: Node2D, other: Node2D): boolean;
5
5
  //# sourceMappingURL=displayObjectOverlap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"displayObjectOverlap.d.ts","sourceRoot":"","sources":["../src/displayObjectOverlap.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEhE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAEzF;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,SAAS,GACb,SAAS,CAGX;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAS/F"}
1
+ {"version":3,"file":"displayObjectOverlap.d.ts","sourceRoot":"","sources":["../src/displayObjectOverlap.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,CAGlG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAS1E"}
@@ -1,13 +1,13 @@
1
1
  import { computeRectangleIntersection, containsRectanglePointXY, enclosesRectangle, intersectsRectangle, } from '@flighthq/geometry';
2
2
  import { getNodeWorldBoundsRectangle } from '@flighthq/node';
3
- export function containsDisplayObject(outer, inner) {
3
+ export function containsNode2D(outer, inner) {
4
4
  return enclosesRectangle(getNodeWorldBoundsRectangle(outer), getNodeWorldBoundsRectangle(inner));
5
5
  }
6
- export function getDisplayObjectOverlapRectangle(source, other, out) {
6
+ export function getNode2DOverlapRectangle(source, other, out) {
7
7
  computeRectangleIntersection(out, getNodeWorldBoundsRectangle(source), getNodeWorldBoundsRectangle(other));
8
8
  return out;
9
9
  }
10
- export function hitTestDisplayObjectsShape(source, other) {
10
+ export function hitTestNode2DsShape(source, other) {
11
11
  const a = getNodeWorldBoundsRectangle(source);
12
12
  const b = getNodeWorldBoundsRectangle(other);
13
13
  if (!intersectsRectangle(a, b))
@@ -1 +1 @@
1
- {"version":3,"file":"displayObjectOverlap.js","sourceRoot":"","sources":["../src/displayObjectOverlap.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAG7D,MAAM,UAAU,qBAAqB,CAAC,KAAoB,EAAE,KAAoB;IAC9E,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,MAAqB,EACrB,KAAoB,EACpB,GAAc;IAEd,4BAA4B,CAAC,GAAG,EAAE,2BAA2B,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3G,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAqB,EAAE,KAAoB;IACpF,MAAM,CAAC,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;IACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;IACtC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;IACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;IACtC,OAAO,wBAAwB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,wBAAwB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5G,CAAC"}
1
+ {"version":3,"file":"displayObjectOverlap.js","sourceRoot":"","sources":["../src/displayObjectOverlap.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAG7D,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,KAAa;IACzD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,KAAa,EAAE,GAAc;IACrF,4BAA4B,CAAC,GAAG,EAAE,2BAA2B,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3G,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,KAAa;IAC/D,MAAM,CAAC,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;IACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;IACtC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;IACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;IACtC,OAAO,wBAAwB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,wBAAwB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5G,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { DisplayObject, HitTestFunction, HitTestPreciseFunction, HitTestResult, Kind, Node, NodeAny } from '@flighthq/types';
1
+ import type { Node2D, HitTestFunction, HitTestPreciseFunction, HitTestResult, Kind, Node, NodeAny } from '@flighthq/types';
2
2
  /**
3
3
  * Fills `out` with the sub-index and local coordinates of a hit at world-space (x, y) on a node you
4
4
  * already have (usually the result of a `*Precise` query, or a dispatch target). `out.subIndex` is the
@@ -25,11 +25,6 @@ export declare function findGraphHitTargetPrecise<Traits extends object>(source:
25
25
  export declare function findGraphHitTargets<Traits extends object>(source: Node<Traits>, x: number, y: number, out?: Node<Traits>[]): Node<Traits>[];
26
26
  /** Precise stack: `findGraphHitTargets` using exact geometry per kind (bounds fallback where none). */
27
27
  export declare function findGraphHitTargetsPrecise<Traits extends object>(source: Node<Traits>, x: number, y: number, out?: Node<Traits>[]): Node<Traits>[];
28
- /**
29
- * Evaluates the world bounding box of one node to see if it overlaps or
30
- * intersects the world bounding box of another.
31
- **/
32
- export declare function hitTestDisplayObjects(source: DisplayObject, other: DisplayObject): boolean;
33
28
  /**
34
29
  * Tests whether world-space (x, y) falls within the node's local bounds rect,
35
30
  * after inverting through the node's world transform.
@@ -39,6 +34,11 @@ export declare function hitTestGraphLocalBounds<Traits extends object>(source: N
39
34
  export declare function hitTestGraphPoint<Traits extends object>(source: Node<Traits>, x: number, y: number): boolean;
40
35
  /** Precise any-hit query: `hitTestGraphPoint` using exact geometry per kind (bounds fallback where none). */
41
36
  export declare function hitTestGraphPointPrecise<Traits extends object>(source: Node<Traits>, x: number, y: number): boolean;
37
+ /**
38
+ * Evaluates the world bounding box of one node to see if it overlaps or
39
+ * intersects the world bounding box of another.
40
+ **/
41
+ export declare function hitTestNode2Ds(source: Node2D, other: Node2D): boolean;
42
42
  /**
43
43
  * Tests one node's own hit region at world-space (x, y): its `hitArea` if set, else its kind geometry
44
44
  * (coarse bounds, or the exact provider when `precise`). No eligibility check and no recursion — for
@@ -1 +1 @@
1
- {"version":3,"file":"hitTests.d.ts","sourceRoot":"","sources":["../src/hitTests.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,aAAa,EAEb,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,IAAI,EACJ,IAAI,EACJ,OAAO,EAGR,MAAM,iBAAiB,CAAC;AAIzB;;;;;IAKI;AACJ,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAO9F;AAED;;;;IAII;AACJ,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EACtD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAErB;AAED;;;;IAII;AACJ,wBAAgB,yBAAyB,CAAC,MAAM,SAAS,MAAM,EAC7D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAErB;AAED;;;IAGI;AACJ,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,MAAM,EACvD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,GAAG,GAAE,IAAI,CAAC,MAAM,CAAC,EAAO,GACvB,IAAI,CAAC,MAAM,CAAC,EAAE,CAIhB;AAED,uGAAuG;AACvG,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,EAC9D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,GAAG,GAAE,IAAI,CAAC,MAAM,CAAC,EAAO,GACvB,IAAI,CAAC,MAAM,CAAC,EAAE,CAIhB;AAED;;;IAGI;AACJ,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAK1F;AAED;;;IAGI;AACJ,wBAAgB,uBAAuB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAOlH;AAED,+HAA+H;AAC/H,wBAAgB,iBAAiB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE5G;AAED,6GAA6G;AAC7G,wBAAgB,wBAAwB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEnH;AAED;;;;IAII;AACJ,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAI1G;AAED;;;IAGI;AACJ,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,GAAG,IAAI,CAErE;AAED;;;;IAII;AACJ,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,sBAAsB,GAAG,IAAI,CAEnF"}
1
+ {"version":3,"file":"hitTests.d.ts","sourceRoot":"","sources":["../src/hitTests.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,MAAM,EAEN,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,IAAI,EACJ,IAAI,EACJ,OAAO,EAGR,MAAM,iBAAiB,CAAC;AAIzB;;;;;IAKI;AACJ,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAO9F;AAED;;;;IAII;AACJ,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EACtD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAErB;AAED;;;;IAII;AACJ,wBAAgB,yBAAyB,CAAC,MAAM,SAAS,MAAM,EAC7D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAErB;AAED;;;IAGI;AACJ,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,MAAM,EACvD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,GAAG,GAAE,IAAI,CAAC,MAAM,CAAC,EAAO,GACvB,IAAI,CAAC,MAAM,CAAC,EAAE,CAIhB;AAED,uGAAuG;AACvG,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,EAC9D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,GAAG,GAAE,IAAI,CAAC,MAAM,CAAC,EAAO,GACvB,IAAI,CAAC,MAAM,CAAC,EAAE,CAIhB;AAED;;;IAGI;AACJ,wBAAgB,uBAAuB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAOlH;AAED,+HAA+H;AAC/H,wBAAgB,iBAAiB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE5G;AAED,6GAA6G;AAC7G,wBAAgB,wBAAwB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEnH;AAED;;;IAGI;AACJ,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKrE;AAED;;;;IAII;AACJ,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAI1G;AAED;;;IAGI;AACJ,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,GAAG,IAAI,CAErE;AAED;;;;IAII;AACJ,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,sBAAsB,GAAG,IAAI,CAEnF"}
package/dist/hitTests.js CHANGED
@@ -47,16 +47,6 @@ export function findGraphHitTargetsPrecise(source, x, y, out = []) {
47
47
  collectHits(source, x, y, true, out);
48
48
  return out;
49
49
  }
50
- /**
51
- * Evaluates the world bounding box of one node to see if it overlaps or
52
- * intersects the world bounding box of another.
53
- **/
54
- export function hitTestDisplayObjects(source, other) {
55
- if (getNodeParent(source) !== null && getNodeParent(other) !== null) {
56
- return intersectsRectangle(getNodeWorldBoundsRectangle(source), getNodeWorldBoundsRectangle(other));
57
- }
58
- return false;
59
- }
60
50
  /**
61
51
  * Tests whether world-space (x, y) falls within the node's local bounds rect,
62
52
  * after inverting through the node's world transform.
@@ -73,6 +63,16 @@ export function hitTestGraphPoint(source, x, y) {
73
63
  export function hitTestGraphPointPrecise(source, x, y) {
74
64
  return anyHit(source, x, y, true);
75
65
  }
66
+ /**
67
+ * Evaluates the world bounding box of one node to see if it overlaps or
68
+ * intersects the world bounding box of another.
69
+ **/
70
+ export function hitTestNode2Ds(source, other) {
71
+ if (getNodeParent(source) !== null && getNodeParent(other) !== null) {
72
+ return intersectsRectangle(getNodeWorldBoundsRectangle(source), getNodeWorldBoundsRectangle(other));
73
+ }
74
+ return false;
75
+ }
76
76
  /**
77
77
  * Tests one node's own hit region at world-space (x, y): its `hitArea` if set, else its kind geometry
78
78
  * (coarse bounds, or the exact provider when `precise`). No eligibility check and no recursion — for
@@ -1 +1 @@
1
- {"version":3,"file":"hitTests.js","sourceRoot":"","sources":["../src/hitTests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hitTests.js","sourceRoot":"","sources":["../src/hitTests.ts"],"names":[],"mappings":"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"}
@@ -1 +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"}
1
+ {"version":3,"file":"interactionSpatialIndex.d.ts","sourceRoot":"","sources":["../src/interactionSpatialIndex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAU,kBAAkB,EAAE,OAAO,EAAgC,MAAM,iBAAiB,CAAC;AAKzG;;;;;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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interactionSpatialIndex.js","sourceRoot":"","sources":["../src/interactionSpatialIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactionSpatialIndex.js","sourceRoot":"","sources":["../src/interactionSpatialIndex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerBitmapHitTest.js","sourceRoot":"","sources":["../src/registerBitmapHitTest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registerBitmapHitTest.js","sourceRoot":"","sources":["../src/registerBitmapHitTest.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
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';
2
+ import { defaultBitmapHitTestHandler, defaultNode2DHitTestHandler, defaultHtmlViewHitTestHandler, defaultMovieClipHitTestHandler, defaultRenderViewHitTestHandler, defaultRichTextHitTestHandler, defaultShapeHitTestHandler, defaultTextHitTestHandler, defaultVideoHitTestHandler, } from './displayHitTests';
3
3
  import { registerHitTest } from './hitTests';
4
4
  import { defaultQuadBatchHitTestHandler, defaultSpriteHitTestHandler, defaultTilemapHitTestHandler, } from './spriteHitTests';
5
5
  export function registerDefaultHitTests() {
6
6
  registerHitTest(BitmapKind, defaultBitmapHitTestHandler);
7
- registerHitTest(DisplayObjectKind, defaultDisplayObjectHitTestHandler);
7
+ registerHitTest(DisplayObjectKind, defaultNode2DHitTestHandler);
8
8
  registerHitTest(HtmlViewKind, defaultHtmlViewHitTestHandler);
9
9
  registerHitTest(MovieClipKind, defaultMovieClipHitTestHandler);
10
10
  registerHitTest(QuadBatchKind, defaultQuadBatchHitTestHandler);
@@ -1 +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"}
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,2BAA2B,EAC3B,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,2BAA2B,CAAC,CAAC;IAChE,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"}
@@ -1 +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"}
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,MAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClG,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"}
@@ -1 +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"}
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,MAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,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"}
@@ -1,4 +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[];
1
+ import type { Node2D, Rectangle } from '@flighthq/types';
2
+ export declare function hitTestAreaQuery(root: Node2D, rect: Readonly<Rectangle>, out?: Node2D[]): Node2D[];
3
+ export declare function hitTestAreaQueryCircle(root: Node2D, cx: number, cy: number, radius: number, out?: Node2D[]): Node2D[];
4
4
  //# sourceMappingURL=spatialQuery.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"spatialQuery.d.ts","sourceRoot":"","sources":["../src/spatialQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAgBtG;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAM,EAAO,GACjB,MAAM,EAAE,CAoBV"}
@@ -1 +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"}
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,CAAC,IAAY,EAAE,IAAyB,EAAE,MAAgB,EAAE;IAC1F,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,KAAe,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,EAAU,EACV,EAAU,EACV,MAAc,EACd,MAAgB,EAAE;IAElB,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,KAAe,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/interaction",
3
- "version": "0.2.1-next.738.07b221d",
3
+ "version": "0.2.1-next.841.373388f",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/flighthq/flight.git",
@@ -32,18 +32,18 @@
32
32
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
33
33
  },
34
34
  "dependencies": {
35
- "@flighthq/geometry": "0.2.1-next.738.07b221d",
36
- "@flighthq/node": "0.2.1-next.738.07b221d",
37
- "@flighthq/displayobject": "0.2.1-next.738.07b221d",
38
- "@flighthq/log": "0.2.1-next.738.07b221d",
39
- "@flighthq/path": "0.2.1-next.738.07b221d",
40
- "@flighthq/shape": "0.2.1-next.738.07b221d",
41
- "@flighthq/spatial": "0.2.1-next.738.07b221d",
42
- "@flighthq/signals": "0.2.1-next.738.07b221d",
43
- "@flighthq/surface": "0.2.1-next.738.07b221d",
44
- "@flighthq/text": "0.2.1-next.738.07b221d",
45
- "@flighthq/textlayout": "0.2.1-next.738.07b221d",
46
- "@flighthq/types": "0.2.1-next.738.07b221d"
35
+ "@flighthq/geometry": "0.2.1-next.841.373388f",
36
+ "@flighthq/node": "0.2.1-next.841.373388f",
37
+ "@flighthq/scene2d": "0.2.1-next.841.373388f",
38
+ "@flighthq/log": "0.2.1-next.841.373388f",
39
+ "@flighthq/path": "0.2.1-next.841.373388f",
40
+ "@flighthq/shape": "0.2.1-next.841.373388f",
41
+ "@flighthq/spatial": "0.2.1-next.841.373388f",
42
+ "@flighthq/signals": "0.2.1-next.841.373388f",
43
+ "@flighthq/surface": "0.2.1-next.841.373388f",
44
+ "@flighthq/text": "0.2.1-next.841.373388f",
45
+ "@flighthq/textlayout": "0.2.1-next.841.373388f",
46
+ "@flighthq/types": "0.2.1-next.841.373388f"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@flighthq/sprite": "*",
@@ -1,10 +1,10 @@
1
- import { createDisplayObject } from '@flighthq/displayobject';
2
1
  import { setRectangle } from '@flighthq/geometry';
3
2
  import { getNodeLocalBoundsRectangle } from '@flighthq/node';
3
+ import { createDisplayObject } from '@flighthq/scene2d';
4
4
 
5
5
  import {
6
6
  defaultBitmapHitTestHandler,
7
- defaultDisplayObjectHitTestHandler,
7
+ defaultNode2DHitTestHandler,
8
8
  defaultHtmlViewHitTestHandler,
9
9
  defaultMovieClipHitTestHandler,
10
10
  defaultRenderViewHitTestHandler,
@@ -15,7 +15,7 @@ import {
15
15
  defaultVideoHitTestHandler,
16
16
  } from './displayHitTests';
17
17
 
18
- function makeDisplayObject() {
18
+ function makeNode2D() {
19
19
  const obj = createDisplayObject();
20
20
  setRectangle(getNodeLocalBoundsRectangle(obj), 0, 0, 100, 100);
21
21
  return obj;
@@ -23,107 +23,107 @@ function makeDisplayObject() {
23
23
 
24
24
  describe('defaultBitmapHitTestHandler', () => {
25
25
  it('returns true when point is within local bounds', () => {
26
- const obj = makeDisplayObject();
26
+ const obj = makeNode2D();
27
27
  expect(defaultBitmapHitTestHandler(obj, 50, 50)).toBe(true);
28
28
  });
29
29
 
30
30
  it('returns false when point is outside local bounds', () => {
31
- const obj = makeDisplayObject();
31
+ const obj = makeNode2D();
32
32
  expect(defaultBitmapHitTestHandler(obj, 200, 200)).toBe(false);
33
33
  });
34
34
  });
35
35
 
36
- describe('defaultDisplayObjectHitTestHandler', () => {
37
- it('always returns false — plain display objects have no hit geometry', () => {
38
- const obj = makeDisplayObject();
39
- expect(defaultDisplayObjectHitTestHandler(obj, 50, 50)).toBe(false);
40
- expect(defaultDisplayObjectHitTestHandler(obj, 0, 0)).toBe(false);
41
- expect(defaultDisplayObjectHitTestHandler(obj, 200, 200)).toBe(false);
42
- });
43
- });
44
-
45
36
  describe('defaultHtmlViewHitTestHandler', () => {
46
37
  it('always returns false — browser manages HtmlView hit testing', () => {
47
- const obj = makeDisplayObject();
38
+ const obj = makeNode2D();
48
39
  expect(defaultHtmlViewHitTestHandler(obj, 50, 50)).toBe(false);
49
40
  });
50
41
  });
51
42
 
52
43
  describe('defaultMovieClipHitTestHandler', () => {
53
44
  it('always returns false — containers have no self hit area', () => {
54
- const obj = makeDisplayObject();
45
+ const obj = makeNode2D();
55
46
  expect(defaultMovieClipHitTestHandler(obj, 50, 50)).toBe(false);
56
47
  });
57
48
  });
58
49
 
50
+ describe('defaultNode2DHitTestHandler', () => {
51
+ it('always returns false — plain display objects have no hit geometry', () => {
52
+ const obj = makeNode2D();
53
+ expect(defaultNode2DHitTestHandler(obj, 50, 50)).toBe(false);
54
+ expect(defaultNode2DHitTestHandler(obj, 0, 0)).toBe(false);
55
+ expect(defaultNode2DHitTestHandler(obj, 200, 200)).toBe(false);
56
+ });
57
+ });
58
+
59
59
  describe('defaultRenderViewHitTestHandler', () => {
60
60
  it('returns true when point is within local bounds', () => {
61
- const obj = makeDisplayObject();
61
+ const obj = makeNode2D();
62
62
  expect(defaultRenderViewHitTestHandler(obj, 50, 50)).toBe(true);
63
63
  });
64
64
 
65
65
  it('returns false when point is outside local bounds', () => {
66
- const obj = makeDisplayObject();
66
+ const obj = makeNode2D();
67
67
  expect(defaultRenderViewHitTestHandler(obj, 200, 200)).toBe(false);
68
68
  });
69
69
  });
70
70
 
71
71
  describe('defaultRichTextHitTestHandler', () => {
72
72
  it('returns true when point is within local bounds', () => {
73
- const obj = makeDisplayObject();
73
+ const obj = makeNode2D();
74
74
  expect(defaultRichTextHitTestHandler(obj, 50, 50)).toBe(true);
75
75
  });
76
76
 
77
77
  it('returns false when point is outside local bounds', () => {
78
- const obj = makeDisplayObject();
78
+ const obj = makeNode2D();
79
79
  expect(defaultRichTextHitTestHandler(obj, 200, 200)).toBe(false);
80
80
  });
81
81
  });
82
82
 
83
83
  describe('defaultShapeHitTestHandler', () => {
84
84
  it('returns true when point is within local bounds', () => {
85
- const obj = makeDisplayObject();
85
+ const obj = makeNode2D();
86
86
  expect(defaultShapeHitTestHandler(obj, 50, 50)).toBe(true);
87
87
  });
88
88
 
89
89
  it('returns false when point is outside local bounds', () => {
90
- const obj = makeDisplayObject();
90
+ const obj = makeNode2D();
91
91
  expect(defaultShapeHitTestHandler(obj, 200, 200)).toBe(false);
92
92
  });
93
93
  });
94
94
 
95
95
  describe('defaultTextHitTestHandler', () => {
96
96
  it('returns true when point is within local bounds', () => {
97
- const obj = makeDisplayObject();
97
+ const obj = makeNode2D();
98
98
  expect(defaultTextHitTestHandler(obj, 50, 50)).toBe(true);
99
99
  });
100
100
 
101
101
  it('returns false when point is outside local bounds', () => {
102
- const obj = makeDisplayObject();
102
+ const obj = makeNode2D();
103
103
  expect(defaultTextHitTestHandler(obj, 200, 200)).toBe(false);
104
104
  });
105
105
  });
106
106
 
107
107
  describe('defaultTextInputHitTestHandler', () => {
108
108
  it('returns true when point is within local bounds', () => {
109
- const obj = makeDisplayObject();
109
+ const obj = makeNode2D();
110
110
  expect(defaultTextInputHitTestHandler(obj, 50, 50)).toBe(true);
111
111
  });
112
112
 
113
113
  it('returns false when point is outside local bounds', () => {
114
- const obj = makeDisplayObject();
114
+ const obj = makeNode2D();
115
115
  expect(defaultTextInputHitTestHandler(obj, 200, 200)).toBe(false);
116
116
  });
117
117
  });
118
118
 
119
119
  describe('defaultVideoHitTestHandler', () => {
120
120
  it('returns true when point is within local bounds', () => {
121
- const obj = makeDisplayObject();
121
+ const obj = makeNode2D();
122
122
  expect(defaultVideoHitTestHandler(obj, 50, 50)).toBe(true);
123
123
  });
124
124
 
125
125
  it('returns false when point is outside local bounds', () => {
126
- const obj = makeDisplayObject();
126
+ const obj = makeNode2D();
127
127
  expect(defaultVideoHitTestHandler(obj, 200, 200)).toBe(false);
128
128
  });
129
129
  });
@@ -1,12 +1,8 @@
1
- import { createDisplayObject } from '@flighthq/displayobject';
2
1
  import { createRectangle, setRectangle } from '@flighthq/geometry';
3
2
  import { getNodeLocalBoundsRectangle } from '@flighthq/node';
3
+ import { createDisplayObject } from '@flighthq/scene2d';
4
4
 
5
- import {
6
- containsDisplayObject,
7
- getDisplayObjectOverlapRectangle,
8
- hitTestDisplayObjectsShape,
9
- } from './displayObjectOverlap';
5
+ import { containsNode2D, getNode2DOverlapRectangle, hitTestNode2DsShape } from './displayObjectOverlap';
10
6
 
11
7
  function makeAt(x: number, y: number, w: number, h: number) {
12
8
  const obj = createDisplayObject();
@@ -14,32 +10,32 @@ function makeAt(x: number, y: number, w: number, h: number) {
14
10
  return obj;
15
11
  }
16
12
 
17
- describe('containsDisplayObject', () => {
13
+ describe('containsNode2D', () => {
18
14
  it('returns true when inner is fully inside outer', () => {
19
15
  const outer = makeAt(0, 0, 100, 100);
20
16
  const inner = makeAt(10, 10, 20, 20);
21
- expect(containsDisplayObject(outer, inner)).toBe(true);
17
+ expect(containsNode2D(outer, inner)).toBe(true);
22
18
  });
23
19
 
24
20
  it('returns false when inner extends beyond outer', () => {
25
21
  const outer = makeAt(0, 0, 50, 50);
26
22
  const inner = makeAt(30, 30, 40, 40);
27
- expect(containsDisplayObject(outer, inner)).toBe(false);
23
+ expect(containsNode2D(outer, inner)).toBe(false);
28
24
  });
29
25
 
30
26
  it('returns false when inner is completely outside outer', () => {
31
27
  const outer = makeAt(0, 0, 50, 50);
32
28
  const inner = makeAt(100, 100, 20, 20);
33
- expect(containsDisplayObject(outer, inner)).toBe(false);
29
+ expect(containsNode2D(outer, inner)).toBe(false);
34
30
  });
35
31
  });
36
32
 
37
- describe('getDisplayObjectOverlapRectangle', () => {
33
+ describe('getNode2DOverlapRectangle', () => {
38
34
  it('writes the intersection rectangle into out', () => {
39
35
  const a = makeAt(0, 0, 100, 100);
40
36
  const b = makeAt(50, 50, 100, 100);
41
37
  const out = createRectangle();
42
- const result = getDisplayObjectOverlapRectangle(a, b, out);
38
+ const result = getNode2DOverlapRectangle(a, b, out);
43
39
  expect(result).toBe(out);
44
40
  expect(out.x).toBe(50);
45
41
  expect(out.y).toBe(50);
@@ -51,28 +47,28 @@ describe('getDisplayObjectOverlapRectangle', () => {
51
47
  const a = makeAt(0, 0, 50, 50);
52
48
  const b = makeAt(100, 100, 50, 50);
53
49
  const out = createRectangle();
54
- getDisplayObjectOverlapRectangle(a, b, out);
50
+ getNode2DOverlapRectangle(a, b, out);
55
51
  expect(out.width).toBe(0);
56
52
  expect(out.height).toBe(0);
57
53
  });
58
54
  });
59
55
 
60
- describe('hitTestDisplayObjectsShape', () => {
56
+ describe('hitTestNode2DsShape', () => {
61
57
  it('returns true when centers overlap', () => {
62
58
  const a = makeAt(0, 0, 100, 100);
63
59
  const b = makeAt(20, 20, 60, 60);
64
- expect(hitTestDisplayObjectsShape(a, b)).toBe(true);
60
+ expect(hitTestNode2DsShape(a, b)).toBe(true);
65
61
  });
66
62
 
67
63
  it('returns false when AABBs do not intersect', () => {
68
64
  const a = makeAt(0, 0, 50, 50);
69
65
  const b = makeAt(100, 100, 50, 50);
70
- expect(hitTestDisplayObjectsShape(a, b)).toBe(false);
66
+ expect(hitTestNode2DsShape(a, b)).toBe(false);
71
67
  });
72
68
 
73
69
  it('returns false when AABBs barely intersect but no center is inside the other', () => {
74
70
  const a = makeAt(0, 0, 10, 100);
75
71
  const b = makeAt(8, 0, 10, 100);
76
- expect(hitTestDisplayObjectsShape(a, b)).toBe(false);
72
+ expect(hitTestNode2DsShape(a, b)).toBe(false);
77
73
  });
78
74
  });
@@ -1,6 +1,6 @@
1
- import { createDisplayObject } from '@flighthq/displayobject';
2
1
  import { addLogSink, createMemoryLogSink, getMemoryLogSinkEntries, removeLogSink } from '@flighthq/log';
3
2
  import { addNodeChild } from '@flighthq/node';
3
+ import { createDisplayObject } from '@flighthq/scene2d';
4
4
 
5
5
  import {
6
6
  disableInteractionGuards,
@@ -1,8 +1,8 @@
1
- import { createDisplayObject } from '@flighthq/displayobject';
2
1
  import { setRectangle } from '@flighthq/geometry';
3
2
  import { addNodeChild, getNodeLocalBoundsRectangle, invalidateNodeLocalTransform } from '@flighthq/node';
3
+ import { createDisplayObject } from '@flighthq/scene2d';
4
4
  import { connectSignal, createSignal, emitSignal } from '@flighthq/signals';
5
- import type { DisplayObject, FocusEventData, InputKeyboardData } from '@flighthq/types';
5
+ import type { Node2D, FocusEventData, InputKeyboardData } from '@flighthq/types';
6
6
 
7
7
  import {
8
8
  clearFocus,
@@ -19,7 +19,7 @@ import {
19
19
  import { enableInteractionSignals } from './interactionManager';
20
20
  import { setNodeFocusable, setNodeTabIndex } from './nodeInteractionState';
21
21
 
22
- function focusable(tabIndex: number = -1): DisplayObject {
22
+ function focusable(tabIndex: number = -1): Node2D {
23
23
  const node = createDisplayObject();
24
24
  setNodeFocusable(node, true);
25
25
  if (tabIndex !== -1) setNodeTabIndex(node, tabIndex);
@@ -27,7 +27,7 @@ function focusable(tabIndex: number = -1): DisplayObject {
27
27
  }
28
28
 
29
29
  // A focusable node positioned in world space, so directional navigation can compare bounds centers.
30
- function placed(x: number, y: number): DisplayObject {
30
+ function placed(x: number, y: number): Node2D {
31
31
  const node = focusable();
32
32
  node.x = x;
33
33
  node.y = y;
@@ -58,7 +58,7 @@ function keyData(key: string, shiftKey: boolean = false): InputKeyboardData {
58
58
  };
59
59
  }
60
60
 
61
- function sceneOf(...nodes: readonly DisplayObject[]): DisplayObject {
61
+ function sceneOf(...nodes: readonly Node2D[]): Node2D {
62
62
  const root = createDisplayObject();
63
63
  for (const node of nodes) addNodeChild(root, node);
64
64
  return root;
@@ -1,8 +1,8 @@
1
- import { createDisplayObject, createDisplayObjectGeneric, getDisplayObjectRuntime } from '@flighthq/displayobject';
2
1
  import { createRectangle, setRectangle } from '@flighthq/geometry';
3
2
  import { addNodeChild, getNodeLocalBoundsRectangle, invalidateNodeLocalTransform } from '@flighthq/node';
4
3
  import { appendPathRectangle, createPath } from '@flighthq/path';
5
- import type { DisplayObject, DisplayObjectRuntime, HitTestResult, NodeAny } from '@flighthq/types';
4
+ import { createDisplayObject, createNode2D, getNode2DRuntime } from '@flighthq/scene2d';
5
+ import type { Node2D, Node2DRuntime, HitTestResult, NodeAny } from '@flighthq/types';
6
6
  import { DisplayObjectKind } from '@flighthq/types';
7
7
 
8
8
  import {
@@ -11,7 +11,7 @@ import {
11
11
  findGraphHitTargetPrecise,
12
12
  findGraphHitTargets,
13
13
  findGraphHitTargetsPrecise,
14
- hitTestDisplayObjects,
14
+ hitTestNode2Ds,
15
15
  hitTestGraphLocalBounds,
16
16
  hitTestGraphPoint,
17
17
  hitTestGraphPointPrecise,
@@ -26,14 +26,14 @@ function boundsPrecise(source: NodeAny, x: number, y: number): number {
26
26
  return hitTestGraphLocalBounds(source, x, y) ? 0 : -1;
27
27
  }
28
28
 
29
- function boundsObject(w: number, h: number): DisplayObject {
29
+ function boundsObject(w: number, h: number): Node2D {
30
30
  const obj = createDisplayObject();
31
31
  setRectangle(getNodeLocalBoundsRectangle(obj), 0, 0, w, h);
32
32
  setNodeHitTestEnabled(obj, true);
33
33
  return obj;
34
34
  }
35
35
 
36
- function emptyResult(node: DisplayObject): HitTestResult {
36
+ function emptyResult(node: Node2D): HitTestResult {
37
37
  return { localX: 0, localY: 0, node, subIndex: -2 };
38
38
  }
39
39
 
@@ -44,7 +44,7 @@ beforeAll(() => {
44
44
  describe('describeGraphHit', () => {
45
45
  it('fills node, local coordinates, and the sub-index from the kind exact provider', () => {
46
46
  const kind = 'DescribeKind';
47
- const node = createDisplayObjectGeneric(kind);
47
+ const node = createNode2D(kind);
48
48
  node.x = 40;
49
49
  node.y = 40;
50
50
  invalidateNodeLocalTransform(node);
@@ -119,7 +119,7 @@ describe('findGraphHitTarget', () => {
119
119
  expect(findGraphHitTarget(pathObj, 40, 40)).toBeNull();
120
120
 
121
121
  const proxyOwner = createDisplayObject();
122
- const proxy = createDisplayObjectGeneric(DisplayObjectKind);
122
+ const proxy = createNode2D(DisplayObjectKind);
123
123
  setRectangle(getNodeLocalBoundsRectangle(proxy), 0, 0, 20, 20);
124
124
  setNodeHitTestEnabled(proxyOwner, true);
125
125
  setNodeHitArea(proxyOwner, proxy);
@@ -131,7 +131,7 @@ describe('findGraphHitTarget', () => {
131
131
  describe('findGraphHitTargetPrecise', () => {
132
132
  it('uses the kind exact provider, so a bbox hit off the real geometry misses', () => {
133
133
  const kind = 'PreciseFirstKind';
134
- const node = createDisplayObjectGeneric(kind);
134
+ const node = createNode2D(kind);
135
135
  setRectangle(getNodeLocalBoundsRectangle(node), 0, 0, 100, 100);
136
136
  setNodeHitTestEnabled(node, true);
137
137
  // Exact provider only accepts the left half.
@@ -162,7 +162,7 @@ describe('findGraphHitTargets', () => {
162
162
 
163
163
  it('clears the out array and returns it', () => {
164
164
  const obj = boundsObject(100, 100);
165
- const out: DisplayObject[] = [createDisplayObject()];
165
+ const out: Node2D[] = [createDisplayObject()];
166
166
  const result = findGraphHitTargets(obj, 50, 50, out);
167
167
  expect(result).toBe(out);
168
168
  expect(out).toEqual([obj]);
@@ -175,7 +175,7 @@ describe('findGraphHitTargetsPrecise', () => {
175
175
  registerHitTest(kind, hitTestGraphLocalBounds);
176
176
  registerHitTestPrecise(kind, boundsPrecise);
177
177
  const root = createDisplayObject();
178
- const a = createDisplayObjectGeneric(kind);
178
+ const a = createNode2D(kind);
179
179
  setRectangle(getNodeLocalBoundsRectangle(a), 0, 0, 100, 100);
180
180
  setNodeHitTestEnabled(a, true);
181
181
  addNodeChild(root, a);
@@ -184,55 +184,6 @@ describe('findGraphHitTargetsPrecise', () => {
184
184
  });
185
185
  });
186
186
 
187
- describe('hitTestDisplayObjects', () => {
188
- let a: DisplayObject;
189
- let b: DisplayObject;
190
-
191
- beforeEach(() => {
192
- a = createDisplayObject();
193
- b = createDisplayObject();
194
- addNodeChild(createDisplayObject(), a);
195
- addNodeChild(createDisplayObject(), b);
196
- setRectangle(getNodeLocalBoundsRectangle(a), 0, 0, 10, 10);
197
- setRectangle(getNodeLocalBoundsRectangle(b), 0, 0, 10, 10);
198
- a.x = 0;
199
- a.y = 0;
200
- b.x = 5;
201
- b.y = 5;
202
- a.scaleX = a.scaleY = 1;
203
- b.scaleX = b.scaleY = 1;
204
- });
205
-
206
- it('returns true when bounds intersect', () => {
207
- expect(hitTestDisplayObjects(a, b)).toBe(true);
208
- });
209
-
210
- it('returns false when bounds do not intersect', () => {
211
- b.x = 20;
212
- b.y = 20;
213
- invalidateNodeLocalTransform(b);
214
- expect(hitTestDisplayObjects(a, b)).toBe(false);
215
- });
216
-
217
- it('returns false if either object has no parent', () => {
218
- (getDisplayObjectRuntime(b) as DisplayObjectRuntime).parent = null;
219
- expect(hitTestDisplayObjects(a, b)).toBe(false);
220
- });
221
-
222
- it('includes child bounds when a child extends beyond the object local bounds', () => {
223
- const child = createDisplayObject();
224
- child.x = 90;
225
- child.y = 90;
226
- invalidateNodeLocalTransform(child);
227
- setRectangle(getNodeLocalBoundsRectangle(child), 0, 0, 20, 20);
228
- addNodeChild(a, child);
229
- b.x = 100;
230
- b.y = 100;
231
- invalidateNodeLocalTransform(b);
232
- expect(hitTestDisplayObjects(a, b)).toBe(true);
233
- });
234
- });
235
-
236
187
  describe('hitTestGraphLocalBounds', () => {
237
188
  it('returns whether a world-space point is inside local bounds', () => {
238
189
  const obj = createDisplayObject();
@@ -243,7 +194,7 @@ describe('hitTestGraphLocalBounds', () => {
243
194
  });
244
195
 
245
196
  describe('hitTestGraphPoint', () => {
246
- let obj: DisplayObject;
197
+ let obj: Node2D;
247
198
 
248
199
  beforeEach(() => {
249
200
  obj = boundsObject(100, 100);
@@ -284,7 +235,7 @@ describe('hitTestGraphPoint', () => {
284
235
  describe('hitTestGraphPointPrecise', () => {
285
236
  it('uses exact geometry, so a bbox hit off the real geometry misses', () => {
286
237
  const kind = 'PreciseAnyKind';
287
- const node = createDisplayObjectGeneric(kind);
238
+ const node = createNode2D(kind);
288
239
  setRectangle(getNodeLocalBoundsRectangle(node), 0, 0, 100, 100);
289
240
  setNodeHitTestEnabled(node, true);
290
241
  registerHitTestPrecise(kind, (s, x, y) => (hitTestGraphLocalBounds(s, x, y) && x < 50 ? 0 : -1));
@@ -293,6 +244,55 @@ describe('hitTestGraphPointPrecise', () => {
293
244
  });
294
245
  });
295
246
 
247
+ describe('hitTestNode2Ds', () => {
248
+ let a: Node2D;
249
+ let b: Node2D;
250
+
251
+ beforeEach(() => {
252
+ a = createDisplayObject();
253
+ b = createDisplayObject();
254
+ addNodeChild(createDisplayObject(), a);
255
+ addNodeChild(createDisplayObject(), b);
256
+ setRectangle(getNodeLocalBoundsRectangle(a), 0, 0, 10, 10);
257
+ setRectangle(getNodeLocalBoundsRectangle(b), 0, 0, 10, 10);
258
+ a.x = 0;
259
+ a.y = 0;
260
+ b.x = 5;
261
+ b.y = 5;
262
+ a.scaleX = a.scaleY = 1;
263
+ b.scaleX = b.scaleY = 1;
264
+ });
265
+
266
+ it('returns true when bounds intersect', () => {
267
+ expect(hitTestNode2Ds(a, b)).toBe(true);
268
+ });
269
+
270
+ it('returns false when bounds do not intersect', () => {
271
+ b.x = 20;
272
+ b.y = 20;
273
+ invalidateNodeLocalTransform(b);
274
+ expect(hitTestNode2Ds(a, b)).toBe(false);
275
+ });
276
+
277
+ it('returns false if either object has no parent', () => {
278
+ (getNode2DRuntime(b) as Node2DRuntime).parent = null;
279
+ expect(hitTestNode2Ds(a, b)).toBe(false);
280
+ });
281
+
282
+ it('includes child bounds when a child extends beyond the object local bounds', () => {
283
+ const child = createDisplayObject();
284
+ child.x = 90;
285
+ child.y = 90;
286
+ invalidateNodeLocalTransform(child);
287
+ setRectangle(getNodeLocalBoundsRectangle(child), 0, 0, 20, 20);
288
+ addNodeChild(a, child);
289
+ b.x = 100;
290
+ b.y = 100;
291
+ invalidateNodeLocalTransform(b);
292
+ expect(hitTestNode2Ds(a, b)).toBe(true);
293
+ });
294
+ });
295
+
296
296
  describe('hitTestNodeRegion', () => {
297
297
  it('tests a node kind geometry, ignoring eligibility and children', () => {
298
298
  const obj = createDisplayObject();
@@ -310,7 +310,7 @@ describe('hitTestNodeRegion', () => {
310
310
 
311
311
  it('uses the exact provider when precise', () => {
312
312
  const kind = 'RegionPreciseKind';
313
- const node = createDisplayObjectGeneric(kind);
313
+ const node = createNode2D(kind);
314
314
  setRectangle(getNodeLocalBoundsRectangle(node), 0, 0, 100, 100);
315
315
  registerHitTestPrecise(kind, (s, x, y) => (hitTestGraphLocalBounds(s, x, y) && x < 50 ? 0 : -1));
316
316
  expect(hitTestNodeRegion(node, 25, 50, true)).toBe(true);
@@ -322,7 +322,7 @@ describe('registerHitTest', () => {
322
322
  it('registers a coarse handler that hitTestGraphPoint will use', () => {
323
323
  const kind = 'RegisterTest';
324
324
  registerHitTest(kind, () => true);
325
- const node = createDisplayObjectGeneric(kind);
325
+ const node = createNode2D(kind);
326
326
  setNodeHitTestEnabled(node, true);
327
327
  expect(hitTestGraphPoint(node, 0, 0)).toBe(true);
328
328
  });
@@ -333,7 +333,7 @@ describe('registerHitTestPrecise', () => {
333
333
  const kind = 'RegisterPreciseTest';
334
334
  registerHitTest(kind, () => true);
335
335
  registerHitTestPrecise(kind, () => 3);
336
- const node = createDisplayObjectGeneric(kind);
336
+ const node = createNode2D(kind);
337
337
  setNodeHitTestEnabled(node, true);
338
338
  expect(findGraphHitTargetPrecise(node, 0, 0)).toBe(node);
339
339
  const out = emptyResult(node);
@@ -1,6 +1,6 @@
1
- import { createDisplayObject } from '@flighthq/displayobject';
2
1
  import { setRectangle } from '@flighthq/geometry';
3
2
  import { addNodeChild, createNode, getNodeLocalBoundsRectangle, invalidateNodeLocalTransform } from '@flighthq/node';
3
+ import { createDisplayObject } from '@flighthq/scene2d';
4
4
  import { connectSignal, createSignal, emitSignal } from '@flighthq/signals';
5
5
  import type { Cursor, InputKeyboardData, InputPointerData, InputSignals } from '@flighthq/types';
6
6
  import { DisplayObjectKind } from '@flighthq/types';
@@ -35,7 +35,7 @@ beforeAll(() => {
35
35
 
36
36
  describe('captureInteractionPointer', () => {
37
37
  it('routes pointer events to the captured target', () => {
38
- const { child, manager } = createHitScene();
38
+ const { child, manager } = createHitScene3D();
39
39
  let fired = 0;
40
40
  connectSignal(enableInteractionSignals(child).onPointerMove, () => fired++);
41
41
 
@@ -48,7 +48,7 @@ describe('captureInteractionPointer', () => {
48
48
  describe('connectInputToInteraction', () => {
49
49
  it('routes normalized input signals into interaction dispatch', () => {
50
50
  const input = createInputSource();
51
- const { child, manager } = createHitScene();
51
+ const { child, manager } = createHitScene3D();
52
52
  let fired = 0;
53
53
  connectSignal(enableInteractionSignals(child).onPointerDown, () => fired++);
54
54
 
@@ -199,7 +199,7 @@ describe('disconnectInteractionSignal', () => {
199
199
 
200
200
  describe('dispatchInteractionContextMenu', () => {
201
201
  it('fires onContextMenu on a hit target', () => {
202
- const { child, manager } = createHitScene();
202
+ const { child, manager } = createHitScene3D();
203
203
  let fired = 0;
204
204
  connectSignal(enableInteractionSignals(child).onContextMenu, () => fired++);
205
205
 
@@ -238,7 +238,7 @@ describe('dispatchInteractionKeyUp', () => {
238
238
 
239
239
  describe('dispatchInteractionPointerCancel', () => {
240
240
  it('fires onPointerCancel on the active pointer target', () => {
241
- const { child, manager } = createHitScene();
241
+ const { child, manager } = createHitScene3D();
242
242
  let fired = 0;
243
243
  connectSignal(enableInteractionSignals(child).onPointerCancel, () => fired++);
244
244
 
@@ -248,7 +248,7 @@ describe('dispatchInteractionPointerCancel', () => {
248
248
  });
249
249
 
250
250
  it('clears pointer capture', () => {
251
- const { child, manager } = createHitScene();
251
+ const { child, manager } = createHitScene3D();
252
252
  let fired = 0;
253
253
  connectSignal(enableInteractionSignals(child).onPointerCancel, () => fired++);
254
254
  connectSignal(enableInteractionSignals(child).onPointerMove, () => fired++);
@@ -419,7 +419,7 @@ describe('dispatchInteractionPointerDown', () => {
419
419
  });
420
420
 
421
421
  it('tracks a click target when only onClick is connected', () => {
422
- const { child, manager } = createHitScene();
422
+ const { child, manager } = createHitScene3D();
423
423
  let fired = 0;
424
424
  connectSignal(enableInteractionSignals(child).onClick, () => fired++);
425
425
 
@@ -431,7 +431,7 @@ describe('dispatchInteractionPointerDown', () => {
431
431
 
432
432
  describe('dispatchInteractionPointerMove', () => {
433
433
  it('fires onPointerMove on a hit target', () => {
434
- const { child, manager } = createHitScene();
434
+ const { child, manager } = createHitScene3D();
435
435
  let fired = 0;
436
436
  connectSignal(enableInteractionSignals(child).onPointerMove, () => fired++);
437
437
 
@@ -457,7 +457,7 @@ describe('dispatchInteractionPointerMove', () => {
457
457
  });
458
458
 
459
459
  it('fires over and roll over when entering a target', () => {
460
- const { child, manager } = createHitScene();
460
+ const { child, manager } = createHitScene3D();
461
461
  const order: string[] = [];
462
462
  const signals = enableInteractionSignals(child);
463
463
  connectSignal(signals.onPointerOver, () => order.push('over'));
@@ -468,7 +468,7 @@ describe('dispatchInteractionPointerMove', () => {
468
468
  });
469
469
 
470
470
  it('fires out and roll out when leaving a target', () => {
471
- const { child, manager } = createHitScene();
471
+ const { child, manager } = createHitScene3D();
472
472
  const order: string[] = [];
473
473
  const signals = enableInteractionSignals(child);
474
474
  connectSignal(signals.onPointerOut, () => order.push('out'));
@@ -482,7 +482,7 @@ describe('dispatchInteractionPointerMove', () => {
482
482
 
483
483
  describe('dispatchInteractionPointerUp', () => {
484
484
  it('fires onPointerUp on a hit target', () => {
485
- const { child, manager } = createHitScene();
485
+ const { child, manager } = createHitScene3D();
486
486
  let fired = 0;
487
487
  connectSignal(enableInteractionSignals(child).onPointerUp, () => fired++);
488
488
 
@@ -491,7 +491,7 @@ describe('dispatchInteractionPointerUp', () => {
491
491
  });
492
492
 
493
493
  it('fires onClick after down and up on the same target', () => {
494
- const { child, manager } = createHitScene();
494
+ const { child, manager } = createHitScene3D();
495
495
  let fired = 0;
496
496
  connectSignal(enableInteractionSignals(child).onClick, () => fired++);
497
497
 
@@ -501,7 +501,7 @@ describe('dispatchInteractionPointerUp', () => {
501
501
  });
502
502
 
503
503
  it('fires onDoubleClick for two clicks within the manager delay', () => {
504
- const { child, manager } = createHitScene();
504
+ const { child, manager } = createHitScene3D();
505
505
  let fired = 0;
506
506
  connectSignal(enableInteractionSignals(child).onDoubleClick, () => fired++);
507
507
 
@@ -513,7 +513,7 @@ describe('dispatchInteractionPointerUp', () => {
513
513
  });
514
514
 
515
515
  it('tracks double clicks independently by pointer id', () => {
516
- const { child, manager } = createHitScene();
516
+ const { child, manager } = createHitScene3D();
517
517
  let fired = 0;
518
518
  connectSignal(enableInteractionSignals(child).onDoubleClick, () => fired++);
519
519
 
@@ -527,7 +527,7 @@ describe('dispatchInteractionPointerUp', () => {
527
527
  });
528
528
 
529
529
  it('fires onReleaseOutside on the original down target', () => {
530
- const { child, manager } = createHitScene();
530
+ const { child, manager } = createHitScene3D();
531
531
  let fired = 0;
532
532
  connectSignal(enableInteractionSignals(child).onReleaseOutside, () => fired++);
533
533
 
@@ -539,7 +539,7 @@ describe('dispatchInteractionPointerUp', () => {
539
539
 
540
540
  describe('dispatchInteractionWheel', () => {
541
541
  it('fires onWheel with delta values', () => {
542
- const { child, manager } = createHitScene();
542
+ const { child, manager } = createHitScene3D();
543
543
  let receivedDeltaY = 0;
544
544
  connectSignal(enableInteractionSignals(child).onWheel, (data) => {
545
545
  receivedDeltaY = data.deltaY;
@@ -585,7 +585,7 @@ describe('getInteractionSignals', () => {
585
585
 
586
586
  describe('releaseInteractionPointer', () => {
587
587
  it('stops routing pointer events to the captured target', () => {
588
- const { child, manager } = createHitScene();
588
+ const { child, manager } = createHitScene3D();
589
589
  let fired = 0;
590
590
  connectSignal(enableInteractionSignals(child).onPointerMove, () => fired++);
591
591
 
@@ -612,7 +612,7 @@ describe('setInteractionConnectGuard', () => {
612
612
  });
613
613
  });
614
614
 
615
- function createHitScene() {
615
+ function createHitScene3D() {
616
616
  const root = createDisplayObject();
617
617
  const child = createDisplayObject();
618
618
  setRectangle(getNodeLocalBoundsRectangle(child), 0, 0, 100, 100);
@@ -1,6 +1,6 @@
1
- import { createDisplayObject, createDisplayObjectGeneric } from '@flighthq/displayobject';
2
1
  import { setRectangle } from '@flighthq/geometry';
3
2
  import { addNodeChild, getNodeLocalBoundsRectangle, invalidateNodeLocalTransform } from '@flighthq/node';
3
+ import { createDisplayObject, createNode2D } from '@flighthq/scene2d';
4
4
  import { createSpatialIndex, createUniformGridSpatialBackend } from '@flighthq/spatial';
5
5
  import { DisplayObjectKind } from '@flighthq/types';
6
6
 
@@ -10,7 +10,7 @@ import { findSpatialInteractionTarget, refreshInteractionSpatialIndex } from './
10
10
  import { setNodeHitArea, setNodeHitTestEnabled } from './nodeInteractionState';
11
11
 
12
12
  function candidate(x: number, y: number, w: number, h: number) {
13
- const obj = createDisplayObjectGeneric(DisplayObjectKind);
13
+ const obj = createNode2D(DisplayObjectKind);
14
14
  obj.x = x;
15
15
  obj.y = y;
16
16
  invalidateNodeLocalTransform(obj);
@@ -19,7 +19,7 @@ function candidate(x: number, y: number, w: number, h: number) {
19
19
  return obj;
20
20
  }
21
21
 
22
- function managedScene() {
22
+ function managedScene3D() {
23
23
  registerHitTest(DisplayObjectKind, hitTestGraphLocalBounds);
24
24
  const root = createDisplayObject();
25
25
  const index = createSpatialIndex(createUniformGridSpatialBackend(64));
@@ -29,7 +29,7 @@ function managedScene() {
29
29
 
30
30
  describe('findSpatialInteractionTarget', () => {
31
31
  it('returns the candidate whose region contains the point', () => {
32
- const { manager, root } = managedScene();
32
+ const { manager, root } = managedScene3D();
33
33
  const a = candidate(0, 0, 50, 50);
34
34
  const b = candidate(200, 200, 50, 50);
35
35
  addNodeChild(root, a);
@@ -42,7 +42,7 @@ describe('findSpatialInteractionTarget', () => {
42
42
  });
43
43
 
44
44
  it('returns the topmost (last-drawn) candidate when regions overlap', () => {
45
- const { manager, root } = managedScene();
45
+ const { manager, root } = managedScene3D();
46
46
  const under = candidate(0, 0, 100, 100);
47
47
  const over = candidate(0, 0, 100, 100);
48
48
  addNodeChild(root, under);
@@ -53,7 +53,7 @@ describe('findSpatialInteractionTarget', () => {
53
53
  });
54
54
 
55
55
  it('returns null before the index is refreshed', () => {
56
- const { manager, root } = managedScene();
56
+ const { manager, root } = managedScene3D();
57
57
  addNodeChild(root, candidate(0, 0, 50, 50));
58
58
  expect(findSpatialInteractionTarget(manager, 25, 25)).toBeNull();
59
59
  });
@@ -61,8 +61,8 @@ describe('findSpatialInteractionTarget', () => {
61
61
 
62
62
  describe('refreshInteractionSpatialIndex', () => {
63
63
  it('indexes only opted-in nodes', () => {
64
- const { manager, root } = managedScene();
65
- const inert = createDisplayObjectGeneric(DisplayObjectKind);
64
+ const { manager, root } = managedScene3D();
65
+ const inert = createNode2D(DisplayObjectKind);
66
66
  setRectangle(getNodeLocalBoundsRectangle(inert), 0, 0, 50, 50);
67
67
  addNodeChild(root, inert);
68
68
  refreshInteractionSpatialIndex(manager);
@@ -75,7 +75,7 @@ describe('refreshInteractionSpatialIndex', () => {
75
75
  });
76
76
 
77
77
  it('indexes an atomic hitArea unit without descending into its children', () => {
78
- const { manager, root } = managedScene();
78
+ const { manager, root } = managedScene3D();
79
79
  const unit = candidate(0, 0, 100, 100);
80
80
  setNodeHitArea(unit, 'bounds');
81
81
  const child = candidate(0, 0, 20, 20);
@@ -88,7 +88,7 @@ describe('refreshInteractionSpatialIndex', () => {
88
88
  });
89
89
 
90
90
  it('agrees with the linear pick after a transform change is re-synced', () => {
91
- const { manager, root } = managedScene();
91
+ const { manager, root } = managedScene3D();
92
92
  const a = candidate(0, 0, 50, 50);
93
93
  addNodeChild(root, a);
94
94
  refreshInteractionSpatialIndex(manager);
@@ -1,5 +1,5 @@
1
- import { createDisplayObject } from '@flighthq/displayobject';
2
1
  import { createRectangle } from '@flighthq/geometry';
2
+ import { createDisplayObject } from '@flighthq/scene2d';
3
3
 
4
4
  import {
5
5
  createNodeInteractionState,
@@ -1,6 +1,6 @@
1
- import { createBitmap } from '@flighthq/displayobject';
2
1
  import { setRectangle } from '@flighthq/geometry';
3
2
  import { getNodeLocalBoundsRectangle } from '@flighthq/node';
3
+ import { createBitmap } from '@flighthq/scene2d';
4
4
 
5
5
  import { findGraphHitTargetPrecise } from './hitTests';
6
6
  import { setNodeHitTestEnabled } from './nodeInteractionState';
@@ -1,6 +1,6 @@
1
- import { createBitmap, createStage } from '@flighthq/displayobject';
2
1
  import { setRectangle } from '@flighthq/geometry';
3
2
  import { getNodeLocalBoundsRectangle } from '@flighthq/node';
3
+ import { createBitmap, createScene2D } from '@flighthq/scene2d';
4
4
  import { createShape } from '@flighthq/shape';
5
5
 
6
6
  import { findGraphHitTarget } from './hitTests';
@@ -25,7 +25,7 @@ describe('registerDefaultHitTests', () => {
25
25
  it('containers return null for self hit', () => {
26
26
  registerDefaultHitTests();
27
27
 
28
- const root = createStage().root;
28
+ const root = createScene2D().root;
29
29
  setRectangle(getNodeLocalBoundsRectangle(root), 0, 0, 100, 100);
30
30
  expect(findGraphHitTarget(root, 50, 50)).toBeNull();
31
31
  });
@@ -1,6 +1,6 @@
1
- import { createDisplayObject } from '@flighthq/displayobject';
2
1
  import { createRectangle, setRectangle } from '@flighthq/geometry';
3
2
  import { addNodeChild, getNodeLocalBoundsRectangle } from '@flighthq/node';
3
+ import { createDisplayObject } from '@flighthq/scene2d';
4
4
 
5
5
  import { hitTestAreaQuery, hitTestAreaQueryCircle } from './spatialQuery';
6
6