@flighthq/collision 0.2.1-next.841.373388f → 0.3.0-next.1032.e2b99fc
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/collideContactManifold.d.ts +3 -0
- package/dist/collideContactManifold.d.ts.map +1 -0
- package/dist/collideContactManifold.js +109 -0
- package/dist/collideContactManifold.js.map +1 -0
- package/dist/contactFeatureId.d.ts +3 -0
- package/dist/contactFeatureId.d.ts.map +1 -0
- package/dist/contactFeatureId.js +26 -0
- package/dist/contactFeatureId.js.map +1 -0
- package/dist/contactManifold.d.ts +4 -0
- package/dist/contactManifold.d.ts.map +1 -0
- package/dist/contactManifold.js +30 -0
- package/dist/contactManifold.js.map +1 -0
- package/dist/contract.d.ts +9 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +9 -0
- package/dist/contract.js.map +1 -0
- package/dist/convexVertices.d.ts +4 -0
- package/dist/convexVertices.d.ts.map +1 -0
- package/dist/convexVertices.js +41 -0
- package/dist/convexVertices.js.map +1 -0
- package/dist/index.d.ts +1 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/manifold.d.ts +1 -1
- package/dist/manifold.d.ts.map +1 -1
- package/dist/pointContainment.d.ts +1 -1
- package/dist/pointContainment.d.ts.map +1 -1
- package/dist/segmentCollision.d.ts +1 -1
- package/dist/segmentCollision.d.ts.map +1 -1
- package/dist/segmentCollision.js.map +1 -1
- package/dist/shapeCollision.d.ts +1 -1
- package/dist/shapeCollision.d.ts.map +1 -1
- package/dist/shapeCollision.js +2 -37
- package/dist/shapeCollision.js.map +1 -1
- package/dist/shapeContact.d.ts +12 -0
- package/dist/shapeContact.d.ts.map +1 -0
- package/dist/shapeContact.js +331 -0
- package/dist/shapeContact.js.map +1 -0
- package/dist/testCollision.d.ts +1 -1
- package/dist/testCollision.d.ts.map +1 -1
- package/package.json +7 -3
- package/src/collideContactManifold.test.ts +133 -0
- package/src/contactFeatureId.test.ts +50 -0
- package/src/contactManifold.test.ts +55 -0
- package/src/convexVertices.test.ts +55 -0
- package/src/pointContainment.test.ts +1 -1
- package/src/segmentCollision.test.ts +7 -1
- package/src/shapeCollision.test.ts +1 -1
- package/src/shapeContact.test.ts +422 -0
- package/src/testCollision.test.ts +1 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { CollisionContactManifold, CollisionShape } from '@flighthq/types/contract';
|
|
2
|
+
export declare function collideContactManifold(a: Readonly<CollisionShape>, b: Readonly<CollisionShape>, out: CollisionContactManifold): boolean;
|
|
3
|
+
//# sourceMappingURL=collideContactManifold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collideContactManifold.d.ts","sourceRoot":"","sources":["../src/collideContactManifold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAsB,MAAM,0BAA0B,CAAC;AA0C7G,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAiET"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { clearCollisionContactManifold } from './contactManifold';
|
|
2
|
+
import { collideAabbAabbContactManifold, collideAabbObbContactManifold, collideAabbPolygonContactManifold, collideCircleAabbContactManifold, collideCircleCircleContactManifold, collideCircleObbContactManifold, collideCirclePolygonContactManifold, collideObbObbContactManifold, collideObbPolygonContactManifold, collidePolygonPolygonContactManifold, } from './shapeContact';
|
|
3
|
+
// Generic narrow-phase contact test: the `testCollision` dispatcher's contact-resolving twin.
|
|
4
|
+
// Dispatches on the two shapes' `kind`s and writes the full contact manifold pushing **A out of B**.
|
|
5
|
+
// Shapes are ordered by kind rank before dispatch, and the normal is negated when the arguments
|
|
6
|
+
// arrived reversed, exactly as `testCollision` does. Contact points are world-space and need no such
|
|
7
|
+
// correction.
|
|
8
|
+
//
|
|
9
|
+
// **Argument order.** Overlap, normal, and depth are order-invariant for every pair (the normal
|
|
10
|
+
// negates, nothing else moves). Contact points and their feature ids are order-invariant only for
|
|
11
|
+
// pairs of DIFFERENT kinds, where the kind rank fixes which shape owns the reference face. For two
|
|
12
|
+
// shapes of the SAME kind the caller's order decides: two coincident faces tie exactly on separation
|
|
13
|
+
// (a box resting squarely on a box is the common case), the tie resolves toward the first argument,
|
|
14
|
+
// and the reference shape is the one whose face the contact points then lie on. Reversing the
|
|
15
|
+
// arguments moves the points to the opposite surface — one penetration depth away, both correct —
|
|
16
|
+
// and renumbers their ids.
|
|
17
|
+
//
|
|
18
|
+
// This is a property of the pair, not a defect to fix here. Resolving it would need a tie-break
|
|
19
|
+
// derived from the shapes' own coordinates, and any such rule is a pure function of values that flips
|
|
20
|
+
// the moment those values cross — reintroducing, at dispatch, the frame-to-frame flapping that the
|
|
21
|
+
// reference-face bias exists to prevent. Stability across frames needs memory of the previous frame,
|
|
22
|
+
// which a stateless narrow phase does not have and a simulation does. So a caller that keys anything
|
|
23
|
+
// on feature identity (a warm-start cache) must pass each pair in a STABLE order of its own — ordering
|
|
24
|
+
// by persistent body identity, not by geometry, since only identity survives motion. `@flighthq/
|
|
25
|
+
// physics2d` orders every pair by body index before it calls.
|
|
26
|
+
//
|
|
27
|
+
// Area-less kinds (`segment`, `point`) and unknown kinds carry no contact — the pair is reported as
|
|
28
|
+
// non-overlapping. The direct per-pair functions remain the hot path.
|
|
29
|
+
export function collideContactManifold(a, b, out) {
|
|
30
|
+
const rankA = contactShapeKindRank(a.kind);
|
|
31
|
+
const rankB = contactShapeKindRank(b.kind);
|
|
32
|
+
if (rankA < 0 || rankB < 0) {
|
|
33
|
+
clearCollisionContactManifold(out);
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
const swapped = rankA > rankB;
|
|
37
|
+
const lo = swapped ? b : a;
|
|
38
|
+
const hi = swapped ? a : b;
|
|
39
|
+
let overlapping = false;
|
|
40
|
+
switch (lo.kind) {
|
|
41
|
+
case 'circle':
|
|
42
|
+
switch (hi.kind) {
|
|
43
|
+
case 'circle':
|
|
44
|
+
overlapping = collideCircleCircleContactManifold(lo, hi, out);
|
|
45
|
+
break;
|
|
46
|
+
case 'aabb':
|
|
47
|
+
overlapping = collideCircleAabbContactManifold(lo, hi, out);
|
|
48
|
+
break;
|
|
49
|
+
case 'obb':
|
|
50
|
+
overlapping = collideCircleObbContactManifold(lo, hi, out);
|
|
51
|
+
break;
|
|
52
|
+
case 'polygon':
|
|
53
|
+
overlapping = collideCirclePolygonContactManifold(lo, hi, out);
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
break;
|
|
57
|
+
case 'aabb':
|
|
58
|
+
switch (hi.kind) {
|
|
59
|
+
case 'aabb':
|
|
60
|
+
overlapping = collideAabbAabbContactManifold(lo, hi, out);
|
|
61
|
+
break;
|
|
62
|
+
case 'obb':
|
|
63
|
+
overlapping = collideAabbObbContactManifold(lo, hi, out);
|
|
64
|
+
break;
|
|
65
|
+
case 'polygon':
|
|
66
|
+
overlapping = collideAabbPolygonContactManifold(lo, hi, out);
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
70
|
+
case 'obb':
|
|
71
|
+
switch (hi.kind) {
|
|
72
|
+
case 'obb':
|
|
73
|
+
overlapping = collideObbObbContactManifold(lo, hi, out);
|
|
74
|
+
break;
|
|
75
|
+
case 'polygon':
|
|
76
|
+
overlapping = collideObbPolygonContactManifold(lo, hi, out);
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
case 'polygon':
|
|
81
|
+
if (hi.kind === 'polygon') {
|
|
82
|
+
overlapping = collidePolygonPolygonContactManifold(lo, hi, out);
|
|
83
|
+
}
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
if (overlapping && swapped) {
|
|
87
|
+
out.normalX = -out.normalX;
|
|
88
|
+
out.normalY = -out.normalY;
|
|
89
|
+
}
|
|
90
|
+
return overlapping;
|
|
91
|
+
}
|
|
92
|
+
// Canonical dispatch rank of a shape kind, or -1 for kinds that carry no contact (segment, point,
|
|
93
|
+
// and any custom kind). Ordering the pair by rank collapses the 4x4 kind matrix to its ten lower-
|
|
94
|
+
// triangular contact pairs.
|
|
95
|
+
function contactShapeKindRank(kind) {
|
|
96
|
+
switch (kind) {
|
|
97
|
+
case 'circle':
|
|
98
|
+
return 0;
|
|
99
|
+
case 'aabb':
|
|
100
|
+
return 1;
|
|
101
|
+
case 'obb':
|
|
102
|
+
return 2;
|
|
103
|
+
case 'polygon':
|
|
104
|
+
return 3;
|
|
105
|
+
default:
|
|
106
|
+
return -1;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=collideContactManifold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collideContactManifold.js","sourceRoot":"","sources":["../src/collideContactManifold.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contactFeatureId.d.ts","sourceRoot":"","sources":["../src/contactFeatureId.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,QAAU,CAAC;AAY3C,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,OAAO,GACnB,MAAM,CAOR"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Contact feature identity: the packing that lets a solver recognise, next frame, that it is looking
|
|
2
|
+
// at the same contact and may reuse the impulse it converged on. Private to the package — the packed
|
|
3
|
+
// value is opaque to callers, so only `CollisionContactPoint.featureId` crosses the boundary.
|
|
4
|
+
// The largest vertex count whose face indices still pack without aliasing. Face indices take 25 bits
|
|
5
|
+
// each, above a 1-bit contact-point slot and below the reference-shape bit. A convex polygon at this
|
|
6
|
+
// bound carries 67 million coordinates.
|
|
7
|
+
export const FEATURE_INDEX_LIMIT = 1 << 25;
|
|
8
|
+
// Packs the four components that identify a contact feature — which shape owned the reference face,
|
|
9
|
+
// which face of each shape met, and which end of the clipped span this point is — into one opaque
|
|
10
|
+
// integer.
|
|
11
|
+
//
|
|
12
|
+
// Positional multiplication, not bit shifts. `<<` truncates to 32 bits, so a shift-packed id silently
|
|
13
|
+
// WRAPS once a face index outgrows its field, and two unrelated face pairs collide on one id. That is
|
|
14
|
+
// not a crash: it is a solver warm-starting a contact with an impulse belonging to somewhere else on
|
|
15
|
+
// the shape, which surfaces as jitter that no stack trace explains. Here each field's scale exceeds
|
|
16
|
+
// the largest value packed below it, so distinct components can never sum to the same id, and the
|
|
17
|
+
// widest possible id is 2^52 - 1 — inside the exact-integer range, so no id is ever rounded.
|
|
18
|
+
export function packContactFeatureId(referenceIsA, referenceEdge, incidentEdge, secondPoint) {
|
|
19
|
+
return ((referenceIsA ? FEATURE_REFERENCE_SCALE : 0) +
|
|
20
|
+
referenceEdge * FEATURE_EDGE_SCALE +
|
|
21
|
+
incidentEdge * 2 +
|
|
22
|
+
(secondPoint ? 1 : 0));
|
|
23
|
+
}
|
|
24
|
+
const FEATURE_EDGE_SCALE = FEATURE_INDEX_LIMIT * 2;
|
|
25
|
+
const FEATURE_REFERENCE_SCALE = FEATURE_INDEX_LIMIT * FEATURE_EDGE_SCALE;
|
|
26
|
+
//# sourceMappingURL=contactFeatureId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contactFeatureId.js","sourceRoot":"","sources":["../src/contactFeatureId.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,qGAAqG;AACrG,8FAA8F;AAE9F,qGAAqG;AACrG,qGAAqG;AACrG,wCAAwC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,CAAC;AAE3C,oGAAoG;AACpG,kGAAkG;AAClG,WAAW;AACX,EAAE;AACF,sGAAsG;AACtG,sGAAsG;AACtG,qGAAqG;AACrG,oGAAoG;AACpG,kGAAkG;AAClG,6FAA6F;AAC7F,MAAM,UAAU,oBAAoB,CAClC,YAAqB,EACrB,aAAqB,EACrB,YAAoB,EACpB,WAAoB;IAEpB,OAAO,CACL,CAAC,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,aAAa,GAAG,kBAAkB;QAClC,YAAY,GAAG,CAAC;QAChB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,CAAC,CAAC;AACnD,MAAM,uBAAuB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CollisionContactManifold } from '@flighthq/types/contract';
|
|
2
|
+
export declare function clearCollisionContactManifold(out: CollisionContactManifold): void;
|
|
3
|
+
export declare function createCollisionContactManifold(): CollisionContactManifold;
|
|
4
|
+
//# sourceMappingURL=contactManifold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contactManifold.d.ts","sourceRoot":"","sources":["../src/contactManifold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAyB,MAAM,0BAA0B,CAAC;AAUhG,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI,CAMjF;AAID,wBAAgB,8BAA8B,IAAI,wBAAwB,CASzE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Lifecycle for the contact manifold the `collide*ContactManifold` functions write. The two contact
|
|
2
|
+
// points are allocated once, here, and reused for the manifold's whole life — a solver's per-frame
|
|
3
|
+
// narrow-phase loop over thousands of pairs allocates nothing.
|
|
4
|
+
// Clears a manifold to the non-overlapping state: `overlapping` false, normal, depth, and point
|
|
5
|
+
// count zero. The contact-point entries themselves are left untouched — `pointCount` alone bounds
|
|
6
|
+
// what is readable, so clearing does not need to walk them and a stale point can never be read
|
|
7
|
+
// through the documented contract.
|
|
8
|
+
export function clearCollisionContactManifold(out) {
|
|
9
|
+
out.overlapping = false;
|
|
10
|
+
out.normalX = 0;
|
|
11
|
+
out.normalY = 0;
|
|
12
|
+
out.depth = 0;
|
|
13
|
+
out.pointCount = 0;
|
|
14
|
+
}
|
|
15
|
+
// Allocates a fresh contact manifold in the non-overlapping state, with its fixed two-point array
|
|
16
|
+
// already populated, ready to be passed as an `out` parameter.
|
|
17
|
+
export function createCollisionContactManifold() {
|
|
18
|
+
return {
|
|
19
|
+
overlapping: false,
|
|
20
|
+
normalX: 0,
|
|
21
|
+
normalY: 0,
|
|
22
|
+
depth: 0,
|
|
23
|
+
pointCount: 0,
|
|
24
|
+
points: [createContactPoint(), createContactPoint()],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function createContactPoint() {
|
|
28
|
+
return { x: 0, y: 0, depth: 0, featureId: 0 };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=contactManifold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contactManifold.js","sourceRoot":"","sources":["../src/contactManifold.ts"],"names":[],"mappings":"AAEA,oGAAoG;AACpG,mGAAmG;AACnG,+DAA+D;AAE/D,gGAAgG;AAChG,kGAAkG;AAClG,+FAA+F;AAC/F,mCAAmC;AACnC,MAAM,UAAU,6BAA6B,CAAC,GAA6B;IACzE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;IACxB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;IACd,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,kGAAkG;AAClG,+DAA+D;AAC/D,MAAM,UAAU,8BAA8B;IAC5C,OAAO;QACL,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './collideContactManifold';
|
|
2
|
+
export * from './contactManifold';
|
|
3
|
+
export * from './manifold';
|
|
4
|
+
export * from './pointContainment';
|
|
5
|
+
export * from './segmentCollision';
|
|
6
|
+
export * from './shapeCollision';
|
|
7
|
+
export * from './shapeContact';
|
|
8
|
+
export * from './testCollision';
|
|
9
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
package/dist/contract.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './collideContactManifold';
|
|
2
|
+
export * from './contactManifold';
|
|
3
|
+
export * from './manifold';
|
|
4
|
+
export * from './pointContainment';
|
|
5
|
+
export * from './segmentCollision';
|
|
6
|
+
export * from './shapeCollision';
|
|
7
|
+
export * from './shapeContact';
|
|
8
|
+
export * from './testCollision';
|
|
9
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CollisionAabb, CollisionObb } from '@flighthq/types/contract';
|
|
2
|
+
export declare function writeAabbVertices(aabb: Readonly<CollisionAabb>, out: Float64Array): void;
|
|
3
|
+
export declare function writeObbVertices(obb: Readonly<CollisionObb>, out: Float64Array): void;
|
|
4
|
+
//# sourceMappingURL=convexVertices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convexVertices.d.ts","sourceRoot":"","sources":["../src/convexVertices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAQ5E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAaxF;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAmBrF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Materializes a box collider as the flat `[x0,y0,...]` vertex list the convex cores consume, so
|
|
2
|
+
// AABB, OBB, and polygon all reduce to one representation. Package-internal: these are a detail of
|
|
3
|
+
// how the SAT and contact-clipping cores read boxes, not part of the collision API. Both writers
|
|
4
|
+
// emit their four corners in consistent winding, which the cores rely on to walk edges in order.
|
|
5
|
+
// Writes the four corners of an axis-aligned box into `out` as a flat `[x0,y0,...]` list.
|
|
6
|
+
export function writeAabbVertices(aabb, out) {
|
|
7
|
+
const minX = aabb.minX;
|
|
8
|
+
const minY = aabb.minY;
|
|
9
|
+
const maxX = aabb.maxX;
|
|
10
|
+
const maxY = aabb.maxY;
|
|
11
|
+
out[0] = minX;
|
|
12
|
+
out[1] = minY;
|
|
13
|
+
out[2] = maxX;
|
|
14
|
+
out[3] = minY;
|
|
15
|
+
out[4] = maxX;
|
|
16
|
+
out[5] = maxY;
|
|
17
|
+
out[6] = minX;
|
|
18
|
+
out[7] = maxY;
|
|
19
|
+
}
|
|
20
|
+
// Writes the four world-space corners of an oriented box into `out` as a flat `[x0,y0,...]` list.
|
|
21
|
+
export function writeObbVertices(obb, out) {
|
|
22
|
+
const cx = obb.x;
|
|
23
|
+
const cy = obb.y;
|
|
24
|
+
const halfW = obb.halfW;
|
|
25
|
+
const halfH = obb.halfH;
|
|
26
|
+
const cos = Math.cos(obb.rotation);
|
|
27
|
+
const sin = Math.sin(obb.rotation);
|
|
28
|
+
const wx = cos * halfW;
|
|
29
|
+
const wy = sin * halfW;
|
|
30
|
+
const hx = -sin * halfH;
|
|
31
|
+
const hy = cos * halfH;
|
|
32
|
+
out[0] = cx - wx - hx;
|
|
33
|
+
out[1] = cy - wy - hy;
|
|
34
|
+
out[2] = cx + wx - hx;
|
|
35
|
+
out[3] = cy + wy - hy;
|
|
36
|
+
out[4] = cx + wx + hx;
|
|
37
|
+
out[5] = cy + wy + hy;
|
|
38
|
+
out[6] = cx - wx + hx;
|
|
39
|
+
out[7] = cy - wy + hy;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=convexVertices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convexVertices.js","sourceRoot":"","sources":["../src/convexVertices.ts"],"names":[],"mappings":"AAEA,iGAAiG;AACjG,mGAAmG;AACnG,iGAAiG;AACjG,iGAAiG;AAEjG,0FAA0F;AAC1F,MAAM,UAAU,iBAAiB,CAAC,IAA6B,EAAE,GAAiB;IAChF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACd,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACd,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACd,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACd,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACd,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACd,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACd,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,gBAAgB,CAAC,GAA2B,EAAE,GAAiB;IAC7E,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACjB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACjB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC;IACvB,MAAM,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC;IACxB,MAAM,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC;IACvB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from './pointContainment';
|
|
3
|
-
export * from './segmentCollision';
|
|
4
|
-
export * from './shapeCollision';
|
|
5
|
-
export * from './testCollision';
|
|
1
|
+
export { clearCollisionContactManifold, clearCollisionManifold, collideAabbAabbContactManifold, collideAabbObbContactManifold, collideAabbPolygonContactManifold, collideCircleAabbContactManifold, collideCircleCircleContactManifold, collideCircleObbContactManifold, collideCirclePolygonContactManifold, collideContactManifold, collideObbObbContactManifold, collideObbPolygonContactManifold, collidePolygonPolygonContactManifold, createCollisionContactManifold, createCollisionManifold, getCollisionShapeContainsPoint, testAabbAabbCollision, testAabbObbCollision, testAabbPolygonCollision, testCircleAabbCollision, testCircleCircleCollision, testCircleObbCollision, testCirclePolygonCollision, testCollision, testObbObbCollision, testObbPolygonCollision, testPolygonPolygonCollision, testSegmentAabbCollision, testSegmentCircleCollision, testSegmentObbCollision, testSegmentPolygonCollision, testSegmentSegmentCollision, } from './contract';
|
|
6
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,kCAAkC,EAClC,+BAA+B,EAC/B,mCAAmC,EACnC,sBAAsB,EACtB,4BAA4B,EAC5B,gCAAgC,EAChC,oCAAoC,EACpC,8BAA8B,EAC9B,uBAAuB,EACvB,8BAA8B,EAC9B,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from './pointContainment';
|
|
3
|
-
export * from './segmentCollision';
|
|
4
|
-
export * from './shapeCollision';
|
|
5
|
-
export * from './testCollision';
|
|
1
|
+
export { clearCollisionContactManifold, clearCollisionManifold, collideAabbAabbContactManifold, collideAabbObbContactManifold, collideAabbPolygonContactManifold, collideCircleAabbContactManifold, collideCircleCircleContactManifold, collideCircleObbContactManifold, collideCirclePolygonContactManifold, collideContactManifold, collideObbObbContactManifold, collideObbPolygonContactManifold, collidePolygonPolygonContactManifold, createCollisionContactManifold, createCollisionManifold, getCollisionShapeContainsPoint, testAabbAabbCollision, testAabbObbCollision, testAabbPolygonCollision, testCircleAabbCollision, testCircleCircleCollision, testCircleObbCollision, testCirclePolygonCollision, testCollision, testObbObbCollision, testObbPolygonCollision, testPolygonPolygonCollision, testSegmentAabbCollision, testSegmentCircleCollision, testSegmentObbCollision, testSegmentPolygonCollision, testSegmentSegmentCollision, } from './contract';
|
|
6
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,kCAAkC,EAClC,+BAA+B,EAC/B,mCAAmC,EACnC,sBAAsB,EACtB,4BAA4B,EAC5B,gCAAgC,EAChC,oCAAoC,EACpC,8BAA8B,EAC9B,uBAAuB,EACvB,8BAA8B,EAC9B,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,YAAY,CAAC"}
|
package/dist/manifold.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CollisionManifold } from '@flighthq/types';
|
|
1
|
+
import type { CollisionManifold } from '@flighthq/types/contract';
|
|
2
2
|
export declare function clearCollisionManifold(out: CollisionManifold): void;
|
|
3
3
|
export declare function createCollisionManifold(): CollisionManifold;
|
|
4
4
|
//# sourceMappingURL=manifold.d.ts.map
|
package/dist/manifold.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifold.d.ts","sourceRoot":"","sources":["../src/manifold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"manifold.d.ts","sourceRoot":"","sources":["../src/manifold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAKlE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAKnE;AAGD,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { CollisionShape } from '@flighthq/types';
|
|
1
|
+
import type { CollisionShape } from '@flighthq/types/contract';
|
|
2
2
|
export declare function getCollisionShapeContainsPoint(shape: Readonly<CollisionShape>, x: number, y: number): boolean;
|
|
3
3
|
//# sourceMappingURL=pointContainment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointContainment.d.ts","sourceRoot":"","sources":["../src/pointContainment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pointContainment.d.ts","sourceRoot":"","sources":["../src/pointContainment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQ/D,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CA2C7G"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CollisionAabb, CollisionCircle, CollisionObb, CollisionPolygon, CollisionSegment } from '@flighthq/types';
|
|
1
|
+
import type { CollisionAabb, CollisionCircle, CollisionObb, CollisionPolygon, CollisionSegment } from '@flighthq/types/contract';
|
|
2
2
|
export declare function testSegmentAabbCollision(a: Readonly<CollisionSegment>, b: Readonly<CollisionAabb>): boolean;
|
|
3
3
|
export declare function testSegmentCircleCollision(a: Readonly<CollisionSegment>, b: Readonly<CollisionCircle>): boolean;
|
|
4
4
|
export declare function testSegmentObbCollision(a: Readonly<CollisionSegment>, b: Readonly<CollisionObb>): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segmentCollision.d.ts","sourceRoot":"","sources":["../src/segmentCollision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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;AASlC,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,CAuBjH;AAGD,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAEjH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segmentCollision.js","sourceRoot":"","sources":["../src/segmentCollision.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"segmentCollision.js","sourceRoot":"","sources":["../src/segmentCollision.ts"],"names":[],"mappings":"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"}
|
package/dist/shapeCollision.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CollisionAabb, CollisionCircle, CollisionManifold, CollisionObb, CollisionPolygon } from '@flighthq/types';
|
|
1
|
+
import type { CollisionAabb, CollisionCircle, CollisionManifold, CollisionObb, CollisionPolygon } from '@flighthq/types/contract';
|
|
2
2
|
export declare function testAabbAabbCollision(a: Readonly<CollisionAabb>, b: Readonly<CollisionAabb>, out: CollisionManifold): boolean;
|
|
3
3
|
export declare function testAabbObbCollision(a: Readonly<CollisionAabb>, b: Readonly<CollisionObb>, out: CollisionManifold): boolean;
|
|
4
4
|
export declare function testAabbPolygonCollision(a: Readonly<CollisionAabb>, b: Readonly<CollisionPolygon>, out: CollisionManifold): boolean;
|
|
@@ -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,
|
|
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;AAsBlC,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAkCT;AAGD,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAIT;AAGD,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAIT;AAID,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAET;AAID,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CA4BT;AAID,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAsBT;AAID,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAGT;AAGD,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAIT;AAGD,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAIT;AAGD,wBAAgB,2BAA2B,CACzC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAIT"}
|
package/dist/shapeCollision.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { createVector2, normalizeVector2 } from '@flighthq/geometry';
|
|
1
|
+
import { createVector2, normalizeVector2 } from '@flighthq/geometry/contract';
|
|
2
|
+
import { writeAabbVertices, writeObbVertices } from './convexVertices';
|
|
2
3
|
import { clearCollisionManifold } from './manifold';
|
|
3
4
|
// The 2D narrow-phase pair tests. Each writes an `out` CollisionManifold and returns whether the
|
|
4
5
|
// pair overlaps. On overlap the manifold normal is the unit minimum-translation axis oriented to
|
|
@@ -398,42 +399,6 @@ function polygonAxisOverlap(axisX, axisY, ax, an, bx, bn) {
|
|
|
398
399
|
const penHigh = maxB - minA;
|
|
399
400
|
return penLow < penHigh ? penLow : penHigh;
|
|
400
401
|
}
|
|
401
|
-
// Writes the four corners of an axis-aligned box into `out` as a flat `[x0,y0,...]` list.
|
|
402
|
-
function writeAabbVertices(aabb, out) {
|
|
403
|
-
const minX = aabb.minX;
|
|
404
|
-
const minY = aabb.minY;
|
|
405
|
-
const maxX = aabb.maxX;
|
|
406
|
-
const maxY = aabb.maxY;
|
|
407
|
-
out[0] = minX;
|
|
408
|
-
out[1] = minY;
|
|
409
|
-
out[2] = maxX;
|
|
410
|
-
out[3] = minY;
|
|
411
|
-
out[4] = maxX;
|
|
412
|
-
out[5] = maxY;
|
|
413
|
-
out[6] = minX;
|
|
414
|
-
out[7] = maxY;
|
|
415
|
-
}
|
|
416
|
-
// Writes the four world-space corners of an oriented box into `out` as a flat `[x0,y0,...]` list.
|
|
417
|
-
function writeObbVertices(obb, out) {
|
|
418
|
-
const cx = obb.x;
|
|
419
|
-
const cy = obb.y;
|
|
420
|
-
const halfW = obb.halfW;
|
|
421
|
-
const halfH = obb.halfH;
|
|
422
|
-
const cos = Math.cos(obb.rotation);
|
|
423
|
-
const sin = Math.sin(obb.rotation);
|
|
424
|
-
const wx = cos * halfW;
|
|
425
|
-
const wy = sin * halfW;
|
|
426
|
-
const hx = -sin * halfH;
|
|
427
|
-
const hy = cos * halfH;
|
|
428
|
-
out[0] = cx - wx - hx;
|
|
429
|
-
out[1] = cy - wy - hy;
|
|
430
|
-
out[2] = cx + wx - hx;
|
|
431
|
-
out[3] = cy + wy - hy;
|
|
432
|
-
out[4] = cx + wx + hx;
|
|
433
|
-
out[5] = cy + wy + hy;
|
|
434
|
-
out[6] = cx - wx + hx;
|
|
435
|
-
out[7] = cy - wy + hy;
|
|
436
|
-
}
|
|
437
402
|
const scratchA = new Float64Array(8);
|
|
438
403
|
const scratchB = new Float64Array(8);
|
|
439
404
|
const scratchAxis = createVector2();
|
|
@@ -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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"}
|
|
@@ -0,0 +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;
|
|
12
|
+
//# sourceMappingURL=shapeContact.d.ts.map
|
|
@@ -0,0 +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,CAIT;AAGD,wBAAgB,6BAA6B,CAC3C,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAIT;AAGD,wBAAgB,iCAAiC,CAC/C,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAIT;AAGD,wBAAgB,gCAAgC,CAC9C,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC1B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAMT;AAGD,wBAAgB,kCAAkC,CAChD,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAMT;AAGD,wBAAgB,+BAA+B,CAC7C,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAMT;AAGD,wBAAgB,mCAAmC,CACjD,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAMT;AAGD,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAIT;AAGD,wBAAgB,gCAAgC,CAC9C,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAIT;AAGD,wBAAgB,oCAAoC,CAClD,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC7B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAIT"}
|