@flighthq/physics3d 0.5.1-next.820.97b3830 → 0.5.1-next.903.f434bc2

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 (42) hide show
  1. package/README.md +2 -2
  2. package/dist/colliderTransform.d.ts +19 -1
  3. package/dist/colliderTransform.d.ts.map +1 -1
  4. package/dist/colliderTransform.js +129 -85
  5. package/dist/colliderTransform.js.map +1 -1
  6. package/dist/contacts.d.ts +3 -1
  7. package/dist/contacts.d.ts.map +1 -1
  8. package/dist/contacts.js +38 -32
  9. package/dist/contacts.js.map +1 -1
  10. package/dist/contract.d.ts +7 -0
  11. package/dist/contract.d.ts.map +1 -1
  12. package/dist/contract.js +7 -0
  13. package/dist/contract.js.map +1 -1
  14. package/dist/debugGeometry.d.ts +2 -1
  15. package/dist/debugGeometry.d.ts.map +1 -1
  16. package/dist/debugGeometry.js +11 -3
  17. package/dist/debugGeometry.js.map +1 -1
  18. package/dist/jointFactories.d.ts +8 -1
  19. package/dist/jointFactories.d.ts.map +1 -1
  20. package/dist/jointFactories.js +160 -136
  21. package/dist/jointFactories.js.map +1 -1
  22. package/dist/jointReaction.d.ts +2 -1
  23. package/dist/jointReaction.d.ts.map +1 -1
  24. package/dist/jointReaction.js +12 -2
  25. package/dist/jointReaction.js.map +1 -1
  26. package/dist/massProperties.d.ts +2 -1
  27. package/dist/massProperties.d.ts.map +1 -1
  28. package/dist/massProperties.js +17 -14
  29. package/dist/massProperties.js.map +1 -1
  30. package/dist/solver.d.ts +3 -1
  31. package/dist/solver.d.ts.map +1 -1
  32. package/dist/solver.js +30 -24
  33. package/dist/solver.js.map +1 -1
  34. package/dist/world.d.ts +4 -1
  35. package/dist/world.d.ts.map +1 -1
  36. package/dist/world.js +118 -109
  37. package/dist/world.js.map +1 -1
  38. package/dist/worldQueries.d.ts +4 -1
  39. package/dist/worldQueries.d.ts.map +1 -1
  40. package/dist/worldQueries.js +39 -25
  41. package/dist/worldQueries.js.map +1 -1
  42. package/package.json +8 -8
package/README.md CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/physics3d`. The `@fl
13
13
  This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
14
14
 
