@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.
- package/dist/collideContactManifold2D.d.ts +3 -0
- package/dist/collideContactManifold2D.d.ts.map +1 -0
- package/dist/{collideContactManifold.js → collideContactManifold2D.js} +6 -6
- package/dist/collideContactManifold2D.js.map +1 -0
- package/dist/collisionShapeValidation.d.ts +3 -3
- package/dist/collisionShapeValidation.d.ts.map +1 -1
- package/dist/collisionShapeValidation.js +6 -3
- package/dist/collisionShapeValidation.js.map +1 -1
- package/dist/collisionSupport2D.d.ts +12 -0
- package/dist/collisionSupport2D.d.ts.map +1 -0
- package/dist/collisionSupport2D.js +111 -0
- package/dist/collisionSupport2D.js.map +1 -0
- package/dist/contactFeatureId.js +1 -1
- package/dist/contactFeatureId.js.map +1 -1
- package/dist/contactManifold.d.ts +3 -3
- package/dist/contactManifold.d.ts.map +1 -1
- package/dist/contactManifold.js +2 -2
- package/dist/contactManifold.js.map +1 -1
- package/dist/contract.d.ts +8 -5
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +8 -5
- package/dist/contract.js.map +1 -1
- package/dist/convexVertices.d.ts +3 -3
- package/dist/convexVertices.d.ts.map +1 -1
- package/dist/convexVertices.js.map +1 -1
- package/dist/enableCollisionGuards.js +30 -11
- package/dist/enableCollisionGuards.js.map +1 -1
- package/dist/explainCollisionTest2D.d.ts +3 -0
- package/dist/explainCollisionTest2D.d.ts.map +1 -0
- package/dist/explainCollisionTest2D.js +38 -0
- package/dist/explainCollisionTest2D.js.map +1 -0
- package/dist/gjk2D.d.ts +4 -0
- package/dist/gjk2D.d.ts.map +1 -0
- package/dist/gjk2D.js +340 -0
- package/dist/gjk2D.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/manifold.d.ts +3 -3
- package/dist/manifold.d.ts.map +1 -1
- package/dist/manifold.js +2 -2
- package/dist/manifold.js.map +1 -1
- package/dist/pointContainment.d.ts +2 -2
- package/dist/pointContainment.d.ts.map +1 -1
- package/dist/pointContainment.js +3 -3
- package/dist/pointContainment.js.map +1 -1
- package/dist/raycastCollisionShape2D.d.ts +4 -0
- package/dist/raycastCollisionShape2D.d.ts.map +1 -0
- package/dist/{raycastCollisionShape.js → raycastCollisionShape2D.js} +7 -7
- package/dist/raycastCollisionShape2D.js.map +1 -0
- package/dist/registerBuiltInCollisionPairTests2D.d.ts +2 -0
- package/dist/registerBuiltInCollisionPairTests2D.d.ts.map +1 -0
- package/dist/registerBuiltInCollisionPairTests2D.js +32 -0
- package/dist/registerBuiltInCollisionPairTests2D.js.map +1 -0
- package/dist/segmentCollision.d.ts +6 -6
- package/dist/segmentCollision.d.ts.map +1 -1
- package/dist/segmentCollision.js +2 -2
- package/dist/segmentCollision.js.map +1 -1
- package/dist/shapeCollision.d.ts +11 -11
- package/dist/shapeCollision.d.ts.map +1 -1
- package/dist/shapeCollision.js +62 -65
- package/dist/shapeCollision.js.map +1 -1
- package/dist/shapeContact.d.ts +11 -11
- package/dist/shapeContact.d.ts.map +1 -1
- package/dist/shapeContact.js +12 -12
- package/dist/shapeContact.js.map +1 -1
- package/dist/sweepCollisionShape2D.d.ts +4 -0
- package/dist/sweepCollisionShape2D.d.ts.map +1 -0
- package/dist/{sweepCollisionShape.js → sweepCollisionShape2D.js} +10 -10
- package/dist/sweepCollisionShape2D.js.map +1 -0
- package/dist/testCollision2D.d.ts +4 -0
- package/dist/testCollision2D.d.ts.map +1 -0
- package/dist/testCollision2D.js +43 -0
- package/dist/testCollision2D.js.map +1 -0
- package/package.json +4 -4
- package/src/{collideContactManifold.test.ts → collideContactManifold2D.test.ts} +54 -54
- package/src/collisionShapeValidation.test.ts +13 -13
- package/src/collisionSupport2D.test.ts +166 -0
- package/src/contactManifold.test.ts +11 -11
- package/src/convexVertices.test.ts +4 -4
- package/src/enableCollisionGuards.test.ts +50 -15
- package/src/explainCollisionTest2D.test.ts +75 -0
- package/src/gjk2D.test.ts +219 -0
- package/src/manifold.test.ts +7 -7
- package/src/pointContainment.test.ts +45 -41
- package/src/{raycastCollisionShape.test.ts → raycastCollisionShape2D.test.ts} +26 -19
- package/src/registerBuiltInCollisionPairTests2D.test.ts +62 -0
- package/src/segmentCollision.test.ts +10 -10
- package/src/shapeCollision.test.ts +103 -103
- package/src/shapeContact.test.ts +76 -76
- package/src/{sweepCollisionShape.test.ts → sweepCollisionShape2D.test.ts} +26 -26
- package/src/testCollision2D.test.ts +175 -0
- package/dist/collideContactManifold.d.ts +0 -3
- package/dist/collideContactManifold.d.ts.map +0 -1
- package/dist/collideContactManifold.js.map +0 -1
- package/dist/explainCollisionTest.d.ts +0 -3
- package/dist/explainCollisionTest.d.ts.map +0 -1
- package/dist/explainCollisionTest.js +0 -21
- package/dist/explainCollisionTest.js.map +0 -1
- package/dist/raycastCollisionShape.d.ts +0 -4
- package/dist/raycastCollisionShape.d.ts.map +0 -1
- package/dist/raycastCollisionShape.js.map +0 -1
- package/dist/sweepCollisionShape.d.ts +0 -4
- package/dist/sweepCollisionShape.d.ts.map +0 -1
- package/dist/sweepCollisionShape.js.map +0 -1
- package/dist/testCollision.d.ts +0 -4
- package/dist/testCollision.d.ts.map +0 -1
- package/dist/testCollision.js +0 -97
- package/dist/testCollision.js.map +0 -1
- package/src/explainCollisionTest.test.ts +0 -52
- 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 {
|
|
2
|
-
export declare function testSegmentAabbCollision(a: Readonly<
|
|
3
|
-
export declare function testSegmentCircleCollision(a: Readonly<
|
|
4
|
-
export declare function testSegmentObbCollision(a: Readonly<
|
|
5
|
-
export declare function testSegmentPolygonCollision(a: Readonly<
|
|
6
|
-
export declare function testSegmentSegmentCollision(a: Readonly<
|
|
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,
|
|
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"}
|
package/dist/segmentCollision.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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 (
|
|
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":"AAQA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"segmentCollision.js","sourceRoot":"","sources":["../src/segmentCollision.ts"],"names":[],"mappings":"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"}
|
package/dist/shapeCollision.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function testAabbAabbCollision(a: Readonly<
|
|
3
|
-
export declare function testAabbObbCollision(a: Readonly<
|
|
4
|
-
export declare function testAabbPolygonCollision(a: Readonly<
|
|
5
|
-
export declare function testCircleAabbCollision(a: Readonly<
|
|
6
|
-
export declare function testCircleCircleCollision(a: Readonly<
|
|
7
|
-
export declare function testCircleObbCollision(a: Readonly<
|
|
8
|
-
export declare function testCirclePolygonCollision(a: Readonly<
|
|
9
|
-
export declare function testObbObbCollision(a: Readonly<
|
|
10
|
-
export declare function testObbPolygonCollision(a: Readonly<
|
|
11
|
-
export declare function testPolygonPolygonCollision(a: Readonly<
|
|
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,
|
|
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"}
|
package/dist/shapeCollision.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createVector2, normalizeVector2 } from '@flighthq/geometry/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { getCollisionPolygonValidationStatus2D } from './collisionShapeValidation';
|
|
3
3
|
import { writeAabbVertices, writeObbVertices } from './convexVertices';
|
|
4
|
-
import {
|
|
5
|
-
// The 2D narrow-phase pair tests. Each writes an `out`
|
|
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
|
|
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
|
-
|
|
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) ||
|
|
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
|
-
|
|
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) ||
|
|
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) ||
|
|
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 (
|
|
196
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
343
|
+
clearCollisionManifold2D(out);
|
|
330
344
|
return false;
|
|
331
345
|
}
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
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
|
-
|
|
371
|
-
|
|
372
|
-
|
|
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
|
-
|
|
397
|
+
clearCollisionManifold2D(out);
|
|
387
398
|
return false;
|
|
388
399
|
}
|
|
389
|
-
|
|
390
|
-
const
|
|
391
|
-
|
|
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
|
-
|
|
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
|
-
|
|
475
|
-
const
|
|
476
|
-
|
|
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
|
-
|
|
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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"}
|
package/dist/shapeContact.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function collideAabbAabbContactManifold(a: Readonly<
|
|
3
|
-
export declare function collideAabbObbContactManifold(a: Readonly<
|
|
4
|
-
export declare function collideAabbPolygonContactManifold(a: Readonly<
|
|
5
|
-
export declare function collideCircleAabbContactManifold(a: Readonly<
|
|
6
|
-
export declare function collideCircleCircleContactManifold(a: Readonly<
|
|
7
|
-
export declare function collideCircleObbContactManifold(a: Readonly<
|
|
8
|
-
export declare function collideCirclePolygonContactManifold(a: Readonly<
|
|
9
|
-
export declare function collideObbObbContactManifold(a: Readonly<
|
|
10
|
-
export declare function collideObbPolygonContactManifold(a: Readonly<
|
|
11
|
-
export declare function collidePolygonPolygonContactManifold(a: Readonly<
|
|
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,
|
|
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"}
|