@vworlds/vecs-physics 1.0.38 → 1.0.40

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.
@@ -14,6 +14,7 @@ export type b2JointDefBase = ReturnType<Box2DModule["b2DefaultRevoluteJointDef"]
14
14
  export type b2Vec2 = ReturnType<Box2DModule["b2Body_GetPosition"]>;
15
15
  export type b2QueryFilter = Parameters<Box2DModule["b2World_OverlapAABB"]>[2];
16
16
  export type b2AABB = Parameters<Box2DModule["b2World_OverlapAABB"]>[1];
17
+ export type b2ShapeProxy = ReturnType<Box2DModule["b2MakeProxy"]>;
17
18
  /** The transient result object passed to a `b2World_CastRay` collector callback
18
19
  * (the binding types the callback parameter as `any`). */
19
20
  export type b2RayCallbackResult = InstanceType<Box2DModule["b2RayCallbackResult"]>;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/adapter/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/adapter/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAqC,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAiB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA+C5D;;;;qEAIqE;AACrE,MAAM,OAAO,gBAAgB;CAAG;AAEhC,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAA8B,CAAC;IACrE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC;AAChD,CAAC;AAED,MAAM,OAAO,aAAa;IAwFxB,YACE,KAAmB,EACnB,OAAgC,EAChC,MAAsB,EACtB,QAAmB;QAvErB,8FAA8F;QAC9F,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,8EAA8E;QAC9E,4EAA4E;QAC5E,gEAAgE;QAChD,sBAAiB,GAAG,IAAI,QAAQ,EAAO,CAAC;QACxC,uBAAkB,GAAG,IAAI,QAAQ,EAAO,CAAC;QAEzD,gFAAgF;QAChE,oBAAe,GAAG,IAAI,GAAG,EAAO,CAAC;QAEjD,4EAA4E;QAC5E,+EAA+E;QAC/E,6EAA6E;QAC7E,0EAA0E;QAC1E,yEAAyE;QACzE,6EAA6E;QAC7E,gFAAgF;QAChF,2EAA2E;QAC3E,kDAAkD;QAClC,yBAAoB,GAAgB,EAAE,CAAC;QACvC,yBAAoB,GAAgB,EAAE,CAAC;QACvC,wBAAmB,GAAe,EAAE,CAAC;QAErD,6EAA6E;QAC7E,6EAA6E;QAC7E,gFAAgF;QAChF,0EAA0E;QAC1D,yBAAoB,GAAgB,EAAE,CAAC;QAEvD,8EAA8E;QAC9E,uEAAuE;QACvE,4EAA4E;QAC5E,0DAA0D;QAC1C,uBAAkB,GAAG,IAAI,GAAG,EAAO,CAAC;QACpC,sBAAiB,GAAG,IAAI,GAAG,EAAO,CAAC;QACnC,mBAAc,GAAG,IAAI,GAAG,EAAO,CAAC;QAEhD,qEAAqE;QACrE,2EAA2E;QAC3E,+DAA+D;QAC/C,4BAAuB,GAAG,IAAI,GAAG,EAAO,CAAC;QAEzD,2EAA2E;QAC3E,0EAA0E;QAC1E,yEAAyE;QACzE,6BAA6B;QACb,yBAAoB,GAAG,IAAI,GAAG,EAG3C,CAAC;QACY,0BAAqB,GAAG,IAAI,GAAG,EAA8C,CAAC;QAoB5F,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACnD,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { type Entity, type World } from "@vworlds/vecs";
2
- import { type Vec2 } from "../shapes/components.js";
2
+ import { Box, Capsule, Circle, Polygon, Segment, type Vec2 } from "../shapes/components.js";
3
3
  /** Category/mask filter applied to a query. Unlike a shape's own filter
4
4
  * (default `categoryBits = 1`), a query's default `categoryBits` is
5
5
  * `0xffffffff` so the query is not itself filtered out. */
@@ -21,10 +21,32 @@ export interface RayHit {
21
21
  /** Fraction along `from` → `to`, in `[0, 1]`. */
22
22
  fraction: number;
23
23
  }
24
+ /**
25
+ * Geometry accepted by shape casts: any single-shape geometry component, in
26
+ * local space exactly as it would sit on a shape entity. Pass a live entity's
27
+ * component (`entity.get(Circle)!`) or a standalone instance (`new Circle()`).
28
+ * `Chain` is excluded — Box2D cannot sweep a chain.
29
+ */
30
+ export type CastGeometry = Box | Capsule | Circle | Polygon | Segment;
31
+ /** A single shape-cast hit, resolved to a Vecs shape entity with plain-data
32
+ * geometry — never a Box2D handle. */
33
+ export interface ShapeCastHit {
34
+ /** The shape entity that was hit. */
35
+ entity: Entity;
36
+ /** World-space contact point at first touch. */
37
+ point: Vec2;
38
+ /** World-space unit surface normal at the contact point. Zero vector when
39
+ * `fraction` is `0` (cast started overlapping this shape). */
40
+ normal: Vec2;
41
+ /** Fraction along `from` → `to` at first touch, in `[0, 1]`. `0` means the
42
+ * cast geometry already touches or overlaps this shape at `from`. */
43
+ fraction: number;
44
+ }
24
45
  /**
25
46
  * Stable, world-scoped facade for synchronous read-only physics queries: ray
26
- * casts and spatial overlaps. Obtained via {@link physics}. Never mutates the
27
- * world, never creates or destroys entities, and never wakes bodies.
47
+ * casts, shape casts, and spatial overlaps. Obtained via {@link physics}.
48
+ * Never mutates the world, never creates or destroys entities, and never
49
+ * wakes bodies.
28
50
  */
