@flighthq/collision 0.4.0-next.1663.d9c5746 → 0.4.0-next.1694.598ef6f

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 (112) hide show
  1. package/dist/collideContactManifold2D.d.ts +3 -0
  2. package/dist/collideContactManifold2D.d.ts.map +1 -0
  3. package/dist/{collideContactManifold.js → collideContactManifold2D.js} +6 -6
  4. package/dist/collideContactManifold2D.js.map +1 -0
  5. package/dist/collisionShapeValidation.d.ts +3 -3
  6. package/dist/collisionShapeValidation.d.ts.map +1 -1
  7. package/dist/collisionShapeValidation.js +6 -3
  8. package/dist/collisionShapeValidation.js.map +1 -1
  9. package/dist/collisionSupport2D.d.ts +12 -0
  10. package/dist/collisionSupport2D.d.ts.map +1 -0
  11. package/dist/collisionSupport2D.js +111 -0
  12. package/dist/collisionSupport2D.js.map +1 -0
  13. package/dist/contactFeatureId.js +1 -1
  14. package/dist/contactFeatureId.js.map +1 -1
  15. package/dist/contactManifold.d.ts +3 -3
  16. package/dist/contactManifold.d.ts.map +1 -1
  17. package/dist/contactManifold.js +2 -2
  18. package/dist/contactManifold.js.map +1 -1
  19. package/dist/contract.d.ts +8 -5
  20. package/dist/contract.d.ts.map +1 -1
  21. package/dist/contract.js +8 -5
  22. package/dist/contract.js.map +1 -1
  23. package/dist/convexVertices.d.ts +3 -3
  24. package/dist/convexVertices.d.ts.map +1 -1
  25. package/dist/convexVertices.js.map +1 -1
  26. package/dist/enableCollisionGuards.js +30 -11
  27. package/dist/enableCollisionGuards.js.map +1 -1
  28. package/dist/explainCollisionTest2D.d.ts +3 -0
  29. package/dist/explainCollisionTest2D.d.ts.map +1 -0
  30. package/dist/explainCollisionTest2D.js +38 -0
  31. package/dist/explainCollisionTest2D.js.map +1 -0
  32. package/dist/gjk2D.d.ts +4 -0
  33. package/dist/gjk2D.d.ts.map +1 -0
  34. package/dist/gjk2D.js +340 -0
  35. package/dist/gjk2D.js.map +1 -0
  36. package/dist/index.d.ts +4 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +4 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/manifold.d.ts +3 -3
  41. package/dist/manifold.d.ts.map +1 -1
  42. package/dist/manifold.js +2 -2
  43. package/dist/manifold.js.map +1 -1
  44. package/dist/pointContainment.d.ts +2 -2
  45. package/dist/pointContainment.d.ts.map +1 -1
  46. package/dist/pointContainment.js +3 -3
  47. package/dist/pointContainment.js.map +1 -1
  48. package/dist/raycastCollisionShape2D.d.ts +4 -0
  49. package/dist/raycastCollisionShape2D.d.ts.map +1 -0
  50. package/dist/{raycastCollisionShape.js → raycastCollisionShape2D.js} +7 -7
  51. package/dist/raycastCollisionShape2D.js.map +1 -0
  52. package/dist/registerBuiltInCollisionPairTests2D.d.ts +2 -0
  53. package/dist/registerBuiltInCollisionPairTests2D.d.ts.map +1 -0
  54. package/dist/registerBuiltInCollisionPairTests2D.js +32 -0
  55. package/dist/registerBuiltInCollisionPairTests2D.js.map +1 -0
  56. package/dist/segmentCollision.d.ts +6 -6
  57. package/dist/segmentCollision.d.ts.map +1 -1
  58. package/dist/segmentCollision.js +2 -2
  59. package/dist/segmentCollision.js.map +1 -1
  60. package/dist/shapeCollision.d.ts +11 -11
  61. package/dist/shapeCollision.d.ts.map +1 -1
  62. package/dist/shapeCollision.js +62 -65
  63. package/dist/shapeCollision.js.map +1 -1
  64. package/dist/shapeContact.d.ts +11 -11
  65. package/dist/shapeContact.d.ts.map +1 -1
  66. package/dist/shapeContact.js +12 -12
  67. package/dist/shapeContact.js.map +1 -1
  68. package/dist/sweepCollisionShape2D.d.ts +4 -0
  69. package/dist/sweepCollisionShape2D.d.ts.map +1 -0
  70. package/dist/{sweepCollisionShape.js → sweepCollisionShape2D.js} +10 -10
  71. package/dist/sweepCollisionShape2D.js.map +1 -0
  72. package/dist/testCollision2D.d.ts +4 -0
  73. package/dist/testCollision2D.d.ts.map +1 -0
  74. package/dist/testCollision2D.js +43 -0
  75. package/dist/testCollision2D.js.map +1 -0
  76. package/package.json +4 -4
  77. package/src/{collideContactManifold.test.ts → collideContactManifold2D.test.ts} +54 -54
  78. package/src/collisionShapeValidation.test.ts +13 -13
  79. package/src/collisionSupport2D.test.ts +166 -0
  80. package/src/contactManifold.test.ts +11 -11
  81. package/src/convexVertices.test.ts +4 -4
  82. package/src/enableCollisionGuards.test.ts +50 -15
  83. package/src/explainCollisionTest2D.test.ts +75 -0
  84. package/src/gjk2D.test.ts +219 -0
  85. package/src/manifold.test.ts +7 -7
  86. package/src/pointContainment.test.ts +45 -41
  87. package/src/{raycastCollisionShape.test.ts → raycastCollisionShape2D.test.ts} +26 -19
  88. package/src/registerBuiltInCollisionPairTests2D.test.ts +62 -0
  89. package/src/segmentCollision.test.ts +10 -10
  90. package/src/shapeCollision.test.ts +103 -103
  91. package/src/shapeContact.test.ts +76 -76
  92. package/src/{sweepCollisionShape.test.ts → sweepCollisionShape2D.test.ts} +26 -26
  93. package/src/testCollision2D.test.ts +175 -0
  94. package/dist/collideContactManifold.d.ts +0 -3
  95. package/dist/collideContactManifold.d.ts.map +0 -1
  96. package/dist/collideContactManifold.js.map +0 -1
  97. package/dist/explainCollisionTest.d.ts +0 -3
  98. package/dist/explainCollisionTest.d.ts.map +0 -1
  99. package/dist/explainCollisionTest.js +0 -21
  100. package/dist/explainCollisionTest.js.map +0 -1
  101. package/dist/raycastCollisionShape.d.ts +0 -4
  102. package/dist/raycastCollisionShape.d.ts.map +0 -1
  103. package/dist/raycastCollisionShape.js.map +0 -1
  104. package/dist/sweepCollisionShape.d.ts +0 -4
  105. package/dist/sweepCollisionShape.d.ts.map +0 -1
  106. package/dist/sweepCollisionShape.js.map +0 -1
  107. package/dist/testCollision.d.ts +0 -4
  108. package/dist/testCollision.d.ts.map +0 -1
  109. package/dist/testCollision.js +0 -97
  110. package/dist/testCollision.js.map +0 -1
  111. package/src/explainCollisionTest.test.ts +0 -52
  112. package/src/testCollision.test.ts +0 -97