15
15
  - [Flight project](https://github.com/flighthq/flight)
16
- - [Source for @flighthq/physics3d@0.5.1-next.820.97b3830](https://github.com/flighthq/flight/tree/97b3830e843209d92da169e02a52c0574efe5c09/packages/physics3d)
17
- - [License](https://github.com/flighthq/flight/blob/97b3830e843209d92da169e02a52c0574efe5c09/LICENSE.md)
16
+ - [Source for @flighthq/physics3d@0.5.1-next.903.f434bc2](https://github.com/flighthq/flight/tree/f434bc233778d75aeea61995df3a8cfaec459a85/packages/physics3d)
17
+ - [License](https://github.com/flighthq/flight/blob/f434bc233778d75aeea61995df3a8cfaec459a85/LICENSE.md)
@@ -1,5 +1,23 @@
1
- import type { CollisionColliderShape3D, Entity, Physics3DCollider, RigidBody3D, SpatialAabb3D } from '@flighthq/types/contract';
1
+ import type { CollisionColliderShape3D, Entity, EntityConstruction, Physics3DCollider, RigidBody3D, SpatialAabb3D } from '@flighthq/types/contract';
2
2
  export declare function createPhysics3DColliderWorldShape(local: Readonly<CollisionColliderShape3D>): CollisionColliderShape3D & Entity;
3
+ export declare function initializeCollisionBox3D(out: EntityConstruction<Extract<CollisionColliderShape3D, {
4
+ kind: 'box';
5
+ }> & Entity>, kind: 'box'): void;
6
+ export declare function initializeCollisionCapsule3D(out: EntityConstruction<Extract<CollisionColliderShape3D, {
7
+ kind: 'capsule';
8
+ }> & Entity>, kind: 'capsule', radius: number, x0: number, x1: number, y0: number, y1: number, z0: number, z1: number): void;
9
+ export declare function initializeCollisionCone3D(out: EntityConstruction<Extract<CollisionColliderShape3D, {
10
+ kind: 'cone';
11
+ }> & Entity>, apexX: number, apexY: number, apexZ: number, baseX: number, baseY: number, baseZ: number, kind: 'cone', radius: number): void;
12
+ export declare function initializeCollisionConvex3D(out: EntityConstruction<Extract<CollisionColliderShape3D, {
13
+ kind: 'convex';
14
+ }> & Entity>, kind: 'convex', points: number[]): void;
15
+ export declare function initializeCollisionCylinder3D(out: EntityConstruction<Extract<CollisionColliderShape3D, {
16
+ kind: 'cylinder';
17
+ }> & Entity>, kind: 'cylinder', radius: number, x0: number, x1: number, y0: number, y1: number, z0: number, z1: number): void;
18
+ export declare function initializeCollisionSphere3D(out: EntityConstruction<Extract<CollisionColliderShape3D, {
19
+ kind: 'sphere';
20
+ }> & Entity>, kind: 'sphere', radius: number, x: number, y: number, z: number): void;
3
21
  export declare function updatePhysics3DColliderWorldShape(collider: Physics3DCollider, body: Readonly<RigidBody3D>): void;
4
22
  export declare function writePhysics3DColliderBounds(collider: Readonly<Physics3DCollider>, out: SpatialAabb3D): void;
5
23
  //# sourceMappingURL=colliderTransform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colliderTransform.d.ts","sourceRoot":"","sources":["../src/colliderTransform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,wBAAwB,EACxB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,aAAa,EACd,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GACxC,wBAAwB,GAAG,MAAM,CAwFnC;AAUD,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CA4HhH;AAMD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAyI5G"}
1
+ {"version":3,"file":"colliderTransform.d.ts","sourceRoot":"","sources":["../src/colliderTransform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,wBAAwB,EACxB,MAAM,EACN,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACd,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GACxC,wBAAwB,GAAG,MAAM,CA4GnC;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,wBAAwB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,GAAG,MAAM,CAAC,EACpF,IAAI,EAAE,KAAK,GACV,IAAI,CAYN;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,wBAAwB,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,GAAG,MAAM,CAAC,EACxF,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CASN;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,wBAAwB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAAC,EACrF,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,IAAI,CASN;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,wBAAwB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,GAAG,MAAM,CAAC,EACvF,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EAAE,GACf,IAAI,CAGN;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,wBAAwB,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,GAAG,MAAM,CAAC,EACzF,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CASN;AAmCD,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,wBAAwB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,GAAG,MAAM,CAAC,EACvF,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,IAAI,CAMN;AAqCD,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CA4HhH;AAMD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAyI5G"}
@@ -1,97 +1,141 @@
1
1
  import { writeCollisionHeightfieldBounds3D, writeCollisionTriangleMeshBounds3D } from '@flighthq/collision/contract';
2
- import { createEntity } from '@flighthq/entity/contract';
2
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
3
3
  // Allocates the world-space shape a collider needs for `local`, choosing the kind the transform can
4
4
  // actually express. Every field is filled at creation so the shape is never read half-initialised, and
5
5
  // convex-hull storage is sized once here so the per-step transform can write in place.
6
6
  export function createPhysics3DColliderWorldShape(local) {
7
7
  switch (local.kind) {
8
- case 'sphere':
9
- return createEntity({ kind: 'sphere', x: local.x, y: local.y, z: local.z, radius: local.radius });
8
+ case 'sphere': {
9
+ const out = allocateEntity();
10
+ initializeCollisionSphere3D(out, 'sphere', local.radius, local.x, local.y, local.z);
11
+ return finishEntity(out);
12
+ }
10
13
  case 'aabb':
11
- case 'box':
12
- return createEntity({
13
- kind: 'box',
14
- x: 0,
15
- y: 0,
16
- z: 0,
17
- halfX: 0,
18
- halfY: 0,
19
- halfZ: 0,
20
- rotationX: 0,
21
- rotationY: 0,
22
- rotationZ: 0,
23
- rotationW: 1,
24
- });
25
- case 'capsule':
26
- return createEntity({
27
- kind: 'capsule',
28
- x0: local.x0,
29
- y0: local.y0,
30
- z0: local.z0,
31
- x1: local.x1,
32
- y1: local.y1,
33
- z1: local.z1,
34
- radius: local.radius,
35
- });
36
- case 'cylinder':
37
- return createEntity({
38
- kind: 'cylinder',
39
- x0: local.x0,
40
- y0: local.y0,
41
- z0: local.z0,
42
- x1: local.x1,
43
- y1: local.y1,
44
- z1: local.z1,
45
- radius: local.radius,
46
- });
47
- case 'cone':
48
- return createEntity({
49
- kind: 'cone',
50
- apexX: local.apexX,
51
- apexY: local.apexY,
52
- apexZ: local.apexZ,
53
- baseX: local.baseX,
54
- baseY: local.baseY,
55
- baseZ: local.baseZ,
56
- radius: local.radius,
57
- });
58
- case 'convex':
59
- return createEntity({ kind: 'convex', points: local.points.slice() });
60
- case 'triangle-mesh':
61
- return createEntity({
62
- kind: 'triangle-mesh',
63
- points: local.points,
64
- indices: local.indices,
65
- version: local.version,
66
- x: local.x,
67
- y: local.y,
68
- z: local.z,
69
- rotationX: local.rotationX,
70
- rotationY: local.rotationY,
71
- rotationZ: local.rotationZ,
72
- rotationW: local.rotationW,
73
- });
74
- case 'heightfield':
75
- return createEntity({
76
- kind: 'heightfield',
77
- columns: local.columns,
78
- rows: local.rows,
79
- heights: local.heights,
80
- cellSizeX: local.cellSizeX,
81
- cellSizeZ: local.cellSizeZ,
82
- version: local.version,
83
- x: local.x,
84
- y: local.y,
85
- z: local.z,
86
- rotationX: local.rotationX,
87
- rotationY: local.rotationY,
88
- rotationZ: local.rotationZ,
89
- rotationW: local.rotationW,
90
- });
91
- default:
92
- return createEntity({ kind: 'sphere', x: 0, y: 0, z: 0, radius: 0 });
14
+ case 'box': {
15
+ const out = allocateEntity();
16
+ initializeCollisionBox3D(out, 'box');
17
+ return finishEntity(out);
18
+ }
19
+ case 'capsule': {
20
+ const out = allocateEntity();
21
+ initializeCollisionCapsule3D(out, 'capsule', local.radius, local.x0, local.x1, local.y0, local.y1, local.z0, local.z1);
22
+ return finishEntity(out);
23
+ }
24
+ case 'cylinder': {
25
+ const out = allocateEntity();
26
+ initializeCollisionCylinder3D(out, 'cylinder', local.radius, local.x0, local.x1, local.y0, local.y1, local.z0, local.z1);
27
+ return finishEntity(out);
28
+ }
29
+ case 'cone': {
30
+ const out = allocateEntity();
31
+ initializeCollisionCone3D(out, local.apexX, local.apexY, local.apexZ, local.baseX, local.baseY, local.baseZ, 'cone', local.radius);
32
+ return finishEntity(out);
33
+ }
34
+ case 'convex': {
35
+ const out = allocateEntity();
36
+ initializeCollisionConvex3D(out, 'convex', local.points.slice());
37
+ return finishEntity(out);
38
+ }
39
+ case 'triangle-mesh': {
40
+ const out = allocateEntity();
41
+ assignCollisionTriangleMesh3DFields(out, local.indices, 'triangle-mesh', local.points, local.rotationW, local.rotationX, local.rotationY, local.rotationZ, local.version, local.x, local.y, local.z);
42
+ return finishEntity(out);
43
+ }
44
+ case 'heightfield': {
45
+ const out = allocateEntity();
46
+ assignCollisionHeightfield3DFields(out, local.cellSizeX, local.cellSizeZ, local.columns, local.heights, 'heightfield', local.rotationW, local.rotationX, local.rotationY, local.rotationZ, local.rows, local.version, local.x, local.y, local.z);
47
+ return finishEntity(out);
48
+ }
49
+ default: {
50
+ const out = allocateEntity();
51
+ initializeCollisionSphere3D(out, 'sphere', 0, 0, 0, 0);
52
+ return finishEntity(out);
53
+ }
93
54
  }
94
55
  }
56
+ export function initializeCollisionBox3D(out, kind) {
57
+ out.halfX = 0;
58
+ out.halfY = 0;
59
+ out.halfZ = 0;
60
+ out.kind = kind;
61
+ out.rotationW = 1;
62
+ out.rotationX = 0;
63
+ out.rotationY = 0;
64
+ out.rotationZ = 0;
65
+ out.x = 0;
66
+ out.y = 0;
67
+ out.z = 0;
68
+ }
69
+ export function initializeCollisionCapsule3D(out, kind, radius, x0, x1, y0, y1, z0, z1) {
70
+ out.kind = kind;
71
+ out.radius = radius;
72
+ out.x0 = x0;
73
+ out.x1 = x1;
74
+ out.y0 = y0;
75
+ out.y1 = y1;
76
+ out.z0 = z0;
77
+ out.z1 = z1;
78
+ }
79
+ export function initializeCollisionCone3D(out, apexX, apexY, apexZ, baseX, baseY, baseZ, kind, radius) {
80
+ out.apexX = apexX;
81
+ out.apexY = apexY;
82
+ out.apexZ = apexZ;
83
+ out.baseX = baseX;
84
+ out.baseY = baseY;
85
+ out.baseZ = baseZ;
86
+ out.kind = kind;
87
+ out.radius = radius;
88
+ }
89
+ export function initializeCollisionConvex3D(out, kind, points) {
90
+ out.kind = kind;
91
+ out.points = points;
92
+ }
93
+ export function initializeCollisionCylinder3D(out, kind, radius, x0, x1, y0, y1, z0, z1) {
94
+ out.kind = kind;
95
+ out.radius = radius;
96
+ out.x0 = x0;
97
+ out.x1 = x1;
98
+ out.y0 = y0;
99
+ out.y1 = y1;
100
+ out.z0 = z0;
101
+ out.z1 = z1;
102
+ }
103
+ function assignCollisionHeightfield3DFields(out, cellSizeX, cellSizeZ, columns, heights, kind, rotationW, rotationX, rotationY, rotationZ, rows, version, x, y, z) {
104
+ out.cellSizeX = cellSizeX;
105
+ out.cellSizeZ = cellSizeZ;
106
+ out.columns = columns;
107
+ out.heights = heights;
108
+ out.kind = kind;
109
+ out.rotationW = rotationW;
110
+ out.rotationX = rotationX;
111
+ out.rotationY = rotationY;
112
+ out.rotationZ = rotationZ;
113
+ out.rows = rows;
114
+ out.version = version;
115
+ out.x = x;
116
+ out.y = y;
117
+ out.z = z;
118
+ }
119
+ export function initializeCollisionSphere3D(out, kind, radius, x, y, z) {
120
+ out.kind = kind;
121
+ out.radius = radius;
122
+ out.x = x;
123
+ out.y = y;
124
+ out.z = z;
125
+ }
126
+ function assignCollisionTriangleMesh3DFields(out, indices, kind, points, rotationW, rotationX, rotationY, rotationZ, version, x, y, z) {
127
+ out.indices = indices;
128
+ out.kind = kind;
129
+ out.points = points;
130
+ out.rotationW = rotationW;
131
+ out.rotationX = rotationX;
132
+ out.rotationY = rotationY;
133
+ out.rotationZ = rotationZ;
134
+ out.version = version;
135
+ out.x = x;
136
+ out.y = y;
137
+ out.z = z;
138
+ }
95
139
  // Rewrites `collider.world` from its local shape and the body's current pose. Called once per collider
96
140
  // per step, before the narrow phase — never per contact test, because a body with four colliders against
97
141
  // a hundred broadphase candidates would otherwise transform the same shape a hundred times to produce
@@ -1 +1 @@
1
- {"version":3,"file":"colliderTransform.js","sourceRoot":"","sources":["../src/colliderTransform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colliderTransform.js","sourceRoot":"","sources":["../src/colliderTransform.ts"],"names":[],"mappings":"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AAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1E,MAAM,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1E,MAAM,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1E,GAAG,CAAC,IAAI,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"}
@@ -1,4 +1,6 @@
1
- import type { Physics3DContact, Physics3DContactPoint } from '@flighthq/types/contract';
1
+ import type { Physics3DContact, Physics3DContactPoint, EntityConstruction } from '@flighthq/types/contract';
2
2
  export declare function createPhysics3DContact(bodyA: number, bodyB: number, colliderA?: number, colliderB?: number): Physics3DContact;
3
3
  export declare function createPhysics3DContactPoint(): Physics3DContactPoint;
4
+ export declare function initializePhysics3DContact(out: EntityConstruction<Physics3DContact>, bodyA: number, bodyB: number, colliderA?: number, colliderB?: number): void;
5
+ export declare function initializePhysics3DContactPoint(out: EntityConstruction<Physics3DContactPoint>): void;
4
6
  //# sourceMappingURL=contacts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../src/contacts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AA6BxF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,EAAE,SAAS,SAAI,GAAG,gBAAgB,CAkBnH;AAKD,wBAAgB,2BAA2B,IAAI,qBAAqB,CAcnE"}
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../src/contacts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAe5G,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,EAAE,SAAS,SAAI,GAAG,gBAAgB,CAInH;AAED,wBAAgB,2BAA2B,IAAI,qBAAqB,CAInE;AAgBD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EACzC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,SAAI,EACb,SAAS,SAAI,GACZ,IAAI,CAgBN;AAKD,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAYpG"}
package/dist/contacts.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  // Constructors for the contact records the step consumes.
3
3
  //
4
4
  // The step GENERATES contacts from a body's colliders, so these are not the ordinary path. They are the
@@ -11,6 +11,16 @@ import { createEntity } from '@flighthq/entity/contract';
11
11
  // nothing. Note that a contact the step does not re-find is retired at the end of the next step, because
12
12
  // contact lifetime is owned by intake — a hand-built contact survives only as long as the geometry that
13
13
  // justifies it does.
14
+ export function createPhysics3DContact(bodyA, bodyB, colliderA = 0, colliderB = 0) {
15
+ const out = allocateEntity();
16
+ initializePhysics3DContact(out, bodyA, bodyB, colliderA, colliderB);
17
+ return finishEntity(out);
18
+ }
19
+ export function createPhysics3DContactPoint() {
20
+ const out = allocateEntity();
21
+ initializePhysics3DContactPoint(out);
22
+ return finishEntity(out);
23
+ }
14
24
  // Allocates one contact between two bodies, in canonical order.
15
25
  //
16
26
  // The order is an invariant of creation rather than a convention a caller is asked to respect, so it is
@@ -25,41 +35,37 @@ import { createEntity } from '@flighthq/entity/contract';
25
35
  // The normal is NOT reordered with the bodies, because there is nothing yet to reorder: a fresh contact
26
36
  // carries a zero normal, and the caller writing the geometry is the one who knows which way it points. It
27
37
  // must point so that resolving pushes A out of B.
28
- export function createPhysics3DContact(bodyA, bodyB, colliderA = 0, colliderB = 0) {
38
+ export function initializePhysics3DContact(out, bodyA, bodyB, colliderA = 0, colliderB = 0) {
29
39
  const ordered = bodyA <= bodyB;
30
- return createEntity({
31
- bodyA: ordered ? bodyA : bodyB,
32
- bodyB: ordered ? bodyB : bodyA,
33
- colliderA: ordered ? colliderA : colliderB,
34
- colliderB: ordered ? colliderB : colliderA,
35
- normalX: 0,
36
- normalY: 0,
37
- normalZ: 0,
38
- pointCount: 0,
39
- points: [],
40
- friction: 0,
41
- restitution: 0,
42
- enabled: true,
43
- sensor: false,
44
- touching: false,
45
- });
40
+ out.bodyA = ordered ? bodyA : bodyB;
41
+ out.bodyB = ordered ? bodyB : bodyA;
42
+ out.colliderA = ordered ? colliderA : colliderB;
43
+ out.colliderB = ordered ? colliderB : colliderA;
44
+ out.normalX = 0;
45
+ out.normalY = 0;
46
+ out.normalZ = 0;
47
+ out.pointCount = 0;
48
+ out.points = [];
49
+ out.friction = 0;
50
+ out.restitution = 0;
51
+ out.enabled = true;
52
+ out.sensor = false;
53
+ out.touching = false;
46
54
  }
47
55
  // Allocates one contact point, zeroed. `featureId` is the caller's to assign and is opaque to this
48
56
  // package: its only contract is that the SAME physical feature carries the SAME id between steps, which is
49
57
  // what lets the solver match this step's points against last step's accumulators.
50
- export function createPhysics3DContactPoint() {
51
- return createEntity({
52
- x: 0,
53
- y: 0,
54
- z: 0,
55
- depth: 0,
56
- featureId: 0,
57
- rAX: 0,
58
- rAY: 0,
59
- rAZ: 0,
60
- rBX: 0,
61
- rBY: 0,
62
- rBZ: 0,
63
- });
58
+ export function initializePhysics3DContactPoint(out) {
59
+ out.x = 0;
60
+ out.y = 0;
61
+ out.z = 0;
62
+ out.depth = 0;
63
+ out.featureId = 0;
64
+ out.rAX = 0;
65
+ out.rAY = 0;
66
+ out.rAZ = 0;
67
+ out.rBX = 0;
68
+ out.rBY = 0;
69
+ out.rBZ = 0;
64
70
  }
65
71
  //# sourceMappingURL=contacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../src/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,0DAA0D;AAC1D,EAAE;AACF,wGAAwG;AACxG,0GAA0G;AAC1G,wGAAwG;AACxG,mGAAmG;AACnG,EAAE;AACF,wGAAwG;AACxG,yGAAyG;AACzG,yGAAyG;AACzG,wGAAwG;AACxG,qBAAqB;AAErB,gEAAgE;AAChE,EAAE;AACF,wGAAwG;AACxG,yGAAyG;AACzG,2GAA2G;AAC3G,sEAAsE;AACtE,EAAE;AACF,sGAAsG;AACtG,sGAAsG;AACtG,qGAAqG;AACrG,EAAE;AACF,wGAAwG;AACxG,0GAA0G;AAC1G,kDAAkD;AAClD,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,KAAa,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC;IAC/F,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC;IAC/B,OAAO,YAAY,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;QAC9B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;QAC9B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC1C,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC1C,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC;AAED,mGAAmG;AACnG,2GAA2G;AAC3G,kFAAkF;AAClF,MAAM,UAAU,2BAA2B;IACzC,OAAO,YAAY,CAAC;QAClB,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,CAAC;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;KACP,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../src/contacts.ts"],"names":[],"mappings":"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"}
@@ -25,4 +25,11 @@ export * from './stepValidation';
25
25
  export * from './world';
26
26
  export * from './worldQueries';
27
27
  export * from './debugGeometry';
28
+ export { initializePhysics3DDebugGeometry } from './debugGeometry';
29
+ export { initializePhysics3DContactConstraint, initializePhysics3DContactConstraintPoint } from './solver';
30
+ export { initializePhysics3DMassData } from './massProperties';
31
+ export { initializePhysics3DContact, initializePhysics3DContactPoint } from './contacts';
32
+ export { initializePhysics3DJointReaction } from './jointReaction';
33
+ export { initializePhysics3DBallAndSocketJoint, initializePhysics3DConeTwistJoint, initializePhysics3DDistanceJoint, initializePhysics3DFixedJoint, initializePhysics3DGeneric6DofJoint, initializePhysics3DHingeJoint, initializePhysics3DSliderJoint, } from './jointFactories';
34
+ export { initializePhysics3DQueryResult, initializePhysics3DRayResult, initializePhysics3DShapeCastResult, } from './worldQueries';
28
35
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,wCAAwC,CAAC;AACvD,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,wCAAwC,CAAC;AACvD,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,oCAAoC,EAAE,yCAAyC,EAAE,MAAM,UAAU,CAAC;AAC3G,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,qCAAqC,EACrC,iCAAiC,EACjC,gCAAgC,EAChC,6BAA6B,EAC7B,mCAAmC,EACnC,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,gBAAgB,CAAC"}
package/dist/contract.js CHANGED
@@ -25,4 +25,11 @@ export * from './stepValidation';
25
25
  export * from './world';
26
26
  export * from './worldQueries';
27
27
  export * from './debugGeometry';
28
+ export { initializePhysics3DDebugGeometry } from './debugGeometry';
29
+ export { initializePhysics3DContactConstraint, initializePhysics3DContactConstraintPoint } from './solver';
30
+ export { initializePhysics3DMassData } from './massProperties';
31
+ export { initializePhysics3DContact, initializePhysics3DContactPoint } from './contacts';
32
+ export { initializePhysics3DJointReaction } from './jointReaction';
33
+ export { initializePhysics3DBallAndSocketJoint, initializePhysics3DConeTwistJoint, initializePhysics3DDistanceJoint, initializePhysics3DFixedJoint, initializePhysics3DGeneric6DofJoint, initializePhysics3DHingeJoint, initializePhysics3DSliderJoint, } from './jointFactories';
34
+ export { initializePhysics3DQueryResult, initializePhysics3DRayResult, initializePhysics3DShapeCastResult, } from './worldQueries';
28
35
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,wCAAwC,CAAC;AACvD,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,wCAAwC,CAAC;AACvD,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,oCAAoC,EAAE,yCAAyC,EAAE,MAAM,UAAU,CAAC;AAC3G,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,qCAAqC,EACrC,iCAAiC,EACjC,gCAAgC,EAChC,6BAA6B,EAC7B,mCAAmC,EACnC,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,gBAAgB,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { Physics3DDebugGeometry, Physics3DDebugGeometryOptions, Physics3DWorld } from '@flighthq/types/contract';
1
+ import type { EntityConstruction, Physics3DDebugGeometry, Physics3DDebugGeometryOptions, Physics3DWorld } from '@flighthq/types/contract';
2
2
  export declare function createPhysics3DDebugGeometry(): Physics3DDebugGeometry;
3
+ export declare function initializePhysics3DDebugGeometry(out: EntityConstruction<Physics3DDebugGeometry>): void;
3
4
  export declare function writePhysics3DDebugGeometry(world: Readonly<Physics3DWorld>, out: Physics3DDebugGeometry, options?: Readonly<Partial<Physics3DDebugGeometryOptions>>): void;
4
5
  //# sourceMappingURL=debugGeometry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"debugGeometry.d.ts","sourceRoot":"","sources":["../src/debugGeometry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,sBAAsB,EACtB,6BAA6B,EAC7B,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAOlC,wBAAgB,4BAA4B,IAAI,sBAAsB,CAErE;AAYD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC/B,GAAG,EAAE,sBAAsB,EAC3B,OAAO,GAAE,QAAQ,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAmB,GAC1E,IAAI,CA+DN"}
1
+ {"version":3,"file":"debugGeometry.d.ts","sourceRoot":"","sources":["../src/debugGeometry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,kBAAkB,EAElB,sBAAsB,EACtB,6BAA6B,EAC7B,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAIlC,wBAAgB,4BAA4B,IAAI,sBAAsB,CAIrE;AAKD,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAKtG;AAYD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC/B,GAAG,EAAE,sBAAsB,EAC3B,OAAO,GAAE,QAAQ,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAmB,GAC1E,IAAI,CA+DN"}
@@ -1,11 +1,19 @@
1
1
  import { writeCollisionConvexHullFaces3D } from '@flighthq/collision/contract';
2
- import { createEntity } from '@flighthq/entity/contract';
2
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
3
3
  import { writeRigidBody3DWorldCenter } from './world';
4
+ export function createPhysics3DDebugGeometry() {
5
+ const out = allocateEntity();
6
+ initializePhysics3DDebugGeometry(out);
7
+ return finishEntity(out);
8
+ }
4
9
  // Creates a reusable destination for `writePhysics3DDebugGeometry`. The arrays are capacity pools: the
5
10
  // writer advances counts and overwrites existing entries before growing them, so a steady scene stops
6
11
  // allocating after its first query.
7
- export function createPhysics3DDebugGeometry() {
8
- return createEntity({ lines: [], lineCount: 0, spheres: [], sphereCount: 0 });
12
+ export function initializePhysics3DDebugGeometry(out) {
13
+ out.lines = [];
14
+ out.lineCount = 0;
15
+ out.spheres = [];
16
+ out.sphereCount = 0;
9
17
  }
10
18
  // Extracts the world's visible constraint geometry without choosing a renderer.
11
19
  //