29
51
  export interface PhysicsQueries {
30
52
  /** Casts a ray from `from` to `to` and returns the closest hit, or `undefined`
@@ -41,6 +63,27 @@ export interface PhysicsQueries {
41
63
  to: Vec2;
42
64
  filter?: QueryFilter;
43
65
  }): RayHit[];
66
+ /** Sweeps `shape` — placed with its local origin at `from`, rotated by
67
+ * `rotation` radians (default `0`) — until the origin reaches `to`, and
68
+ * returns the closest hit, or `undefined` if the sweep touches nothing.
69
+ * Throws if `shape` is a {@link Polygon} with no vertices or more than 8. */
70
+ shapeCastClosest(query: {
71
+ shape: CastGeometry;
72
+ from: Vec2;
73
+ to: Vec2;
74
+ rotation?: number;
75
+ filter?: QueryFilter;
76
+ }): ShapeCastHit | undefined;
77
+ /** Sweeps `shape` along `from` → `to` like {@link shapeCastClosest} and
78
+ * returns every shape the sweep would touch, each with its own
79
+ * first-contact point, normal, and fraction. */
80
+ shapeCastAll(query: {
81
+ shape: CastGeometry;
82
+ from: Vec2;
83
+ to: Vec2;
84
+ rotation?: number;
85
+ filter?: QueryFilter;
86
+ }): ShapeCastHit[];
44
87
  /** Returns every shape entity whose fat AABB overlaps `[min, max]`. This is
45
88
  * a broad-phase query: it can over-report relative to exact shape
46
89
  * overlap. */
@@ -5,11 +5,15 @@
5
5
  // entities (shape entities) and plain data — never Box2D handles.
6
6
  //
7
7
  // box2d3-wasm imports are confined to `src/adapter/`; this file is part of
8
- // that boundary. Scratch allocations (b2Vec2, b2QueryFilter, b2AABB) reuse
9
- // global pools allocated at module load. Transient allocations like b2RayResult
10
- // are freed via explicit `finally { .delete() }`.
11
- import { scr_b2AABB, scr_b2QueryFilter, scr_b2Vec2 } from "./runtime.js";
8
+ // that boundary. Scratch allocations (b2Vec2, b2QueryFilter, b2AABB,
9
+ // b2ShapeProxy) reuse global pools allocated at module load. Transient
10
+ // allocations like b2RayResult are freed via explicit `finally { .delete() }`.
11
+ import { Box, Capsule, Circle, Segment } from "../shapes/components.js";
12
+ import { scr_b2AABB, scr_b2QueryFilter, scr_b2ShapeProxy, scr_b2Vec2, } from "./runtime.js";
12
13
  import { getPhysicsEngine, } from "./engine.js";
14
+ /** Box2D's `B2_MAX_POLYGON_VERTICES` — the most points a cast {@link Polygon}
15
+ * (and a `b2ShapeProxy`) can carry. Mirrors `src/shapes/lifecycle.ts`. */
16
+ const MAX_POLYGON_VERTICES = 8;
13
17
  /**
14
18
  * Returns the {@link PhysicsQueries} facade for `world`.
15
19
  *
@@ -74,6 +78,51 @@ class PhysicsQueriesImpl {
74
78
  });
75
79
  return hits;
76
80
  }
81
+ shapeCastClosest(query) {
82
+ const { box2d, worldId } = this.engine;
83
+ const proxy = to_b2ShapeProxy(box2d, query.shape, query.from, query.rotation ?? 0);
84
+ const translation = scr_b2Vec2[1];
85
+ translation.Set(query.to.x - query.from.x, query.to.y - query.from.y);
86
+ let closest;
87
+ box2d.b2World_CastShape(worldId, proxy, translation, to_b2QueryFilter(query.filter), (result) => {
88
+ const entity = resolveShapeEntity(this.engine, this.world, result.shapeId);
89
+ if (entity === undefined) {
90
+ // -1 filters the hit out without tightening the clip fraction.
91
+ return -1;
92
+ }
93
+ if (closest === undefined || result.fraction < closest.fraction) {
94
+ closest = {
95
+ entity,
96
+ point: { x: result.point.x, y: result.point.y },
97
+ normal: { x: result.normal.x, y: result.normal.y },
98
+ fraction: result.fraction,
99
+ };
100
+ }
101
+ // Clip the sweep so only nearer hits are reported from here on.
102
+ return result.fraction;
103
+ });
104
+ return closest;
105
+ }
106
+ shapeCastAll(query) {
107
+ const { box2d, worldId } = this.engine;
108
+ const proxy = to_b2ShapeProxy(box2d, query.shape, query.from, query.rotation ?? 0);
109
+ const translation = scr_b2Vec2[1];
110
+ translation.Set(query.to.x - query.from.x, query.to.y - query.from.y);
111
+ const hits = [];
112
+ box2d.b2World_CastShape(worldId, proxy, translation, to_b2QueryFilter(query.filter), (result) => {
113
+ const entity = resolveShapeEntity(this.engine, this.world, result.shapeId);
114
+ if (entity !== undefined) {
115
+ hits.push({
116
+ entity,
117
+ point: { x: result.point.x, y: result.point.y },
118
+ normal: { x: result.normal.x, y: result.normal.y },
119
+ fraction: result.fraction,
120
+ });
121
+ }
122
+ return 1;
123
+ });
124
+ return hits;
125
+ }
77
126
  overlapAABB(query) {
78
127
  const { box2d, worldId } = this.engine;
79
128
  const aabb = scr_b2AABB;
@@ -114,6 +163,59 @@ class PhysicsQueriesImpl {
114
163
  }
115
164
  }
116
165
  }
166
+ /** Fills the scratch `b2ShapeProxy` with `shape`'s geometry transformed to
167
+ * world space: each local point is rotated by `rotation` and translated by
168
+ * `at`. `setPoint` copies by value, so the scratch `b2Vec2` and the returned
169
+ * proxy are free for reuse as soon as the consuming cast returns. Throws for
170
+ * a {@link Polygon} whose vertex count Box2D cannot represent (0, or more
171
+ * than `B2_MAX_POLYGON_VERTICES` = 8). */
172
+ function to_b2ShapeProxy(box2d, shape, at, rotation) {
173
+ const proxy = scr_b2ShapeProxy;
174
+ const cos = Math.cos(rotation);
175
+ const sin = Math.sin(rotation);
176
+ const point = scr_b2Vec2[0];
177
+ const setPoint = (index, x, y) => {
178
+ point.Set(at.x + cos * x - sin * y, at.y + sin * x + cos * y);
179
+ proxy.setPoint(index, point);
180
+ };
181
+ if (shape instanceof Box) {
182
+ setPoint(0, -shape.hx, -shape.hy);
183
+ setPoint(1, shape.hx, -shape.hy);
184
+ setPoint(2, shape.hx, shape.hy);
185
+ setPoint(3, -shape.hx, shape.hy);
186
+ proxy.count = 4;
187
+ proxy.radius = 0;
188
+ }
189
+ else if (shape instanceof Circle) {
190
+ setPoint(0, 0, 0);
191
+ proxy.count = 1;
192
+ proxy.radius = shape.radius;
193
+ }
194
+ else if (shape instanceof Capsule) {
195
+ setPoint(0, shape.x1, shape.y1);
196
+ setPoint(1, shape.x2, shape.y2);
197
+ proxy.count = 2;
198
+ proxy.radius = shape.radius;
199
+ }
200
+ else if (shape instanceof Segment) {
201
+ setPoint(0, shape.x1, shape.y1);
202
+ setPoint(1, shape.x2, shape.y2);
203
+ proxy.count = 2;
204
+ proxy.radius = 0;
205
+ }
206
+ else {
207
+ const count = shape.vertices.length;
208
+ if (count < 1 || count > MAX_POLYGON_VERTICES) {
209
+ throw new Error(`shape cast Polygon must have 1 to ${MAX_POLYGON_VERTICES} vertices, got ${count}`);
210
+ }
211
+ for (let i = 0; i < count; i++) {
212
+ setPoint(i, shape.vertices[i].x, shape.vertices[i].y);
213
+ }
214
+ proxy.count = count;
215
+ proxy.radius = shape.radius;
216
+ }
217
+ return proxy;
218
+ }
117
219
  /** Maps a {@link QueryFilter} (default `0xffffffff`/`0xffffffff` — "sees and
118
220
  * is seen by everything") and returns a scratch `b2QueryFilter`. `b2QueryFilter` is not
119
221
  * `b2DefaultQueryFilter` here: the default-constructed filter is all zeros,
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/adapter/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/adapter/queries.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import Box2DFactory from "box2d3-wasm";
2
- import type { b2AABB, b2QueryFilter, b2Vec2 } from "./engine.js";
2
+ import type { b2AABB, b2QueryFilter, b2ShapeProxy, b2Vec2 } from "./engine.js";
3
3
  export type Box2DModule = Awaited<ReturnType<typeof Box2DFactory>>;
4
4
  export declare const scr_b2Vec2: b2Vec2[];
5
5
  export declare const scr_b2QueryFilter: b2QueryFilter[];
6
6
  export declare let scr_b2AABB: b2AABB | null;
7
+ export declare let scr_b2ShapeProxy: b2ShapeProxy | null;
7
8
  export declare function preloadPhysics(): Promise<void>;
8
9
  export declare function getBox2D(): Box2DModule;
@@ -7,6 +7,7 @@ let module = null;
7
7
  export const scr_b2Vec2 = [];
8
8
  export const scr_b2QueryFilter = [];
9
9
  export let scr_b2AABB = null;
10
+ export let scr_b2ShapeProxy = null;
10
11
  export async function preloadPhysics() {
11
12
  var _a;
12
13
  if (modulePromise) {
@@ -25,8 +26,9 @@ export async function preloadPhysics() {
25
26
  await modulePromise;
26
27
  }
27
28
  function initializeScratchPools(box2d) {
28
- // b2Vec2: ray casts need 2 simultaneous (origin + translation), polygon/chain creation
29
- // can reuse serially. Allocate 3 for safety margin.
29
+ // b2Vec2: ray and shape casts need 2 simultaneous (origin/proxy point +
30
+ // translation), polygon/chain creation can reuse serially. Allocate 3 for
31
+ // safety margin.
30
32
  for (let i = 0; i < 3; i++) {
31
33
  scr_b2Vec2.push(new box2d.b2Vec2());
32
34
  }
@@ -37,6 +39,9 @@ function initializeScratchPools(box2d) {
37
39
  }
38
40
  // b2AABB: overlapAABB needs exactly 1.
39
41
  scr_b2AABB = new box2d.b2AABB();
42
+ // b2ShapeProxy: shape casts need exactly 1 (proxy points are copied in by
43
+ // value, so the pool entry is free again as soon as the cast returns).
44
+ scr_b2ShapeProxy = new box2d.b2ShapeProxy();
40
45
  }
41
46
  export function getBox2D() {
42
47
  if (!module) {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/adapter/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,YAAY,MAAM,aAAa,CAAC;AAMvC,IAAI,aAAa,GAAgC,IAAI,CAAC;AACtD,IAAI,MAAM,GAAuB,IAAI,CAAC;AAEtC,gFAAgF;AAChF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,UAAU,GAAa,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAoB,EAAE,CAAC;AACrD,MAAM,CAAC,IAAI,UAAU,GAAkB,IAAI,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,cAAc;;IAClC,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,aAAa,CAAC;QACpB,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,MAAM,MAAM,GAAG,UAA2D,CAAC;IAC3E,MAAM,CAAC,SAAS,KAAhB,MAAM,CAAC,SAAS,GAAK,EAAE,EAAC;IACxB,MAAC,MAAM,CAAC,SAA8C,EAAC,mBAAmB,QAAnB,mBAAmB,GAAK,IAAI,EAAE,CAAC,MAAM,EAAC;IAE7F,aAAa,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACnD,MAAM,GAAG,YAAY,CAAC;QACtB,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACrC,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,MAAM,aAAa,CAAC;AACtB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAkB;IAChD,uFAAuF;IACvF,oDAAoD;IACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,+EAA+E;IAC/E,yBAAyB;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,iBAAiB,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,uCAAuC;IACvC,UAAU,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/adapter/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,YAAY,MAAM,aAAa,CAAC;AAMvC,IAAI,aAAa,GAAgC,IAAI,CAAC;AACtD,IAAI,MAAM,GAAuB,IAAI,CAAC;AAEtC,gFAAgF;AAChF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,UAAU,GAAa,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAoB,EAAE,CAAC;AACrD,MAAM,CAAC,IAAI,UAAU,GAAkB,IAAI,CAAC;AAC5C,MAAM,CAAC,IAAI,gBAAgB,GAAwB,IAAI,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,cAAc;;IAClC,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,aAAa,CAAC;QACpB,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,MAAM,MAAM,GAAG,UAA2D,CAAC;IAC3E,MAAM,CAAC,SAAS,KAAhB,MAAM,CAAC,SAAS,GAAK,EAAE,EAAC;IACxB,MAAC,MAAM,CAAC,SAA8C,EAAC,mBAAmB,QAAnB,mBAAmB,GAAK,IAAI,EAAE,CAAC,MAAM,EAAC;IAE7F,aAAa,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACnD,MAAM,GAAG,YAAY,CAAC;QACtB,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACrC,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,MAAM,aAAa,CAAC;AACtB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAkB;IAChD,wEAAwE;IACxE,0EAA0E;IAC1E,iBAAiB;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,+EAA+E;IAC/E,yBAAyB;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,iBAAiB,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,uCAAuC;IACvC,UAAU,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;IAEhC,0EAA0E;IAC1E,uEAAuE;IACvE,gBAAgB,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { Shape, Box, Circle, Capsule, Segment, Polygon, Chain, type Vec2, } from
7
7
  export { Material, CollisionFilter, Sensor, Detectable } from "./materials/components.js";
8
8
  export { Force, Torque, Impulse, AngularImpulse } from "./forces/components.js";
9
9
  export { KinematicTargetPosition, KinematicTargetRotation } from "./kinematic/components.js";
10
- export { Joint, JointBodyA, JointBodyB, JointFrame, RevoluteJoint, DistanceJoint, WeldJoint, FilterJoint, JointMotor, JointLimit, JointLinearSpring, JointAngularSpring, JointSettings, } from "./joints/components.js";
10
+ export { Joint, JointBodyA, JointBodyB, JointFrame, RevoluteJoint, DistanceJoint, PrismaticJoint, WheelJoint, WeldJoint, FilterJoint, MotorJoint, JointMotor, JointLimit, JointLinearSpring, JointAngularSpring, JointSettings, } from "./joints/components.js";
11
11
  export { ContactEvents, type ContactEvent, SensorEvents, type SensorEvent, HitEvents, type HitEvent, } from "./events/components.js";
12
12
  export { physics } from "./adapter/queries.js";
13
- export type { PhysicsQueries, QueryFilter, RayHit } from "./adapter/queries.js";
13
+ export type { CastGeometry, PhysicsQueries, QueryFilter, RayHit, ShapeCastHit, } from "./adapter/queries.js";
package/index.js CHANGED
@@ -19,7 +19,7 @@ export { Force, Torque, Impulse, AngularImpulse } from "./forces/components.js";
19
19
  // Kinematic targets
20
20
  export { KinematicTargetPosition, KinematicTargetRotation } from "./kinematic/components.js";
21
21
  // Joints
22
- export { Joint, JointBodyA, JointBodyB, JointFrame, RevoluteJoint, DistanceJoint, WeldJoint, FilterJoint, JointMotor, JointLimit, JointLinearSpring, JointAngularSpring, JointSettings, } from "./joints/components.js";
22
+ export { Joint, JointBodyA, JointBodyB, JointFrame, RevoluteJoint, DistanceJoint, PrismaticJoint, WheelJoint, WeldJoint, FilterJoint, MotorJoint, JointMotor, JointLimit, JointLinearSpring, JointAngularSpring, JointSettings, } from "./joints/components.js";
23
23
  // Events
24
24
  export { ContactEvents, SensorEvents, HitEvents, } from "./events/components.js";
25
25
  // Queries
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,gFAAgF;AAChF,uBAAuB;AAEvB,cAAc;AACd,OAAO,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO;AACP,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B,gBAAgB;AAChB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE7E,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE3E,WAAW;AACX,OAAO,EACL,KAAK,EACL,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,KAAK,GAEN,MAAM,wBAAwB,CAAC;AAEhC,6BAA6B;AAC7B,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE1F,oBAAoB;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEhF,oBAAoB;AACpB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAE7F,SAAS;AACT,OAAO,EACL,KAAK,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,SAAS;AACT,OAAO,EACL,aAAa,EAEb,YAAY,EAEZ,SAAS,GAEV,MAAM,wBAAwB,CAAC;AAEhC,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,gFAAgF;AAChF,uBAAuB;AAEvB,cAAc;AACd,OAAO,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO;AACP,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B,gBAAgB;AAChB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE7E,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE3E,WAAW;AACX,OAAO,EACL,KAAK,EACL,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,KAAK,GAEN,MAAM,wBAAwB,CAAC;AAEhC,6BAA6B;AAC7B,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE1F,oBAAoB;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEhF,oBAAoB;AACpB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAE7F,SAAS;AACT,OAAO,EACL,KAAK,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,SAAS;AACT,OAAO,EACL,aAAa,EAEb,YAAY,EAEZ,SAAS,GAEV,MAAM,wBAAwB,CAAC;AAEhC,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
@@ -2,10 +2,11 @@ import { Relationship } from "@vworlds/vecs";
2
2
  import type { Vec2 } from "../shapes/components.js";
3
3
  /**
4
4
  * Empty umbrella marker for every concrete joint type. A joint entity carries
5
- * exactly one of `RevoluteJoint`, `DistanceJoint`, `WeldJoint`, or `FilterJoint`;
6
- * each implements `Joint` so queries and systems can match any joint without
7
- * enumerating every concrete type. Holds the single Box2D handle, since every
8
- * joint type maps to exactly one `b2JointId`.
5
+ * exactly one of `RevoluteJoint`, `DistanceJoint`, `PrismaticJoint`,
6
+ * `WheelJoint`, `WeldJoint`, `FilterJoint`, or `MotorJoint`; each implements
7
+ * `Joint` so queries and systems can match any joint without enumerating every
8
+ * concrete type. Holds the single Box2D handle, since every joint type maps to
9
+ * exactly one `b2JointId`.
9
10
  */
10
11
  export declare abstract class Joint {
11
12
  }
@@ -31,7 +32,11 @@ export declare class JointBodyB extends Relationship {
31
32
  * `referenceAngle` is body B's angle relative to body A at rest (radians).
32
33
  *
33
34
  * Optional: a missing `JointFrame` anchors both bodies at their origins with a
34
- * zero reference angle. `DistanceJoint` ignores `referenceAngle`.
35
+ * zero reference angle. `DistanceJoint` and `FilterJoint` ignore
36
+ * `referenceAngle`. `PrismaticJoint` and `WheelJoint` read it instead as their
37
+ * sliding axis's angle in body A's local frame (0 = body A's local x-axis);
38
+ * `PrismaticJoint` additionally locks the bodies' relative angle at that value
39
+ * (like `WeldJoint`), while `WheelJoint` leaves rotation free.
35
40
  */
36
41
  export declare class JointFrame {
37
42
  localAnchorA: Vec2;
@@ -55,6 +60,26 @@ export declare class RevoluteJoint extends Joint {
55
60
  export declare class DistanceJoint extends Joint {
56
61
  length: number;
57
62
  }
63
+ /**
64
+ * Prismatic joint: locks the two bodies' relative angle (like {@link WeldJoint})
65
+ * but lets body B slide along one axis relative to body A. The axis is body A's
66
+ * local x-axis, rotated by {@link JointFrame.referenceAngle}. Add
67
+ * {@link JointMotor} to drive the slide (m/s, force), {@link JointLimit} to
68
+ * bound the translation (meters), or {@link JointLinearSpring} for a soft rest
69
+ * position along the axis.
70
+ */
71
+ export declare class PrismaticJoint extends Joint {
72
+ }
73
+ /**
74
+ * Wheel joint: like {@link PrismaticJoint} — body B slides along an axis fixed
75
+ * by {@link JointFrame.referenceAngle} — but leaves the bodies' relative
76
+ * rotation completely free (a wheel spinning on its axle) instead of locking
77
+ * it. Add {@link JointMotor} to drive that rotation (rad/s, torque, like
78
+ * {@link RevoluteJoint}), {@link JointLimit} to bound the suspension travel
79
+ * (meters), or {@link JointLinearSpring} for the suspension spring.
80
+ */
81
+ export declare class WheelJoint extends Joint {
82
+ }
58
83
  /**
59
84
  * Weld joint: rigidly fixes the two bodies' relative position and orientation
60
85
  * (at the reference angle). Add {@link JointLinearSpring} and/or
@@ -69,11 +94,44 @@ export declare class WeldJoint extends Joint {
69
94
  */
70
95
  export declare class FilterJoint extends Joint {
71
96
  }
97
+ /**
98
+ * Motor joint: drives body B toward a target pose relative to body A —
99
+ * {@link JointFrame}'s anchors and `referenceAngle` set that target — using a
100
+ * velocity-tracking motor and a positional spring that are both always active.
101
+ * Unlike every other joint type, Box2D has no enable flags for this behaviour,
102
+ * so it does not compose with {@link JointMotor}, {@link JointLimit},
103
+ * {@link JointLinearSpring}, or {@link JointAngularSpring}: it carries its own
104
+ * fields directly, mirroring `DistanceJoint.length`. Common use: kinematic-feel
105
+ * player or platform control that still collides normally.
106
+ */
107
+ export declare class MotorJoint extends Joint {
108
+ /** Target linear velocity of body B relative to body A (m/s), tracked by the velocity motor. */
109
+ linearVelocity: Vec2;
110
+ /** Maximum force (N) the velocity motor may use to track `linearVelocity`. */
111
+ maxVelocityForce: number;
112
+ /** Target angular velocity of body B relative to body A (rad/s), tracked by the velocity motor. */
113
+ angularVelocity: number;
114
+ /** Maximum torque (N·m) the velocity motor may use to track `angularVelocity`. */
115
+ maxVelocityTorque: number;
116
+ /** Linear spring stiffness (Hz) pulling body B toward the frame's target position. Zero disables the spring's pull, leaving only the velocity motor. */
117
+ linearHertz: number;
118
+ /** Linear spring damping ratio. */
119
+ linearDampingRatio: number;
120
+ /** Maximum force (N) the linear spring may use. */
121
+ maxSpringForce: number;
122
+ /** Angular spring stiffness (Hz) pulling body B toward the frame's reference angle. Zero disables the spring's pull, leaving only the velocity motor. */
123
+ angularHertz: number;
124
+ /** Angular spring damping ratio. */
125
+ angularDampingRatio: number;
126
+ /** Maximum torque (N·m) the angular spring may use. */
127
+ maxSpringTorque: number;
128
+ }
72
129
  /**
73
130
  * Optional motor feature. Present = motor enabled. Drives the joint toward
74
- * `targetSpeed` (rad/s for revolute, m/s for distance) bounded by `maxForce`
75
- * (interpreted as a torque for angular joints). Applies to `RevoluteJoint` and
76
- * `DistanceJoint`.
131
+ * `targetSpeed` bounded by `maxForce`. Angular joints (`RevoluteJoint`,
132
+ * `WheelJoint`) interpret this as rad/s and a torque; linear joints
133
+ * (`DistanceJoint`, `PrismaticJoint`) interpret it as m/s and a force. Does not
134
+ * apply to `WeldJoint`, `FilterJoint`, or `MotorJoint`.
77
135
  */
78
136
  export declare class JointMotor {
79
137
  targetSpeed: number;
@@ -81,8 +139,9 @@ export declare class JointMotor {
81
139
  }
82
140
  /**
83
141
  * Optional limit feature. Present = limit enabled. `lower`/`upper` are an angle
84
- * range (radians) for `RevoluteJoint` and a length range (meters) for
85
- * `DistanceJoint`.
142
+ * range (radians) for `RevoluteJoint` and a length/translation range (meters)
143
+ * for `DistanceJoint`, `PrismaticJoint`, and `WheelJoint`. Does not apply to
144
+ * `WeldJoint`, `FilterJoint`, or `MotorJoint`.
86
145
  */
87
146
  export declare class JointLimit {
88
147
  lower: number;
@@ -91,7 +150,8 @@ export declare class JointLimit {
91
150
  /**
92
151
  * Optional linear spring feature (soft constraint along the joint's linear axis).
93
152
  * Present = spring enabled. `hertz` is the stiffness frequency, `dampingRatio`
94
- * the damping. Applies to `DistanceJoint` and the linear axis of `WeldJoint`.
153
+ * the damping. Applies to `DistanceJoint`, `PrismaticJoint`, `WheelJoint`, and
154
+ * the linear axis of `WeldJoint`.
95
155
  */
96
156
  export declare class JointLinearSpring {
97
157
  hertz: number;
@@ -16,10 +16,11 @@
16
16
  import { Relationship } from "@vworlds/vecs";
17
17
  /**
18
18
  * Empty umbrella marker for every concrete joint type. A joint entity carries
19
- * exactly one of `RevoluteJoint`, `DistanceJoint`, `WeldJoint`, or `FilterJoint`;
20
- * each implements `Joint` so queries and systems can match any joint without
21
- * enumerating every concrete type. Holds the single Box2D handle, since every
22
- * joint type maps to exactly one `b2JointId`.
19
+ * exactly one of `RevoluteJoint`, `DistanceJoint`, `PrismaticJoint`,
20
+ * `WheelJoint`, `WeldJoint`, `FilterJoint`, or `MotorJoint`; each implements
21
+ * `Joint` so queries and systems can match any joint without enumerating every
22
+ * concrete type. Holds the single Box2D handle, since every joint type maps to
23
+ * exactly one `b2JointId`.
23
24
  */
24
25
  export class Joint {
25
26
  constructor() {
@@ -49,7 +50,11 @@ export class JointBodyB extends Relationship {
49
50
  * `referenceAngle` is body B's angle relative to body A at rest (radians).
50
51
  *
51
52
  * Optional: a missing `JointFrame` anchors both bodies at their origins with a
52
- * zero reference angle. `DistanceJoint` ignores `referenceAngle`.
53
+ * zero reference angle. `DistanceJoint` and `FilterJoint` ignore
54
+ * `referenceAngle`. `PrismaticJoint` and `WheelJoint` read it instead as their
55
+ * sliding axis's angle in body A's local frame (0 = body A's local x-axis);
56
+ * `PrismaticJoint` additionally locks the bodies' relative angle at that value
57
+ * (like `WeldJoint`), while `WheelJoint` leaves rotation free.
53
58
  */
54
59
  export class JointFrame {
55
60
  constructor() {
@@ -78,6 +83,26 @@ export class DistanceJoint extends Joint {
78
83
  this.length = 1;
79
84
  }
80
85
  }
86
+ /**
87
+ * Prismatic joint: locks the two bodies' relative angle (like {@link WeldJoint})
88
+ * but lets body B slide along one axis relative to body A. The axis is body A's
89
+ * local x-axis, rotated by {@link JointFrame.referenceAngle}. Add
90
+ * {@link JointMotor} to drive the slide (m/s, force), {@link JointLimit} to
91
+ * bound the translation (meters), or {@link JointLinearSpring} for a soft rest
92
+ * position along the axis.
93
+ */
94
+ export class PrismaticJoint extends Joint {
95
+ }
96
+ /**
97
+ * Wheel joint: like {@link PrismaticJoint} — body B slides along an axis fixed
98
+ * by {@link JointFrame.referenceAngle} — but leaves the bodies' relative
99
+ * rotation completely free (a wheel spinning on its axle) instead of locking
100
+ * it. Add {@link JointMotor} to drive that rotation (rad/s, torque, like
101
+ * {@link RevoluteJoint}), {@link JointLimit} to bound the suspension travel
102
+ * (meters), or {@link JointLinearSpring} for the suspension spring.
103
+ */
104
+ export class WheelJoint extends Joint {
105
+ }
81
106
  /**
82
107
  * Weld joint: rigidly fixes the two bodies' relative position and orientation
83
108
  * (at the reference angle). Add {@link JointLinearSpring} and/or
@@ -92,11 +117,47 @@ export class WeldJoint extends Joint {
92
117
  */
93
118
  export class FilterJoint extends Joint {
94
119
  }
120
+ /**
121
+ * Motor joint: drives body B toward a target pose relative to body A —
122
+ * {@link JointFrame}'s anchors and `referenceAngle` set that target — using a
123
+ * velocity-tracking motor and a positional spring that are both always active.
124
+ * Unlike every other joint type, Box2D has no enable flags for this behaviour,
125
+ * so it does not compose with {@link JointMotor}, {@link JointLimit},
126
+ * {@link JointLinearSpring}, or {@link JointAngularSpring}: it carries its own
127
+ * fields directly, mirroring `DistanceJoint.length`. Common use: kinematic-feel
128
+ * player or platform control that still collides normally.
129
+ */
130
+ export class MotorJoint extends Joint {
131
+ constructor() {
132
+ super(...arguments);
133
+ /** Target linear velocity of body B relative to body A (m/s), tracked by the velocity motor. */
134
+ this.linearVelocity = { x: 0, y: 0 };
135
+ /** Maximum force (N) the velocity motor may use to track `linearVelocity`. */
136
+ this.maxVelocityForce = 0;
137
+ /** Target angular velocity of body B relative to body A (rad/s), tracked by the velocity motor. */
138
+ this.angularVelocity = 0;
139
+ /** Maximum torque (N·m) the velocity motor may use to track `angularVelocity`. */
140
+ this.maxVelocityTorque = 0;
141
+ /** Linear spring stiffness (Hz) pulling body B toward the frame's target position. Zero disables the spring's pull, leaving only the velocity motor. */
142
+ this.linearHertz = 0;
143
+ /** Linear spring damping ratio. */
144
+ this.linearDampingRatio = 0;
145
+ /** Maximum force (N) the linear spring may use. */
146
+ this.maxSpringForce = 0;
147
+ /** Angular spring stiffness (Hz) pulling body B toward the frame's reference angle. Zero disables the spring's pull, leaving only the velocity motor. */
148
+ this.angularHertz = 0;
149
+ /** Angular spring damping ratio. */
150
+ this.angularDampingRatio = 0;
151
+ /** Maximum torque (N·m) the angular spring may use. */
152
+ this.maxSpringTorque = 0;
153
+ }
154
+ }
95
155
  /**
96
156
  * Optional motor feature. Present = motor enabled. Drives the joint toward
97
- * `targetSpeed` (rad/s for revolute, m/s for distance) bounded by `maxForce`
98
- * (interpreted as a torque for angular joints). Applies to `RevoluteJoint` and
99
- * `DistanceJoint`.
157
+ * `targetSpeed` bounded by `maxForce`. Angular joints (`RevoluteJoint`,
158
+ * `WheelJoint`) interpret this as rad/s and a torque; linear joints
159
+ * (`DistanceJoint`, `PrismaticJoint`) interpret it as m/s and a force. Does not
160
+ * apply to `WeldJoint`, `FilterJoint`, or `MotorJoint`.
100
161
  */
101
162
  export class JointMotor {
102
163
  constructor() {
@@ -106,8 +167,9 @@ export class JointMotor {
106
167
  }
107
168
  /**
108
169
  * Optional limit feature. Present = limit enabled. `lower`/`upper` are an angle
109
- * range (radians) for `RevoluteJoint` and a length range (meters) for
110
- * `DistanceJoint`.
170
+ * range (radians) for `RevoluteJoint` and a length/translation range (meters)
171
+ * for `DistanceJoint`, `PrismaticJoint`, and `WheelJoint`. Does not apply to
172
+ * `WeldJoint`, `FilterJoint`, or `MotorJoint`.
111
173
  */
112
174
  export class JointLimit {
113
175
  constructor() {
@@ -118,7 +180,8 @@ export class JointLimit {
118
180
  /**
119
181
  * Optional linear spring feature (soft constraint along the joint's linear axis).
120
182
  * Present = spring enabled. `hertz` is the stiffness frequency, `dampingRatio`
121
- * the damping. Applies to `DistanceJoint` and the linear axis of `WeldJoint`.
183
+ * the damping. Applies to `DistanceJoint`, `PrismaticJoint`, `WheelJoint`, and
184
+ * the linear axis of `WeldJoint`.
122
185
  */
123
186
  export class JointLinearSpring {
124
187
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../../src/joints/components.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,kFAAkF;AAClF,EAAE;AACF,kFAAkF;AAClF,sEAAsE;AACtE,mFAAmF;AACnF,kFAAkF;AAClF,iFAAiF;AACjF,4DAA4D;AAC5D,EAAE;AACF,gFAAgF;AAChF,kFAAkF;AAClF,wFAAwF;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAK7C;;;;;;GAMG;AACH,MAAM,OAAgB,KAAK;IAA3B;QACE,oFAAoF;QACpF,aAAQ,GAA0B,SAAS,CAAC;IAC9C,CAAC;CAAA;AAED;;;;;GAKG;AACH,MAAM,OAAO,UAAW,SAAQ,YAAY;CAAG;AAE/C;;;;;GAKG;AACH,MAAM,OAAO,UAAW,SAAQ,YAAY;CAAG;AAE/C;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;IAAvB;QACE,iBAAY,GAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACpC,iBAAY,GAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACpC,mBAAc,GAAG,CAAC,CAAC;IACrB,CAAC;CAAA;AAED;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;CAAG;AAE3C;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAAxC;;QACE,WAAM,GAAG,CAAC,CAAC;IACb,CAAC;CAAA;AAED;;;;GAIG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;CAAG;AAEvC;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;CAAG;AAEzC;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IAAvB;QACE,gBAAW,GAAG,CAAC,CAAC;QAChB,aAAQ,GAAG,CAAC,CAAC;IACf,CAAC;CAAA;AAED;;;;GAIG;AACH,MAAM,OAAO,UAAU;IAAvB;QACE,UAAK,GAAG,CAAC,CAAC;QACV,UAAK,GAAG,CAAC,CAAC;IACZ,CAAC;CAAA;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IAA9B;QACE,UAAK,GAAG,CAAC,CAAC;QACV,iBAAY,GAAG,CAAC,CAAC;IACnB,CAAC;CAAA;AAED;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAA/B;QACE,UAAK,GAAG,CAAC,CAAC;QACV,iBAAY,GAAG,CAAC,CAAC;IACnB,CAAC;CAAA;AAED;;;GAGG;AACH,MAAM,OAAO,aAAa;IAA1B;QACE,qBAAgB,GAAG,KAAK,CAAC;IAC3B,CAAC;CAAA"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../../src/joints/components.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  // destroyed) by the time a callback runs.
11
11
  import { Module } from "@vworlds/vecs";
12
12
  import { getPhysicsEngine, PhysicsSystemTag, } from "../adapter/engine.js";
13
- import { DistanceJoint, Joint, JointAngularSpring, JointLimit, JointLinearSpring, JointMotor, RevoluteJoint, WeldJoint, } from "./components.js";
13
+ import { DistanceJoint, Joint, JointAngularSpring, JointLimit, JointLinearSpring, JointMotor, PrismaticJoint, RevoluteJoint, WeldJoint, WheelJoint, } from "./components.js";
14
14
  import { PhysicsCoreModule } from "../core/module.js";
15
15
  import { jointWithBothBodies } from "./predicates.js";
16
16
  export class JointFeaturesModule extends Module {
@@ -87,6 +87,16 @@ function applyMotor(box2d, joint, jointId, motor) {
87
87
  box2d.b2DistanceJoint_SetMotorSpeed(jointId, motor.targetSpeed);
88
88
  box2d.b2DistanceJoint_SetMaxMotorForce(jointId, motor.maxForce);
89
89
  }
90
+ else if (joint instanceof PrismaticJoint) {
91
+ box2d.b2PrismaticJoint_EnableMotor(jointId, true);
92
+ box2d.b2PrismaticJoint_SetMotorSpeed(jointId, motor.targetSpeed);
93
+ box2d.b2PrismaticJoint_SetMaxMotorForce(jointId, motor.maxForce);
94
+ }
95
+ else if (joint instanceof WheelJoint) {
96
+ box2d.b2WheelJoint_EnableMotor(jointId, true);
97
+ box2d.b2WheelJoint_SetMotorSpeed(jointId, motor.targetSpeed);
98
+ box2d.b2WheelJoint_SetMaxMotorTorque(jointId, motor.maxForce);
99
+ }
90
100
  }
91
101
  function disableMotor(box2d, joint, jointId) {
92
102
  if (joint instanceof RevoluteJoint) {
@@ -95,6 +105,12 @@ function disableMotor(box2d, joint, jointId) {
95
105
  else if (joint instanceof DistanceJoint) {
96
106
  box2d.b2DistanceJoint_EnableMotor(jointId, false);
97
107
  }
108
+ else if (joint instanceof PrismaticJoint) {
109
+ box2d.b2PrismaticJoint_EnableMotor(jointId, false);
110
+ }
111
+ else if (joint instanceof WheelJoint) {
112
+ box2d.b2WheelJoint_EnableMotor(jointId, false);
113
+ }
98
114
  }
99
115
  function applyLimit(box2d, joint, jointId, limit) {
100
116
  if (joint instanceof RevoluteJoint) {
@@ -105,6 +121,14 @@ function applyLimit(box2d, joint, jointId, limit) {
105
121
  box2d.b2DistanceJoint_EnableLimit(jointId, true);
106
122
  box2d.b2DistanceJoint_SetLengthRange(jointId, limit.lower, limit.upper);
107
123
  }
124
+ else if (joint instanceof PrismaticJoint) {
125
+ box2d.b2PrismaticJoint_EnableLimit(jointId, true);
126
+ box2d.b2PrismaticJoint_SetLimits(jointId, limit.lower, limit.upper);
127
+ }
128
+ else if (joint instanceof WheelJoint) {
129
+ box2d.b2WheelJoint_EnableLimit(jointId, true);
130
+ box2d.b2WheelJoint_SetLimits(jointId, limit.lower, limit.upper);
131
+ }
108
132
  }
109
133
  function disableLimit(box2d, joint, jointId) {
110
134
  if (joint instanceof RevoluteJoint) {
@@ -113,6 +137,12 @@ function disableLimit(box2d, joint, jointId) {
113
137
  else if (joint instanceof DistanceJoint) {
114
138
  box2d.b2DistanceJoint_EnableLimit(jointId, false);
115
139
  }
140
+ else if (joint instanceof PrismaticJoint) {
141
+ box2d.b2PrismaticJoint_EnableLimit(jointId, false);
142
+ }
143
+ else if (joint instanceof WheelJoint) {
144
+ box2d.b2WheelJoint_EnableLimit(jointId, false);
145
+ }
116
146
  }
117
147
  function applyLinearSpring(box2d, joint, jointId, spring) {
118
148
  if (joint instanceof DistanceJoint) {
@@ -120,6 +150,16 @@ function applyLinearSpring(box2d, joint, jointId, spring) {
120
150
  box2d.b2DistanceJoint_SetSpringHertz(jointId, spring.hertz);
121
151
  box2d.b2DistanceJoint_SetSpringDampingRatio(jointId, spring.dampingRatio);
122
152
  }
153
+ else if (joint instanceof PrismaticJoint) {
154
+ box2d.b2PrismaticJoint_EnableSpring(jointId, true);
155
+ box2d.b2PrismaticJoint_SetSpringHertz(jointId, spring.hertz);
156
+ box2d.b2PrismaticJoint_SetSpringDampingRatio(jointId, spring.dampingRatio);
157
+ }
158
+ else if (joint instanceof WheelJoint) {
159
+ box2d.b2WheelJoint_EnableSpring(jointId, true);
160
+ box2d.b2WheelJoint_SetSpringHertz(jointId, spring.hertz);
161
+ box2d.b2WheelJoint_SetSpringDampingRatio(jointId, spring.dampingRatio);
162
+ }
123
163
  else if (joint instanceof WeldJoint) {
124
164
  box2d.b2WeldJoint_SetLinearHertz(jointId, spring.hertz);
125
165
  box2d.b2WeldJoint_SetLinearDampingRatio(jointId, spring.dampingRatio);
@@ -129,6 +169,12 @@ function disableLinearSpring(box2d, joint, jointId) {
129
169
  if (joint instanceof DistanceJoint) {
130
170
  box2d.b2DistanceJoint_EnableSpring(jointId, false);
131
171
  }
172
+ else if (joint instanceof PrismaticJoint) {
173
+ box2d.b2PrismaticJoint_EnableSpring(jointId, false);
174
+ }
175
+ else if (joint instanceof WheelJoint) {
176
+ box2d.b2WheelJoint_EnableSpring(jointId, false);
177
+ }
132
178
  else if (joint instanceof WeldJoint) {
133
179
  // A weld has no spring enable flag; zero hertz is a rigid weld.
134
180
  box2d.b2WeldJoint_SetLinearHertz(jointId, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../../../src/joints/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../../../src/joints/features.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@
14
14
  import { Module } from "@vworlds/vecs";
15
15
  import { getPhysicsEngine, PhysicsSystemTag, } from "../adapter/engine.js";
16
16
  import { Body } from "../body/components.js";
17
- import { DistanceJoint, FilterJoint, Joint, JointAngularSpring, JointBodyA, JointBodyB, JointFrame, JointLimit, JointLinearSpring, JointMotor, JointSettings, RevoluteJoint, WeldJoint, } from "./components.js";
17
+ import { DistanceJoint, FilterJoint, Joint, JointAngularSpring, JointBodyA, JointBodyB, JointFrame, JointLimit, JointLinearSpring, JointMotor, JointSettings, MotorJoint, PrismaticJoint, RevoluteJoint, WeldJoint, WheelJoint, } from "./components.js";
18
18
  import { withAllocated } from "../adapter/disposal.js";
19
19
  import { PhysicsCoreModule } from "../core/module.js";
20
20
  import { jointWithBothBodies } from "./predicates.js";
@@ -180,12 +180,75 @@ function createBox2dJoint(engine, entity, joint, bodyAId, bodyBId) {
180
180
  return box2d.b2CreateWeldJoint(engine.worldId, def);
181
181
  });
182
182
  }
183
+ if (joint instanceof PrismaticJoint) {
184
+ return withAllocated(box2d.b2DefaultPrismaticJointDef, (def) => {
185
+ applyBase(def.base);
186
+ if (motor !== undefined) {
187
+ def.enableMotor = true;
188
+ def.motorSpeed = motor.targetSpeed;
189
+ def.maxMotorForce = motor.maxForce;
190
+ }
191
+ if (limit !== undefined) {
192
+ def.enableLimit = true;
193
+ def.lowerTranslation = limit.lower;
194
+ def.upperTranslation = limit.upper;
195
+ }
196
+ if (linearSpring !== undefined) {
197
+ def.enableSpring = true;
198
+ def.hertz = linearSpring.hertz;
199
+ def.dampingRatio = linearSpring.dampingRatio;
200
+ }
201
+ return box2d.b2CreatePrismaticJoint(engine.worldId, def);
202
+ });
203
+ }
204
+ if (joint instanceof WheelJoint) {
205
+ return withAllocated(box2d.b2DefaultWheelJointDef, (def) => {
206
+ applyBase(def.base);
207
+ if (motor !== undefined) {
208
+ def.enableMotor = true;
209
+ def.motorSpeed = motor.targetSpeed;
210
+ def.maxMotorTorque = motor.maxForce;
211
+ }
212
+ if (limit !== undefined) {
213
+ def.enableLimit = true;
214
+ def.lowerTranslation = limit.lower;
215
+ def.upperTranslation = limit.upper;
216
+ }
217
+ if (linearSpring !== undefined) {
218
+ def.enableSpring = true;
219
+ def.hertz = linearSpring.hertz;
220
+ def.dampingRatio = linearSpring.dampingRatio;
221
+ }
222
+ return box2d.b2CreateWheelJoint(engine.worldId, def);
223
+ });
224
+ }
183
225
  if (joint instanceof FilterJoint) {
184
226
  return withAllocated(box2d.b2DefaultFilterJointDef, (def) => {
185
227
  applyBase(def.base);
186
228
  return box2d.b2CreateFilterJoint(engine.worldId, def);
187
229
  });
188
230
  }
231
+ if (joint instanceof MotorJoint) {
232
+ return withAllocated(box2d.b2DefaultMotorJointDef, (def) => {
233
+ applyBase(def.base);
234
+ // Unlike `base.localFrameA.p`, `def.linearVelocity` is a plain value
235
+ // property, not a mutable reference: `.Set(...)` on the getter's result
236
+ // is silently discarded. Assign a real (copied-by-value) `b2Vec2` instead.
237
+ withAllocated(() => new box2d.b2Vec2(joint.linearVelocity.x, joint.linearVelocity.y), (linearVelocity) => {
238
+ def.linearVelocity = linearVelocity;
239
+ });
240
+ def.maxVelocityForce = joint.maxVelocityForce;
241
+ def.angularVelocity = joint.angularVelocity;
242
+ def.maxVelocityTorque = joint.maxVelocityTorque;
243
+ def.linearHertz = joint.linearHertz;
244
+ def.linearDampingRatio = joint.linearDampingRatio;
245
+ def.maxSpringForce = joint.maxSpringForce;
246
+ def.angularHertz = joint.angularHertz;
247
+ def.angularDampingRatio = joint.angularDampingRatio;
248
+ def.maxSpringTorque = joint.maxSpringTorque;
249
+ return box2d.b2CreateMotorJoint(engine.worldId, def);
250
+ });
251
+ }
189
252
  return undefined;
190
253
  }
191
254
  //# sourceMappingURL=lifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../../src/joints/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../../src/joints/lifecycle.ts"],"names":[],"mappings":"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"}
package/joints/module.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Implements, Module } from "@vworlds/vecs";
2
2
  import { BodyModule } from "../body/module.js";
3
3
  import { PhysicsCoreModule } from "../core/module.js";
4
- import { DistanceJoint, FilterJoint, Joint, JointAngularSpring, JointBodyA, JointBodyB, JointFrame, JointLimit, JointLinearSpring, JointMotor, JointSettings, RevoluteJoint, WeldJoint, } from "./components.js";
4
+ import { DistanceJoint, FilterJoint, Joint, JointAngularSpring, JointBodyA, JointBodyB, JointFrame, JointLimit, JointLinearSpring, JointMotor, JointSettings, MotorJoint, PrismaticJoint, RevoluteJoint, WeldJoint, WheelJoint, } from "./components.js";
5
5
  import { JointFeaturesModule } from "./features.js";
6
6
  import { JointLifecycleModule } from "./lifecycle.js";
7
7
  export class JointsModule extends Module {
@@ -14,8 +14,11 @@ export class JointsModule extends Module {
14
14
  world.component(Joint);
15
15
  world.component(RevoluteJoint);
16
16
  world.component(DistanceJoint);
17
+ world.component(PrismaticJoint);
18
+ world.component(WheelJoint);
17
19
  world.component(WeldJoint);
18
20
  world.component(FilterJoint);
21
+ world.component(MotorJoint);
19
22
  world.component(JointFrame);
20
23
  world.component(JointMotor);
21
24
  world.component(JointLimit);
@@ -24,8 +27,11 @@ export class JointsModule extends Module {
24
27
  world.component(JointSettings);
25
28
  world.component(RevoluteJoint).set(Implements, { interfaces: [Joint] });
26
29
  world.component(DistanceJoint).set(Implements, { interfaces: [Joint] });
30
+ world.component(PrismaticJoint).set(Implements, { interfaces: [Joint] });
31
+ world.component(WheelJoint).set(Implements, { interfaces: [Joint] });
27
32
  world.component(WeldJoint).set(Implements, { interfaces: [Joint] });
28
33
  world.component(FilterJoint).set(Implements, { interfaces: [Joint] });
34
+ world.component(MotorJoint).set(Implements, { interfaces: [Joint] });
29
35
  world.module(JointLifecycleModule);
30
36
  world.module(JointFeaturesModule);
31
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/joints/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,aAAa,EACb,WAAW,EACX,KAAK,EACL,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,GACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,OAAO,YAAa,SAAQ,MAAM;IAC/B,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAChC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEzB,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5B,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5B,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvB,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC/B,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC/B,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3B,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5B,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5B,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5B,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACnC,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACpC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAE/B,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEtE,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACnC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/joints/module.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vworlds/vecs-physics",
3
- "version": "1.0.38",
3
+ "version": "1.0.40",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -15,7 +15,7 @@
15
15
  "url": "git+https://github.com/vworlds/vecs.git"
16
16
  },
17
17
  "dependencies": {
18
- "@vworlds/vecs": "1.0.38",
18
+ "@vworlds/vecs": "1.0.40",
19
19
  "box2d3-wasm": "^5.2.0"
20
20
  },
21
21
  "license": "MIT"