@@ -0,0 +1,32 @@
1
+ import { registerCollisionPairTest2D } from './collisionSupport2D';
2
+ import { testAabbAabbCollision, testAabbObbCollision, testAabbPolygonCollision, testCircleAabbCollision, testCircleCircleCollision, testCircleObbCollision, testCirclePolygonCollision, testObbObbCollision, testObbPolygonCollision, testPolygonPolygonCollision, } from './shapeCollision';
3
+ // Registers the ten SAT pairs over the generic support-function floor.
4
+ //
5
+ // Kept in its own module rather than beside the registries, and explicit rather than part of module
6
+ // load, because these two costs are separable and a caller should be able to pay only one: registering
7
+ // supports links GJK/EPA, registering these links the SAT core and its contact clipping. A bundle that
8
+ // wants only the generic floor never reaches this file, and one that calls the direct typed pair
9
+ // functions reaches neither registry.
10
+ //
11
+ // Only the TEN canonical orders are registered, not all twenty. `testCollision2D` tries the reverse key
12
+ // and negates the normal when it answers, because a manifold is oriented A-out-of-B and a specialization
13
+ // written for (circle, aabb) computes exactly the same geometry for (aabb, circle) mirrored.
14
+ //
15
+ // Each entry is a cast adapter, and the cast is sound for one reason: a pair test is only ever reached
16
+ // through the key it was registered against, so `kindA` having selected this entry IS the evidence that
17
+ // `a` carries that kind's parameters. The registry cannot express that in its type — a `Map` keyed by
18
+ // kind pair has one value type — so it is carried here, once per entry, rather than re-checked at
19
+ // runtime on every call.
20
+ export function registerBuiltInCollisionPairTests2D() {
21
+ registerCollisionPairTest2D('aabb', 'aabb', (a, b, out) => testAabbAabbCollision(a, b, out));
22
+ registerCollisionPairTest2D('aabb', 'obb', (a, b, out) => testAabbObbCollision(a, b, out));
23
+ registerCollisionPairTest2D('aabb', 'polygon', (a, b, out) => testAabbPolygonCollision(a, b, out));
24
+ registerCollisionPairTest2D('circle', 'aabb', (a, b, out) => testCircleAabbCollision(a, b, out));
25
+ registerCollisionPairTest2D('circle', 'circle', (a, b, out) => testCircleCircleCollision(a, b, out));
26
+ registerCollisionPairTest2D('circle', 'obb', (a, b, out) => testCircleObbCollision(a, b, out));
27
+ registerCollisionPairTest2D('circle', 'polygon', (a, b, out) => testCirclePolygonCollision(a, b, out));
28
+ registerCollisionPairTest2D('obb', 'obb', (a, b, out) => testObbObbCollision(a, b, out));
29
+ registerCollisionPairTest2D('obb', 'polygon', (a, b, out) => testObbPolygonCollision(a, b, out));
30
+ registerCollisionPairTest2D('polygon', 'polygon', (a, b, out) => testPolygonPolygonCollision(a, b, out));
31
+ }
32
+ //# sourceMappingURL=registerBuiltInCollisionPairTests2D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerBuiltInCollisionPairTests2D.js","sourceRoot":"","sources":["../src/registerBuiltInCollisionPairTests2D.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,uEAAuE;AACvE,EAAE;AACF,oGAAoG;AACpG,uGAAuG;AACvG,uGAAuG;AACvG,iGAAiG;AACjG,sCAAsC;AACtC,EAAE;AACF,wGAAwG;AACxG,yGAAyG;AACzG,6FAA6F;AAC7F,EAAE;AACF,uGAAuG;AACvG,wGAAwG;AACxG,sGAAsG;AACtG,kGAAkG;AAClG,yBAAyB;AACzB,MAAM,UAAU,mCAAmC;IACjD,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CACxD,qBAAqB,CAAC,CAAoB,EAAE,CAAoB,EAAE,GAAG,CAAC,CACvE,CAAC;IACF,2BAA2B,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CACvD,oBAAoB,CAAC,CAAoB,EAAE,CAAmB,EAAE,GAAG,CAAC,CACrE,CAAC;IACF,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAC3D,wBAAwB,CAAC,CAAoB,EAAE,CAAuB,EAAE,GAAG,CAAC,CAC7E,CAAC;IACF,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAC1D,uBAAuB,CAAC,CAAsB,EAAE,CAAoB,EAAE,GAAG,CAAC,CAC3E,CAAC;IACF,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAC5D,yBAAyB,CAAC,CAAsB,EAAE,CAAsB,EAAE,GAAG,CAAC,CAC/E,CAAC;IACF,2BAA2B,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CACzD,sBAAsB,CAAC,CAAsB,EAAE,CAAmB,EAAE,GAAG,CAAC,CACzE,CAAC;IACF,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAC7D,0BAA0B,CAAC,CAAsB,EAAE,CAAuB,EAAE,GAAG,CAAC,CACjF,CAAC;IACF,2BAA2B,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CACtD,mBAAmB,CAAC,CAAmB,EAAE,CAAmB,EAAE,GAAG,CAAC,CACnE,CAAC;IACF,2BAA2B,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAC1D,uBAAuB,CAAC,CAAmB,EAAE,CAAuB,EAAE,GAAG,CAAC,CAC3E,CAAC;IACF,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAC9D,2BAA2B,CAAC,CAAuB,EAAE,CAAuB,EAAE,GAAG,CAAC,CACnF,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
- import type { CollisionAabb, CollisionCircle, CollisionObb, CollisionPolygon, CollisionSegment } from '@flighthq/types/contract';
2
- export declare function testSegmentAabbCollision(a: Readonly<CollisionSegment>, b: Readonly<CollisionAabb>): boolean;
3
- export declare function testSegmentCircleCollision(a: Readonly<CollisionSegment>, b: Readonly<CollisionCircle>): boolean;
4
- export declare function testSegmentObbCollision(a: Readonly<CollisionSegment>, b: Readonly<CollisionObb>): boolean;
5
- export declare function testSegmentPolygonCollision(a: Readonly<CollisionSegment>, b: Readonly<CollisionPolygon>): boolean;
6
- export declare function testSegmentSegmentCollision(a: Readonly<CollisionSegment>, b: Readonly<CollisionSegment>): boolean;
1
+ import type { CollisionAabb2D, CollisionCircle2D, CollisionObb2D, CollisionPolygon2D, CollisionSegment2D } from '@flighthq/types/contract';
2
+ export declare function testSegmentAabbCollision(a: Readonly<CollisionSegment2D>, b: Readonly<CollisionAabb2D>): boolean;
3
+ export declare function testSegmentCircleCollision(a: Readonly<CollisionSegment2D>, b: Readonly<CollisionCircle2D>): boolean;
4
+ export declare function testSegmentObbCollision(a: Readonly<CollisionSegment2D>, b: Readonly<CollisionObb2D>): boolean;
5
+ export declare function testSegmentPolygonCollision(a: Readonly<CollisionSegment2D>, b: Readonly<CollisionPolygon2D>): boolean;
6
+ export declare function testSegmentSegmentCollision(a: Readonly<CollisionSegment2D>, b: Readonly<CollisionSegment2D>): boolean;
7
7
  //# sourceMappingURL=segmentCollision.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"segmentCollision.d.ts","sourceRoot":"","sources":["../src/segmentCollision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAWlC,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAE3G;AAGD,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAgB/G;AAID,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAYzG;AAID,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAwBjH;AAGD,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAEjH"}
1
+ {"version":3,"file":"segmentCollision.d.ts","sourceRoot":"","sources":["../src/segmentCollision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAWlC,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAE/G;AAGD,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAgBnH;AAID,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,CAY7G;AAID,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAwBrH;AAGD,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAErH"}
@@ -1,4 +1,4 @@
1
- import { getCollisionPolygonValidationStatus } from './collisionShapeValidation';
1
+ import { getCollisionPolygonValidationStatus2D } from './collisionShapeValidation';
2
2
  // Segment-vs-shape overlap queries. Segments are area-less, so these return a boolean rather than a
3
3
  // manifold (a swept/contact answer is a later phase). All are boundary-inclusive: a segment that
4
4
  // just grazes a shape counts as overlapping.
@@ -44,7 +44,7 @@ export function testSegmentObbCollision(a, b) {
44
44
  // crosses any polygon edge (inclusive). The polygon is assumed convex.
45
45
  export function testSegmentPolygonCollision(a, b) {
46
46
  const points = b.points;
47
- if (getCollisionPolygonValidationStatus(points) !== null)
47
+ if (getCollisionPolygonValidationStatus2D(points) !== null)
48
48
  return false;
49
49
  const pn = points.length >> 1;
50
50
  if (isPointInConvexPolygon(a.x0, a.y0, points, pn))
@@ -1 +1 @@
1
- {"version":3,"file":"segmentCollision.js","sourceRoot":"","sources":["../src/segmentCollision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"segmentCollision.js","sourceRoot":"","sources":["../src/segmentCollision.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AAEnF,oGAAoG;AACpG,iGAAiG;AACjG,6CAA6C;AAE7C,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,sFAAsF;AACtF,MAAM,UAAU,wBAAwB,CAAC,CAA+B,EAAE,CAA4B;IACpG,OAAO,uBAAuB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACzF,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,0BAA0B,CAAC,CAA+B,EAAE,CAA8B;IACxG,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,aAAa,CAAC;QACxD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;IAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;IAC3B,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACtD,CAAC;AAED,qGAAqG;AACrG,+BAA+B;AAC/B,MAAM,UAAU,uBAAuB,CAAC,CAA+B,EAAE,CAA2B;IAClG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvC,OAAO,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3G,CAAC;AAED,iGAAiG;AACjG,uEAAuE;AACvE,MAAM,UAAU,2BAA2B,CAAC,CAA+B,EAAE,CAA+B;IAC1G,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,IAAI,qCAAqC,CAAC,MAAM,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACzE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9B,IAAI,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,IAAI,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACvB,IACE,sBAAsB,CACpB,CAAC,CAAC,EAAE,EACJ,CAAC,CAAC,EAAE,EACJ,CAAC,CAAC,EAAE,EACJ,CAAC,CAAC,EAAE,EACJ,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EACd,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EACpB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EACd,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CACrB,EACD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,2BAA2B,CAAC,CAA+B,EAAE,CAA+B;IAC1G,OAAO,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,4FAA4F;AAC5F,iDAAiD;AACjD,SAAS,sBAAsB,CAAC,CAAS,EAAE,CAAS,EAAE,EAAqB,EAAE,EAAU;IACrF,MAAM,OAAO,GAAG,eAAe,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;QAC3D,IAAI,KAAK,GAAG,WAAW;YAAE,QAAQ,GAAG,IAAI,CAAC;aACpC,IAAI,KAAK,GAAG,CAAC,WAAW;YAAE,QAAQ,GAAG,IAAI,CAAC;QAC/C,IAAI,QAAQ,IAAI,QAAQ;YAAE,OAAO,KAAK,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8FAA8F;AAC9F,kEAAkE;AAClE,SAAS,sBAAsB,CAC7B,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW;IAEX,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACtB,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACtB,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACtB,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACtB,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACpC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;IACrB,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;IACrB,MAAM,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC9C,MAAM,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAE9C,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,KAAK,GAAG,KAAK,IAAI,gBAAgB,GAAG,gBAAgB,GAAG,eAAe,GAAG,eAAe,EAAE,CAAC;QAC7F,+EAA+E;QAC/E,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAClG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,OAAO;YAAE,OAAO,KAAK,CAAC;QACvF,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,eAAe,CAAC;QACnD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,eAAe,CAAC;QACrE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;IACxC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;AACpH,CAAC;AAED,qGAAqG;AACrG,8EAA8E;AAC9E,SAAS,uBAAuB,CAC9B,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,IAAY;IAEZ,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAChG,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IACjB,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IAEjB,gGAAgG;IAChG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3D,OAAO,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,mGAAmG;AACnG,+FAA+F;AAC/F,SAAS,eAAe,CAAC,CAAS,EAAE,CAAS,EAAE,OAAe;IAC5D,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QACnC,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QACnC,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAyB,EAAE,KAAa;IAChE,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;IACrB,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,IAAI;YAAE,IAAI,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,IAAI;YAAE,IAAI,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,IAAI;YAAE,IAAI,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,IAAI;YAAE,IAAI,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;IAC5F,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACxC,IAAI,aAAa,KAAK,CAAC;QAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACrD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,aAAa,CAAC;IACxD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1D,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,OAAO,GAAG,OAAO,CAAC;AACpD,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACjE,CAAC;AAED,MAAM,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC"}
@@ -1,12 +1,12 @@
1
- import type { CollisionAabb, CollisionCircle, CollisionManifold, CollisionObb, CollisionPolygon } from '@flighthq/types/contract';
2
- export declare function testAabbAabbCollision(a: Readonly<CollisionAabb>, b: Readonly<CollisionAabb>, out: CollisionManifold): boolean;
3
- export declare function testAabbObbCollision(a: Readonly<CollisionAabb>, b: Readonly<CollisionObb>, out: CollisionManifold): boolean;
4
- export declare function testAabbPolygonCollision(a: Readonly<CollisionAabb>, b: Readonly<CollisionPolygon>, out: CollisionManifold): boolean;
5
- export declare function testCircleAabbCollision(a: Readonly<CollisionCircle>, b: Readonly<CollisionAabb>, out: CollisionManifold): boolean;
6
- export declare function testCircleCircleCollision(a: Readonly<CollisionCircle>, b: Readonly<CollisionCircle>, out: CollisionManifold): boolean;
7
- export declare function testCircleObbCollision(a: Readonly<CollisionCircle>, b: Readonly<CollisionObb>, out: CollisionManifold): boolean;
8
- export declare function testCirclePolygonCollision(a: Readonly<CollisionCircle>, b: Readonly<CollisionPolygon>, out: CollisionManifold): boolean;
9
- export declare function testObbObbCollision(a: Readonly<CollisionObb>, b: Readonly<CollisionObb>, out: CollisionManifold): boolean;
10
- export declare function testObbPolygonCollision(a: Readonly<CollisionObb>, b: Readonly<CollisionPolygon>, out: CollisionManifold): boolean;
11
- export declare function testPolygonPolygonCollision(a: Readonly<CollisionPolygon>, b: Readonly<CollisionPolygon>, out: CollisionManifold): boolean;
1
+ import type { CollisionAabb2D, CollisionCircle2D, CollisionManifold2D, CollisionObb2D, CollisionPolygon2D } from '@flighthq/types/contract';
2
+ export declare function testAabbAabbCollision(a: Readonly<CollisionAabb2D>, b: Readonly<CollisionAabb2D>, out: CollisionManifold2D): boolean;
3
+ export declare function testAabbObbCollision(a: Readonly<CollisionAabb2D>, b: Readonly<CollisionObb2D>, out: CollisionManifold2D): boolean;
4
+ export declare function testAabbPolygonCollision(a: Readonly<CollisionAabb2D>, b: Readonly<CollisionPolygon2D>, out: CollisionManifold2D): boolean;
5
+ export declare function testCircleAabbCollision(a: Readonly<CollisionCircle2D>, b: Readonly<CollisionAabb2D>, out: CollisionManifold2D): boolean;
6
+ export declare function testCircleCircleCollision(a: Readonly<CollisionCircle2D>, b: Readonly<CollisionCircle2D>, out: CollisionManifold2D): boolean;
7
+ export declare function testCircleObbCollision(a: Readonly<CollisionCircle2D>, b: Readonly<CollisionObb2D>, out: CollisionManifold2D): boolean;
8
+ export declare function testCirclePolygonCollision(a: Readonly<CollisionCircle2D>, b: Readonly<CollisionPolygon2D>, out: CollisionManifold2D): boolean;
9
+ export declare function testObbObbCollision(a: Readonly<CollisionObb2D>, b: Readonly<CollisionObb2D>, out: CollisionManifold2D): boolean;
10
+ export declare function testObbPolygonCollision(a: Readonly<CollisionObb2D>, b: Readonly<CollisionPolygon2D>, out: CollisionManifold2D): boolean;
11
+ export declare function testPolygonPolygonCollision(a: Readonly<CollisionPolygon2D>, b: Readonly<CollisionPolygon2D>, out: CollisionManifold2D): boolean;
12
12
  //# sourceMappingURL=shapeCollision.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shapeCollision.d.ts","sourceRoot":"","sources":["../src/shapeCollision.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAuBlC,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAmCT;AAGD,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAUT;AAGD,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAYT;AAID,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAGT;AAID,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CA6BT;AAID,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAuBT;AAID,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAWT;AAGD,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAUT;AAGD,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAYT;AAGD,wBAAgB,2BAA2B,CACzC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAeT"}
1
+ {"version":3,"file":"shapeCollision.d.ts","sourceRoot":"","sources":["../src/shapeCollision.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAmClC,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAmCT;AAGD,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAUT;AAGD,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAC/B,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAYT;AAID,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAGT;AAID,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,GAAG,EAAE,mBAAmB,GACvB,OAAO,CA6BT;AAID,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAuBT;AAID,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAC/B,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAWT;AAGD,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAUT;AAGD,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAC/B,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAYT;AAGD,wBAAgB,2BAA2B,CACzC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAC/B,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAC/B,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAeT"}
@@ -1,8 +1,8 @@
1
1
  import { createVector2, normalizeVector2 } from '@flighthq/geometry/contract';
2
- import { getCollisionPolygonValidationStatus } from './collisionShapeValidation';
2
+ import { getCollisionPolygonValidationStatus2D } from './collisionShapeValidation';
3
3
  import { writeAabbVertices, writeObbVertices } from './convexVertices';
4
- import { clearCollisionManifold } from './manifold';
5
- // The 2D narrow-phase pair tests. Each writes an `out` CollisionManifold and returns whether the
4
+ import { clearCollisionManifold2D } from './manifold';
5
+ // The 2D narrow-phase pair tests. Each writes an `out` CollisionManifold2D and returns whether the
6
6
  // pair overlaps. On overlap the manifold normal is the unit minimum-translation axis oriented to
7
7
  // push shape **A** (the first argument) out of **B**, with `depth` the penetration along it; on a
8
8
  // miss the manifold is cleared. Touching (zero penetration) counts as **not** overlapping.
@@ -13,8 +13,19 @@ import { clearCollisionManifold } from './manifold';
13
13
  // exclusively leased scratch buffers and the manifold is written last, after all inputs are read.
14
14
  //
15
15
  // Polygons are assumed convex; `points` is a flat `[x0,y0,...]` list. Winding does not matter — the
16
- // core orients the manifold by comparing shape centroids.
16
+ // core orients the manifold by the side that won the penetration comparison, which is computed anyway.
17
17
  const RELATIVE_EPSILON = 1e-9;
18
+ // Which side of the canonicalized axis the minimum penetration was on: -1 to push A along -axis, +1
19
+ // along +axis. Written by the two axis-overlap helpers and read by their caller on the very next line,
20
+ // which is why a single module-level relay is safe — the helpers are leaves and nothing re-enters them
21
+ // between the write and the read.
22
+ //
23
+ // It exists because the direction was ALREADY COMPUTED and thrown away. Both helpers evaluate the two
24
+ // push distances and return the smaller; the caller then re-derived the direction from the shapes'
25
+ // centroids, which is only a heuristic and is wrong whenever one projection nests inside the other
26
+ // asymmetrically — the centroid can sit on the far side from the shallower exit. Reporting the side
27
+ // that actually won replaces a guess with the answer.
28
+ let axisOverlapSign = 1;
18
29
  // Axis-aligned box vs axis-aligned box. Direct min-overlap test (no SAT needed): the only candidate
19
30
  // separating axes are X and Y, and the manifold uses whichever has the smaller penetration.
20
31
  export function testAabbAabbCollision(a, b, out) {
@@ -37,7 +48,7 @@ export function testAabbAabbCollision(a, b, out) {
37
48
  const penUpY = bMaxY - aMinY;
38
49
  const overlapY = penDownY < penUpY ? penDownY : penUpY;
39
50
  if (overlapX <= 0 || overlapY <= 0) {
40
- clearCollisionManifold(out);
51
+ clearCollisionManifold2D(out);
41
52
  return false;
42
53
  }
43
54
  if (overlapX <= overlapY) {
@@ -69,7 +80,7 @@ export function testAabbObbCollision(a, b, out) {
69
80
  }
70
81
  // Axis-aligned box vs convex polygon (SAT).
71
82
  export function testAabbPolygonCollision(a, b, out) {
72
- if (!isValidAabb(a) || getCollisionPolygonValidationStatus(b.points) !== null) {
83
+ if (!isValidAabb(a) || getCollisionPolygonValidationStatus2D(b.points) !== null) {
73
84
  return clearInvalidCollisionManifold(out);
74
85
  }
75
86
  const bPoints = b.points;
@@ -103,7 +114,7 @@ export function testCircleCircleCollision(a, b, out) {
103
114
  const dy = ay - by;
104
115
  const distSquared = dx * dx + dy * dy;
105
116
  if (distSquared >= radiusSum * radiusSum) {
106
- clearCollisionManifold(out);
117
+ clearCollisionManifold2D(out);
107
118
  return false;
108
119
  }
109
120
  const dist = Math.sqrt(distSquared);
@@ -149,7 +160,7 @@ export function testCircleObbCollision(a, b, out) {
149
160
  // Circle vs convex polygon (SAT: polygon edge normals plus the axis from the circle center to its
150
161
  // nearest polygon vertex, the axis SAT would otherwise miss at a corner).
151
162
  export function testCirclePolygonCollision(a, b, out) {
152
- if (!isValidCircle(a) || getCollisionPolygonValidationStatus(b.points) !== null) {
163
+ if (!isValidCircle(a) || getCollisionPolygonValidationStatus2D(b.points) !== null) {
153
164
  return clearInvalidCollisionManifold(out);
154
165
  }
155
166
  const points = b.points;
@@ -177,7 +188,7 @@ export function testObbObbCollision(a, b, out) {
177
188
  }
178
189
  // Oriented box vs convex polygon (SAT).
179
190
  export function testObbPolygonCollision(a, b, out) {
180
- if (!isValidObb(a) || getCollisionPolygonValidationStatus(b.points) !== null) {
191
+ if (!isValidObb(a) || getCollisionPolygonValidationStatus2D(b.points) !== null) {
181
192
  return clearInvalidCollisionManifold(out);
182
193
  }
183
194
  const bPoints = b.points;
@@ -192,8 +203,8 @@ export function testObbPolygonCollision(a, b, out) {
192
203
  }
193
204
  // Convex polygon vs convex polygon (SAT — the general convex core).
194
205
  export function testPolygonPolygonCollision(a, b, out) {
195
- if (getCollisionPolygonValidationStatus(a.points) !== null ||
196
- getCollisionPolygonValidationStatus(b.points) !== null) {
206
+ if (getCollisionPolygonValidationStatus2D(a.points) !== null ||
207
+ getCollisionPolygonValidationStatus2D(b.points) !== null) {
197
208
  return clearInvalidCollisionManifold(out);
198
209
  }
199
210
  const aPoints = a.points;
@@ -219,7 +230,7 @@ function circleAabbOverlap(cx, cy, radius, minX, minY, maxX, maxY, out) {
219
230
  // Center outside the box: separate along the closest-point direction.
220
231
  const dist = Math.sqrt(distSquared);
221
232
  if (dist >= radius) {
222
- clearCollisionManifold(out);
233
+ clearCollisionManifold2D(out);
223
234
  return false;
224
235
  }
225
236
  const inv = 1 / dist;
@@ -264,6 +275,7 @@ function circleAabbOverlap(cx, cy, radius, minX, minY, maxX, maxY, out) {
264
275
  function satCircleConvexOverlap(cx, cy, radius, px, pn, out, scratch) {
265
276
  const epsilon = relativeEpsilon(Math.max(getPolygonExtent(px, pn), radius));
266
277
  let minOverlap = Infinity;
278
+ let minOverlapSign = 1;
267
279
  let normalX = 0;
268
280
  let normalY = 0;
269
281
  for (let i = 0; i < pn; i++) {
@@ -282,11 +294,12 @@ function satCircleConvexOverlap(cx, cy, radius, px, pn, out, scratch) {
282
294
  const axisY = scratch.axis.y;
283
295
  const overlap = circlePolygonAxisOverlap(axisX, axisY, cx, cy, radius, px, pn);
284
296
  if (overlap <= epsilon) {
285
- clearCollisionManifold(out);
297
+ clearCollisionManifold2D(out);
286
298
  return false;
287
299
  }
288
300
  if (isPreferredAxis(overlap, axisX, axisY, minOverlap, normalX, normalY, epsilon)) {
289
301
  minOverlap = overlap;
302
+ minOverlapSign = axisOverlapSign;
290
303
  normalX = axisX;
291
304
  normalY = axisY;
292
305
  }
@@ -316,33 +329,23 @@ function satCircleConvexOverlap(cx, cy, radius, px, pn, out, scratch) {
316
329
  const axisY = scratch.axis.y;
317
330
  const overlap = circlePolygonAxisOverlap(axisX, axisY, cx, cy, radius, px, pn);
318
331
  if (overlap <= epsilon) {
319
- clearCollisionManifold(out);
332
+ clearCollisionManifold2D(out);
320
333
  return false;
321
334
  }
322
335
  if (isPreferredAxis(overlap, axisX, axisY, minOverlap, normalX, normalY, epsilon)) {
323
336
  minOverlap = overlap;
337
+ minOverlapSign = axisOverlapSign;
324
338
  normalX = axisX;
325
339
  normalY = axisY;
326
340
  }
327
341
  }
328
342
  if (minOverlap === Infinity) {
329
- clearCollisionManifold(out);
343
+ clearCollisionManifold2D(out);
330
344
  return false;
331
345
  }
332
- const originX = px[0];
333
- const originY = px[1];
334
- let centroidX = 0;
335
- let centroidY = 0;
336
- for (let i = 0; i < pn; i++) {
337
- centroidX += px[i << 1] - originX;
338
- centroidY += px[(i << 1) + 1] - originY;
339
- }
340
- centroidX /= pn;
341
- centroidY /= pn;
342
- if (normalX * (cx - originX - centroidX) + normalY * (cy - originY - centroidY) < -epsilon) {
343
- normalX = -normalX;
344
- normalY = -normalY;
345
- }
346
+ // The sign comes from the side that actually won the penetration comparison, not from the centroids.
347
+ normalX *= minOverlapSign;
348
+ normalY *= minOverlapSign;
346
349
  out.normalX = normalX === 0 ? 0 : normalX;
347
350
  out.normalY = normalY === 0 ? 0 : normalY;
348
351
  out.depth = minOverlap;
@@ -366,16 +369,24 @@ function circlePolygonAxisOverlap(axisX, axisY, cx, cy, radius, px, pn) {
366
369
  const c = (cx - originX) * axisX + (cy - originY) * axisY;
367
370
  const cMin = c - radius;
368
371
  const cMax = c + radius;
369
- // Separation penetration (min of the two push directions), not the intersection length.
370
- const penLow = maxP - cMin;
371
- const penHigh = cMax - minP;
372
- return penLow < penHigh ? penLow : penHigh;
372
+ // Separation penetration (min of the two push directions), not the intersection length. The circle is
373
+ // A and the polygon is B, so pushing A along -axis clears `cMax - minP` and pushing it along +axis
374
+ // clears `maxP - cMin`.
375
+ const penNegative = cMax - minP;
376
+ const penPositive = maxP - cMin;
377
+ if (penNegative < penPositive) {
378
+ axisOverlapSign = -1;
379
+ return penNegative;
380
+ }
381
+ axisOverlapSign = 1;
382
+ return penPositive;
373
383
  }
374
384
  // SAT for two convex polygons given as flat vertex lists. Tests each polygon's edge normals,
375
385
  // tracking the least-penetration separating axis, and orients the normal to push A out of B.
376
386
  function satConvexOverlap(ax, an, bx, bn, out, scratch) {
377
387
  const epsilon = relativeEpsilon(Math.max(getPolygonExtent(ax, an), getPolygonExtent(bx, bn)));
378
388
  scratch.minOverlapAxis.overlap = Infinity;
389
+ scratch.minOverlapAxis.sign = 1;
379
390
  scratch.minOverlapAxis.x = 0;
380
391
  scratch.minOverlapAxis.y = 0;
381
392
  if (!accumulatePolygonAxes(ax, an, ax, an, bx, bn, epsilon, out, scratch))
@@ -383,33 +394,12 @@ function satConvexOverlap(ax, an, bx, bn, out, scratch) {
383
394
  if (!accumulatePolygonAxes(bx, bn, ax, an, bx, bn, epsilon, out, scratch))
384
395
  return false;
385
396
  if (scratch.minOverlapAxis.overlap === Infinity) {
386
- clearCollisionManifold(out);
397
+ clearCollisionManifold2D(out);
387
398
  return false;
388
399
  }
389
- const originX = ax[0];
390
- const originY = ax[1];
391
- let aCentroidX = 0;
392
- let aCentroidY = 0;
393
- for (let i = 0; i < an; i++) {
394
- aCentroidX += ax[i << 1] - originX;
395
- aCentroidY += ax[(i << 1) + 1] - originY;
396
- }
397
- aCentroidX /= an;
398
- aCentroidY /= an;
399
- let bCentroidX = 0;
400
- let bCentroidY = 0;
401
- for (let i = 0; i < bn; i++) {
402
- bCentroidX += bx[i << 1] - originX;
403
- bCentroidY += bx[(i << 1) + 1] - originY;
404
- }
405
- bCentroidX /= bn;
406
- bCentroidY /= bn;
407
- let normalX = scratch.minOverlapAxis.x;
408
- let normalY = scratch.minOverlapAxis.y;
409
- if (normalX * (aCentroidX - bCentroidX) + normalY * (aCentroidY - bCentroidY) < -epsilon) {
410
- normalX = -normalX;
411
- normalY = -normalY;
412
- }
400
+ // The sign comes from the side that actually won the penetration comparison, not from the centroids.
401
+ const normalX = scratch.minOverlapAxis.x * scratch.minOverlapAxis.sign;
402
+ const normalY = scratch.minOverlapAxis.y * scratch.minOverlapAxis.sign;
413
403
  out.normalX = normalX === 0 ? 0 : normalX;
414
404
  out.normalY = normalY === 0 ? 0 : normalY;
415
405
  out.depth = scratch.minOverlapAxis.overlap;
@@ -436,11 +426,12 @@ function accumulatePolygonAxes(sx, sn, ax, an, bx, bn, epsilon, out, scratch) {
436
426
  const axisY = scratch.axis.y;
437
427
  const overlap = polygonAxisOverlap(axisX, axisY, ax, an, bx, bn);
438
428
  if (overlap <= epsilon) {
439
- clearCollisionManifold(out);
429
+ clearCollisionManifold2D(out);
440
430
  return false;
441
431
  }
442
432
  if (isPreferredAxis(overlap, axisX, axisY, scratch.minOverlapAxis.overlap, scratch.minOverlapAxis.x, scratch.minOverlapAxis.y, epsilon)) {
443
433
  scratch.minOverlapAxis.overlap = overlap;
434
+ scratch.minOverlapAxis.sign = axisOverlapSign;
444
435
  scratch.minOverlapAxis.x = axisX;
445
436
  scratch.minOverlapAxis.y = axisY;
446
437
  }
@@ -470,10 +461,16 @@ function polygonAxisOverlap(axisX, axisY, ax, an, bx, bn) {
470
461
  if (d > maxB)
471
462
  maxB = d;
472
463
  }
473
- // Separation penetration (min of the two push directions), not the intersection length.
474
- const penLow = maxA - minB;
475
- const penHigh = maxB - minA;
476
- return penLow < penHigh ? penLow : penHigh;
464
+ // Separation penetration (min of the two push directions), not the intersection length. Pushing A
465
+ // along -axis clears `maxA - minB`; pushing it along +axis clears `maxB - minA`.
466
+ const penNegative = maxA - minB;
467
+ const penPositive = maxB - minA;
468
+ if (penNegative < penPositive) {
469
+ axisOverlapSign = -1;
470
+ return penNegative;
471
+ }
472
+ axisOverlapSign = 1;
473
+ return penPositive;
477
474
  }
478
475
  function canonicalizeScratchAxis(scratch) {
479
476
  if (scratch.axis.x < -RELATIVE_EPSILON || (Math.abs(scratch.axis.x) <= RELATIVE_EPSILON && scratch.axis.y < 0)) {
@@ -482,7 +479,7 @@ function canonicalizeScratchAxis(scratch) {
482
479
  }
483
480
  }
484
481
  function clearInvalidCollisionManifold(out) {
485
- clearCollisionManifold(out);
482
+ clearCollisionManifold2D(out);
486
483
  return false;
487
484
  }
488
485
  function getPolygonExtent(points, count) {
@@ -544,7 +541,7 @@ function createShapeCollisionScratch() {
544
541
  verticesA: new Float64Array(8),
545
542
  verticesB: new Float64Array(8),
546
543
  axis: createVector2(),
547
- minOverlapAxis: { overlap: Infinity, x: 0, y: 0 },
544
+ minOverlapAxis: { overlap: Infinity, sign: 1, x: 0, y: 0 },
548
545
  };
549
546
  }
550
547
  function releaseShapeCollisionScratch(scratch) {
@@ -1 +1 @@
1
- {"version":3,"file":"shapeCollision.js","sourceRoot":"","sources":["../src/shapeCollision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shapeCollision.js","sourceRoot":"","sources":["../src/shapeCollision.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import type { CollisionAabb, CollisionCircle, CollisionContactManifold, CollisionObb, CollisionPolygon } from '@flighthq/types/contract';
2
- export declare function collideAabbAabbContactManifold(a: Readonly<CollisionAabb>, b: Readonly<CollisionAabb>, out: CollisionContactManifold): boolean;
3
- export declare function collideAabbObbContactManifold(a: Readonly<CollisionAabb>, b: Readonly<CollisionObb>, out: CollisionContactManifold): boolean;
4
- export declare function collideAabbPolygonContactManifold(a: Readonly<CollisionAabb>, b: Readonly<CollisionPolygon>, out: CollisionContactManifold): boolean;
5
- export declare function collideCircleAabbContactManifold(a: Readonly<CollisionCircle>, b: Readonly<CollisionAabb>, out: CollisionContactManifold): boolean;
6
- export declare function collideCircleCircleContactManifold(a: Readonly<CollisionCircle>, b: Readonly<CollisionCircle>, out: CollisionContactManifold): boolean;
7
- export declare function collideCircleObbContactManifold(a: Readonly<CollisionCircle>, b: Readonly<CollisionObb>, out: CollisionContactManifold): boolean;
8
- export declare function collideCirclePolygonContactManifold(a: Readonly<CollisionCircle>, b: Readonly<CollisionPolygon>, out: CollisionContactManifold): boolean;
9
- export declare function collideObbObbContactManifold(a: Readonly<CollisionObb>, b: Readonly<CollisionObb>, out: CollisionContactManifold): boolean;
10
- export declare function collideObbPolygonContactManifold(a: Readonly<CollisionObb>, b: Readonly<CollisionPolygon>, out: CollisionContactManifold): boolean;
11
- export declare function collidePolygonPolygonContactManifold(a: Readonly<CollisionPolygon>, b: Readonly<CollisionPolygon>, out: CollisionContactManifold): boolean;
1
+ import type { CollisionAabb2D, CollisionCircle2D, CollisionContactManifold2D, CollisionObb2D, CollisionPolygon2D } from '@flighthq/types/contract';
2
+ export declare function collideAabbAabbContactManifold(a: Readonly<CollisionAabb2D>, b: Readonly<CollisionAabb2D>, out: CollisionContactManifold2D): boolean;
3
+ export declare function collideAabbObbContactManifold(a: Readonly<CollisionAabb2D>, b: Readonly<CollisionObb2D>, out: CollisionContactManifold2D): boolean;
4
+ export declare function collideAabbPolygonContactManifold(a: Readonly<CollisionAabb2D>, b: Readonly<CollisionPolygon2D>, out: CollisionContactManifold2D): boolean;
5
+ export declare function collideCircleAabbContactManifold(a: Readonly<CollisionCircle2D>, b: Readonly<CollisionAabb2D>, out: CollisionContactManifold2D): boolean;
6
+ export declare function collideCircleCircleContactManifold(a: Readonly<CollisionCircle2D>, b: Readonly<CollisionCircle2D>, out: CollisionContactManifold2D): boolean;
7
+ export declare function collideCircleObbContactManifold(a: Readonly<CollisionCircle2D>, b: Readonly<CollisionObb2D>, out: CollisionContactManifold2D): boolean;
8
+ export declare function collideCirclePolygonContactManifold(a: Readonly<CollisionCircle2D>, b: Readonly<CollisionPolygon2D>, out: CollisionContactManifold2D): boolean;
9
+ export declare function collideObbObbContactManifold(a: Readonly<CollisionObb2D>, b: Readonly<CollisionObb2D>, out: CollisionContactManifold2D): boolean;
10
+ export declare function collideObbPolygonContactManifold(a: Readonly<CollisionObb2D>, b: Readonly<CollisionPolygon2D>, out: CollisionContactManifold2D): boolean;
11
+ export declare function collidePolygonPolygonContactManifold(a: Readonly<CollisionPolygon2D>, b: Readonly<CollisionPolygon2D>, out: CollisionContactManifold2D): boolean;
12
12
  //# sourceMappingURL=shapeContact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shapeContact.d.ts","sourceRoot":"","sources":["../src/shapeContact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,wBAAwB,EAExB,YAAY,EACZ,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AA8BlC,wBAAgB,8BAA8B,CAC5C,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAST;AAGD,wBAAgB,6BAA6B,CAC3C,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAST;AAGD,wBAAgB,iCAAiC,CAC/C,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAST;AAGD,wBAAgB,gCAAgC,CAC9C,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAWT;AAGD,wBAAgB,kCAAkC,CAChD,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAWT;AAGD,wBAAgB,+BAA+B,CAC7C,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAWT;AAGD,wBAAgB,mCAAmC,CACjD,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAWT;AAGD,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAST;AAGD,wBAAgB,gCAAgC,CAC9C,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAST;AAGD,wBAAgB,oCAAoC,CAClD,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAST"}
1
+ {"version":3,"file":"shapeContact.d.ts","sourceRoot":"","sources":["../src/shapeContact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAE1B,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AA8BlC,wBAAgB,8BAA8B,CAC5C,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAST;AAGD,wBAAgB,6BAA6B,CAC3C,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAST;AAGD,wBAAgB,iCAAiC,CAC/C,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAC/B,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAST;AAGD,wBAAgB,gCAAgC,CAC9C,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAWT;AAGD,wBAAgB,kCAAkC,CAChD,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAWT;AAGD,wBAAgB,+BAA+B,CAC7C,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAWT;AAGD,wBAAgB,mCAAmC,CACjD,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAC/B,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAWT;AAGD,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAST;AAGD,wBAAgB,gCAAgC,CAC9C,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAC/B,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAST;AAGD,wBAAgB,oCAAoC,CAClD,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAC/B,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAC/B,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAST"}