@flighthq/physics3d 0.4.0-next.1752.f250cb9 → 0.4.0-next.1771.f4d15c3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"colliderTransform.d.ts","sourceRoot":"","sources":["../src/colliderTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKvH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAmCnH;AAUD,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CA+EhH;AAMD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAmG5G"}
1
+ {"version":3,"file":"colliderTransform.d.ts","sourceRoot":"","sources":["../src/colliderTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKvH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAyDnH;AAUD,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAyGhH;AAMD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAmI5G"}
@@ -31,6 +31,28 @@ export function createPhysics3DColliderWorldShape(local) {
31
31
  z1: local.z1,
32
32
  radius: local.radius,
33
33
  };
34
+ case 'cylinder':
35
+ return {
36
+ kind: 'cylinder',
37
+ x0: local.x0,
38
+ y0: local.y0,
39
+ z0: local.z0,
40
+ x1: local.x1,
41
+ y1: local.y1,
42
+ z1: local.z1,
43
+ radius: local.radius,
44
+ };
45
+ case 'cone':
46
+ return {
47
+ kind: 'cone',
48
+ apexX: local.apexX,
49
+ apexY: local.apexY,
50
+ apexZ: local.apexZ,
51
+ baseX: local.baseX,
52
+ baseY: local.baseY,
53
+ baseZ: local.baseZ,
54
+ radius: local.radius,
55
+ };
34
56
  case 'convex':
35
57
  return { kind: 'convex', points: local.points.slice() };
36
58
  default:
@@ -109,6 +131,30 @@ export function updatePhysics3DColliderWorldShape(collider, body) {
109
131
  world.radius = local.radius;
110
132
  return;
111
133
  }
134
+ if (local.kind === 'cylinder' && world.kind === 'cylinder') {
135
+ rotatePhysics3DPoint(qX, qY, qZ, qW, local.x0, local.y0, local.z0, scratchPoint);
136
+ world.x0 = body.x + scratchPoint[0];
137
+ world.y0 = body.y + scratchPoint[1];
138
+ world.z0 = body.z + scratchPoint[2];
139
+ rotatePhysics3DPoint(qX, qY, qZ, qW, local.x1, local.y1, local.z1, scratchPoint);
140
+ world.x1 = body.x + scratchPoint[0];
141
+ world.y1 = body.y + scratchPoint[1];
142
+ world.z1 = body.z + scratchPoint[2];
143
+ world.radius = local.radius;
144
+ return;
145
+ }
146
+ if (local.kind === 'cone' && world.kind === 'cone') {
147
+ rotatePhysics3DPoint(qX, qY, qZ, qW, local.apexX, local.apexY, local.apexZ, scratchPoint);
148
+ world.apexX = body.x + scratchPoint[0];
149
+ world.apexY = body.y + scratchPoint[1];
150
+ world.apexZ = body.z + scratchPoint[2];
151
+ rotatePhysics3DPoint(qX, qY, qZ, qW, local.baseX, local.baseY, local.baseZ, scratchPoint);
152
+ world.baseX = body.x + scratchPoint[0];
153
+ world.baseY = body.y + scratchPoint[1];
154
+ world.baseZ = body.z + scratchPoint[2];
155
+ world.radius = local.radius;
156
+ return;
157
+ }
112
158
  if (local.kind === 'convex' && world.kind === 'convex') {
113
159
  const source = local.points;
114
160
  const target = world.points;
@@ -179,6 +225,32 @@ export function writePhysics3DColliderBounds(collider, out) {
179
225
  out.maxY = Math.max(shape.y0, shape.y1) + shape.radius;
180
226
  out.maxZ = Math.max(shape.z0, shape.z1) + shape.radius;
181
227
  return;
228
+ case 'cylinder': {
229
+ // A cylinder's cap is a DISC, not a sphere, so its extent along each axis is `radius` reduced by
230
+ // how much the axis lies along the cylinder's own. Padding by the full radius the way the capsule
231
+ // above does is valid but loose — an axis-aligned cylinder would claim a bounding box a full
232
+ // radius too tall, and every extra unit is broadphase pairs the narrow phase then has to reject.
233
+ writeDiscExtent(shape.x1 - shape.x0, shape.y1 - shape.y0, shape.z1 - shape.z0, shape.radius, scratchExtent);
234
+ out.minX = Math.min(shape.x0, shape.x1) - scratchExtent[0];
235
+ out.minY = Math.min(shape.y0, shape.y1) - scratchExtent[1];
236
+ out.minZ = Math.min(shape.z0, shape.z1) - scratchExtent[2];
237
+ out.maxX = Math.max(shape.x0, shape.x1) + scratchExtent[0];
238
+ out.maxY = Math.max(shape.y0, shape.y1) + scratchExtent[1];
239
+ out.maxZ = Math.max(shape.z0, shape.z1) + scratchExtent[2];
240
+ return;
241
+ }
242
+ case 'cone': {
243
+ // The union of a point and a disc: the apex contributes no extent at all, so padding it the way
244
+ // the base is padded would describe a cylinder rather than a cone.
245
+ writeDiscExtent(shape.baseX - shape.apexX, shape.baseY - shape.apexY, shape.baseZ - shape.apexZ, shape.radius, scratchExtent);
246
+ out.minX = Math.min(shape.apexX, shape.baseX - scratchExtent[0]);
247
+ out.minY = Math.min(shape.apexY, shape.baseY - scratchExtent[1]);
248
+ out.minZ = Math.min(shape.apexZ, shape.baseZ - scratchExtent[2]);
249
+ out.maxX = Math.max(shape.apexX, shape.baseX + scratchExtent[0]);
250
+ out.maxY = Math.max(shape.apexY, shape.baseY + scratchExtent[1]);
251
+ out.maxZ = Math.max(shape.apexZ, shape.baseZ + scratchExtent[2]);
252
+ return;
253
+ }
182
254
  case 'convex': {
183
255
  const points = shape.points;
184
256
  if (points.length < 3) {
@@ -241,5 +313,31 @@ function rotatePhysics3DPoint(qX, qY, qZ, qW, x, y, z, out) {
241
313
  out[1] = y + qW * tY + qZ * tX - qX * tZ;
242
314
  out[2] = z + qW * tZ + qX * tY - qY * tX;
243
315
  }
316
+ // The per-axis half-extent of a disc of `radius` whose plane normal is `axis`, written as `[x, y, z]`.
317
+ //
318
+ // A disc reaches its full radius along an axis only when that axis lies IN its plane; along its own
319
+ // normal it reaches nothing. `sqrt(1 - component^2)` is exactly that falloff, with `component` the
320
+ // direction cosine between the world axis and the disc's normal. A degenerate (zero) axis has no plane,
321
+ // so the full radius is returned on every axis — the conservative answer, matching what validation
322
+ // would have rejected anyway.
323
+ function writeDiscExtent(axisX, axisY, axisZ, radius, out) {
324
+ const lengthSquared = axisX * axisX + axisY * axisY + axisZ * axisZ;
325
+ if (lengthSquared <= 0) {
326
+ out[0] = radius;
327
+ out[1] = radius;
328
+ out[2] = radius;
329
+ return;
330
+ }
331
+ const inverse = 1 / Math.sqrt(lengthSquared);
332
+ const nx = axisX * inverse;
333
+ const ny = axisY * inverse;
334
+ const nz = axisZ * inverse;
335
+ // Clamped at zero because 1 - n^2 can land a few ulps below it when the axis is exactly cardinal, and
336
+ // Math.sqrt of a negative would put NaN into a broadphase bound.
337
+ out[0] = radius * Math.sqrt(Math.max(0, 1 - nx * nx));
338
+ out[1] = radius * Math.sqrt(Math.max(0, 1 - ny * ny));
339
+ out[2] = radius * Math.sqrt(Math.max(0, 1 - nz * nz));
340
+ }
341
+ const scratchExtent = [0, 0, 0];
244
342
  const scratchPoint = [0, 0, 0];
245
343
  //# sourceMappingURL=colliderTransform.js.map
@@ -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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"}
@@ -79,6 +79,25 @@ function writeCollider(out, shape, body) {
79
79
  writeLine(out, 'collider', body.index, -1, scratchAnchorA[0], scratchAnchorA[1], scratchAnchorA[2], scratchAnchorB[0], scratchAnchorB[1], scratchAnchorB[2]);
80
80
  return;
81
81
  }
82
+ case 'cylinder': {
83
+ // The axis plus a ring at each cap. No spheres, unlike the capsule above — drawing one would show
84
+ // the rounded ends the cylinder deliberately does not have, and the two kinds would look identical
85
+ // in a debug view precisely where they differ.
86
+ writeBodyPoint(body, shape.x0, shape.y0, shape.z0, scratchAnchorA);
87
+ writeBodyPoint(body, shape.x1, shape.y1, shape.z1, scratchAnchorB);
88
+ writeAxialRing(out, body.index, scratchAnchorA, scratchAnchorB, shape.radius, 0);
89
+ writeAxialRing(out, body.index, scratchAnchorA, scratchAnchorB, shape.radius, 1);
90
+ writeLine(out, 'collider', body.index, -1, scratchAnchorA[0], scratchAnchorA[1], scratchAnchorA[2], scratchAnchorB[0], scratchAnchorB[1], scratchAnchorB[2]);
91
+ return;
92
+ }
93
+ case 'cone': {
94
+ // The base ring, plus the axis out to the apex. The apex is a point and needs no ring of its own.
95
+ writeBodyPoint(body, shape.apexX, shape.apexY, shape.apexZ, scratchAnchorA);
96
+ writeBodyPoint(body, shape.baseX, shape.baseY, shape.baseZ, scratchAnchorB);
97
+ writeAxialRing(out, body.index, scratchAnchorA, scratchAnchorB, shape.radius, 1);
98
+ writeLine(out, 'collider', body.index, -1, scratchAnchorA[0], scratchAnchorA[1], scratchAnchorA[2], scratchAnchorB[0], scratchAnchorB[1], scratchAnchorB[2]);
99
+ return;
100
+ }
82
101
  case 'convex': {
83
102
  // The hull's own triangulation, derived rather than stored: `CollisionConvex3D` carries no edges,
84
103
  // and drawing a guessed edge set would show a solid the simulation does not have. Each triangle
@@ -193,6 +212,61 @@ const BOX_EDGES = [
193
212
  [3, 7],
194
213
  ];
195
214
  const HULL_VERTEX_RADIUS = 0.02;
215
+ // A closed ring of `RING_SEGMENTS` line segments around the axis from `start` to `end`, at parameter
216
+ // `t` along it. Used for the flat caps a cylinder and a cone have and a capsule does not.
217
+ //
218
+ // The two in-plane basis vectors come from crossing the axis with whichever cardinal direction it leans
219
+ // on LEAST, so the cross product never collapses — the same rule the collision core uses to pick a
220
+ // perpendicular, and for the same reason: crossing with a fixed axis fails exactly when the shape is
221
+ // aligned to it, which is the common case rather than a rare one.
222
+ function writeAxialRing(out, bodyIndex, start, end, radius, t) {
223
+ const axisX = end[0] - start[0];
224
+ const axisY = end[1] - start[1];
225
+ const axisZ = end[2] - start[2];
226
+ const length = Math.sqrt(axisX * axisX + axisY * axisY + axisZ * axisZ);
227
+ if (!(length > 0))
228
+ return;
229
+ const unitX = axisX / length;
230
+ const unitY = axisY / length;
231
+ const unitZ = axisZ / length;
232
+ const absX = Math.abs(unitX);
233
+ const absY = Math.abs(unitY);
234
+ const absZ = Math.abs(unitZ);
235
+ const pickX = absX <= absY && absX <= absZ ? 1 : 0;
236
+ const pickY = pickX === 0 && absY <= absZ ? 1 : 0;
237
+ const pickZ = pickX === 0 && pickY === 0 ? 1 : 0;
238
+ let uX = unitY * pickZ - unitZ * pickY;
239
+ let uY = unitZ * pickX - unitX * pickZ;
240
+ let uZ = unitX * pickY - unitY * pickX;
241
+ const uLength = Math.sqrt(uX * uX + uY * uY + uZ * uZ);
242
+ if (!(uLength > 0))
243
+ return;
244
+ uX /= uLength;
245
+ uY /= uLength;
246
+ uZ /= uLength;
247
+ const vX = unitY * uZ - unitZ * uY;
248
+ const vY = unitZ * uX - unitX * uZ;
249
+ const vZ = unitX * uY - unitY * uX;
250
+ const centerX = start[0] + axisX * t;
251
+ const centerY = start[1] + axisY * t;
252
+ const centerZ = start[2] + axisZ * t;
253
+ let previousX = centerX + uX * radius;
254
+ let previousY = centerY + uY * radius;
255
+ let previousZ = centerZ + uZ * radius;
256
+ for (let i = 1; i <= RING_SEGMENTS; i += 1) {
257
+ const angle = (i / RING_SEGMENTS) * Math.PI * 2;
258
+ const cos = Math.cos(angle) * radius;
259
+ const sin = Math.sin(angle) * radius;
260
+ const nextX = centerX + uX * cos + vX * sin;
261
+ const nextY = centerY + uY * cos + vY * sin;
262
+ const nextZ = centerZ + uZ * cos + vZ * sin;
263
+ writeLine(out, 'collider', bodyIndex, -1, previousX, previousY, previousZ, nextX, nextY, nextZ);
264
+ previousX = nextX;
265
+ previousY = nextY;
266
+ previousZ = nextZ;
267
+ }
268
+ }
269
+ const RING_SEGMENTS = 16;
196
270
  const scratchAnchorA = [0, 0, 0];
197
271
  const scratchAnchorB = [0, 0, 0];
198
272
  const scratchCenter = [0, 0, 0];
@@ -1 +1 @@
1
- {"version":3,"file":"debugGeometry.js","sourceRoot":"","sources":["../src/debugGeometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debugGeometry.js","sourceRoot":"","sources":["../src/debugGeometry.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,12 +8,12 @@ export { isPhysics3DPairJointSuppressed } from './jointCollisionSuppression';
8
8
  export { createPhysics3DBallAndSocketJoint, createPhysics3DConeTwistJoint, createPhysics3DDistanceJoint, createPhysics3DFixedJoint, createPhysics3DGeneric6DofJoint, createPhysics3DHingeJoint, createPhysics3DSliderJoint, } from './jointFactories';
9
9
  export { addPhysics3DJoint, getPhysics3DJointSolver, invalidatePhysics3DJoint, registerPhysics3DJointSolver, removePhysics3DJoint, } from './jointRegistry';
10
10
  export { physics3DBallAndSocketJointSolver, physics3DConeTwistJointSolver, physics3DDistanceJointSolver, physics3DFixedJointSolver, physics3DGeneric6DofJointSolver, physics3DHingeJointSolver, physics3DSliderJointSolver, Physics3DBallAndSocketJointKind, Physics3DConeTwistJointKind, Physics3DDistanceJointKind, Physics3DFixedJointKind, Physics3DGeneric6DofJointKind, Physics3DHingeJointKind, Physics3DSliderJointKind, } from './joints';
11
- export { combinePhysics3DMassData, computePhysics3DBoxMassData, computePhysics3DCapsuleMassData, computePhysics3DColliderMassData, computePhysics3DConvexHullMassData, computePhysics3DSphereMassData, createPhysics3DMassData, setRigidBody3DMassData, updateRigidBody3DMassData, } from './massProperties';
11
+ export { combinePhysics3DMassData, computePhysics3DBoxMassData, computePhysics3DCapsuleMassData, computePhysics3DConeMassData, computePhysics3DCylinderMassData, computePhysics3DColliderMassData, computePhysics3DConvexHullMassData, computePhysics3DSphereMassData, createPhysics3DMassData, setRigidBody3DMassData, updateRigidBody3DMassData, } from './massProperties';
12
12
  export { mixPhysics3DFriction, mixPhysics3DRestitution } from './material';
13
13
  export { registerBuiltInPhysics3DJointSolvers } from './registerBuiltInPhysics3DJointSolvers';
14
14
  export { stepPhysics3D, stepPhysics3DInterval } from './step';
15
15
  export { addPhysics3DBody, addPhysics3DCollider, applyPhysics3DForce, applyPhysics3DForceAtPoint, applyPhysics3DLinearImpulse, applyPhysics3DTorque, createPhysics3DCollider, createPhysics3DSequentialImpulseConfig, createPhysics3DSolverConfig, createPhysics3DWorld, createRigidBody3D, findPhysics3DBody, invalidatePhysics3DCollider, Physics3DWorldVersion, removePhysics3DBody, removePhysics3DCollider, setPhysics3DBodyFixedRotation, setPhysics3DBodyTransform, setPhysics3DBodyType, wakePhysics3DBody, writeRigidBody3DWorldCenter, } from './world';
16
- export { createPhysics3DQueryFilter, createPhysics3DQueryResult, createPhysics3DRayResult, queryPhysics3DPoint, queryPhysics3DRay, queryPhysics3DRayClosest, queryPhysics3DRegion, } from './worldQueries';
16
+ export { createPhysics3DQueryFilter, createPhysics3DQueryResult, createPhysics3DRayResult, createPhysics3DShapeCastResult, queryPhysics3DPoint, queryPhysics3DRay, queryPhysics3DRayClosest, queryPhysics3DRegion, queryPhysics3DShapeCast, } from './worldQueries';
17
17
  export { createPhysics3DDebugGeometry, writePhysics3DDebugGeometry } from './debugGeometry';
18
18
  export { hasActivePhysics3DBullet, integratePhysics3DContinuous } from './continuous';
19
19
  export { breakPhysics3DJoint, evaluatePhysics3DJointBreakage, isPhysics3DJointBreakable } from './jointBreakage';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,+BAA+B,EAC/B,gCAAgC,EAChC,kCAAkC,EAClC,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,sCAAsC,EACtC,2BAA2B,EAC3B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAEtF,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjH,OAAO,EACL,mCAAmC,EACnC,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,gCAAgC,EAChC,kCAAkC,EAClC,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,sCAAsC,EACtC,2BAA2B,EAC3B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,8BAA8B,EAC9B,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAEtF,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjH,OAAO,EACL,mCAAmC,EACnC,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -8,12 +8,12 @@ export { isPhysics3DPairJointSuppressed } from './jointCollisionSuppression';
8
8
  export { createPhysics3DBallAndSocketJoint, createPhysics3DConeTwistJoint, createPhysics3DDistanceJoint, createPhysics3DFixedJoint, createPhysics3DGeneric6DofJoint, createPhysics3DHingeJoint, createPhysics3DSliderJoint, } from './jointFactories';
9
9
  export { addPhysics3DJoint, getPhysics3DJointSolver, invalidatePhysics3DJoint, registerPhysics3DJointSolver, removePhysics3DJoint, } from './jointRegistry';
10
10
  export { physics3DBallAndSocketJointSolver, physics3DConeTwistJointSolver, physics3DDistanceJointSolver, physics3DFixedJointSolver, physics3DGeneric6DofJointSolver, physics3DHingeJointSolver, physics3DSliderJointSolver, Physics3DBallAndSocketJointKind, Physics3DConeTwistJointKind, Physics3DDistanceJointKind, Physics3DFixedJointKind, Physics3DGeneric6DofJointKind, Physics3DHingeJointKind, Physics3DSliderJointKind, } from './joints';
11
- export { combinePhysics3DMassData, computePhysics3DBoxMassData, computePhysics3DCapsuleMassData, computePhysics3DColliderMassData, computePhysics3DConvexHullMassData, computePhysics3DSphereMassData, createPhysics3DMassData, setRigidBody3DMassData, updateRigidBody3DMassData, } from './massProperties';
11
+ export { combinePhysics3DMassData, computePhysics3DBoxMassData, computePhysics3DCapsuleMassData, computePhysics3DConeMassData, computePhysics3DCylinderMassData, computePhysics3DColliderMassData, computePhysics3DConvexHullMassData, computePhysics3DSphereMassData, createPhysics3DMassData, setRigidBody3DMassData, updateRigidBody3DMassData, } from './massProperties';
12
12
  export { mixPhysics3DFriction, mixPhysics3DRestitution } from './material';
13
13
  export { registerBuiltInPhysics3DJointSolvers } from './registerBuiltInPhysics3DJointSolvers';
14
14
  export { stepPhysics3D, stepPhysics3DInterval } from './step';
15
15
  export { addPhysics3DBody, addPhysics3DCollider, applyPhysics3DForce, applyPhysics3DForceAtPoint, applyPhysics3DLinearImpulse, applyPhysics3DTorque, createPhysics3DCollider, createPhysics3DSequentialImpulseConfig, createPhysics3DSolverConfig, createPhysics3DWorld, createRigidBody3D, findPhysics3DBody, invalidatePhysics3DCollider, Physics3DWorldVersion, removePhysics3DBody, removePhysics3DCollider, setPhysics3DBodyFixedRotation, setPhysics3DBodyTransform, setPhysics3DBodyType, wakePhysics3DBody, writeRigidBody3DWorldCenter, } from './world';
16
- export { createPhysics3DQueryFilter, createPhysics3DQueryResult, createPhysics3DRayResult, queryPhysics3DPoint, queryPhysics3DRay, queryPhysics3DRayClosest, queryPhysics3DRegion, } from './worldQueries';
16
+ export { createPhysics3DQueryFilter, createPhysics3DQueryResult, createPhysics3DRayResult, createPhysics3DShapeCastResult, queryPhysics3DPoint, queryPhysics3DRay, queryPhysics3DRayClosest, queryPhysics3DRegion, queryPhysics3DShapeCast, } from './worldQueries';
17
17
  export { createPhysics3DDebugGeometry, writePhysics3DDebugGeometry } from './debugGeometry';
18
18
  export { hasActivePhysics3DBullet, integratePhysics3DContinuous } from './continuous';
19
19
  export { breakPhysics3DJoint, evaluatePhysics3DJointBreakage, isPhysics3DJointBreakable } from './jointBreakage';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,+BAA+B,EAC/B,gCAAgC,EAChC,kCAAkC,EAClC,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,sCAAsC,EACtC,2BAA2B,EAC3B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAEtF,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjH,OAAO,EACL,mCAAmC,EACnC,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,gCAAgC,EAChC,kCAAkC,EAClC,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,sCAAsC,EACtC,2BAA2B,EAC3B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,8BAA8B,EAC9B,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAEtF,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjH,OAAO,EACL,mCAAmC,EACnC,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"jointFactories.d.ts","sourceRoot":"","sources":["../src/jointFactories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,kCAAkC,EAClC,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACtB,6BAA6B,EAC7B,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,gCAAgC,EAChC,mBAAmB,EACnB,0BAA0B,EAK1B,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAkBlC,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,QAAQ,CAAC,kCAAkC,CAAC,GACpD,2BAA2B,CAE7B;AAKD,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,QAAQ,CAAC,8BAA8B,CAAC,GAChD,uBAAuB,CAezB;AAKD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,QAAQ,CAAC,6BAA6B,CAAC,GAAG,sBAAsB,CAcrH;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAAG,mBAAmB,CAE5G;AAKD,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,QAAQ,CAAC,gCAAgC,CAAC,GAClD,yBAAyB,CAoB3B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAAG,mBAAmB,CAe5G;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,2BAA2B,CAAC,GAAG,oBAAoB,CAe/G"}
1
+ {"version":3,"file":"jointFactories.d.ts","sourceRoot":"","sources":["../src/jointFactories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,kCAAkC,EAClC,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACtB,6BAA6B,EAC7B,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,gCAAgC,EAChC,mBAAmB,EACnB,0BAA0B,EAK1B,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAkBlC,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,QAAQ,CAAC,kCAAkC,CAAC,GACpD,2BAA2B,CAE7B;AAKD,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,QAAQ,CAAC,8BAA8B,CAAC,GAChD,uBAAuB,CAkBzB;AAKD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,QAAQ,CAAC,6BAA6B,CAAC,GAAG,sBAAsB,CAcrH;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAAG,mBAAmB,CAE5G;AAKD,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,QAAQ,CAAC,gCAAgC,CAAC,GAClD,yBAAyB,CAuB3B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAAG,mBAAmB,CAkB5G;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,2BAA2B,CAAC,GAAG,oBAAoB,CAkB/G"}
@@ -22,6 +22,9 @@ export function createPhysics3DConeTwistJoint(options) {
22
22
  enableTwistLimit: options.enableTwistLimit ?? false,
23
23
  lowerTwistAngle: options.lowerTwistAngle ?? 0,
24
24
  upperTwistAngle: options.upperTwistAngle ?? 0,
25
+ enableLimitSpring: options.enableLimitSpring ?? false,
26
+ limitFrequencyHz: options.limitFrequencyHz ?? 0,
27
+ limitDampingRatio: options.limitDampingRatio ?? 0,
25
28
  swingLimitImpulse: 0,
26
29
  lowerTwistImpulse: 0,
27
30
  upperTwistImpulse: 0,
@@ -68,6 +71,9 @@ export function createPhysics3DGeneric6DofJoint(options) {
68
71
  upperAngularX: options.upperAngularX ?? -1,
69
72
  upperAngularY: options.upperAngularY ?? -1,
70
73
  upperAngularZ: options.upperAngularZ ?? -1,
74
+ enableLimitSpring: options.enableLimitSpring ?? false,
75
+ limitFrequencyHz: options.limitFrequencyHz ?? 0,
76
+ limitDampingRatio: options.limitDampingRatio ?? 0,
71
77
  lowerLimitImpulses: [0, 0, 0, 0, 0, 0],
72
78
  upperLimitImpulses: [0, 0, 0, 0, 0, 0],
73
79
  };
@@ -83,6 +89,9 @@ export function createPhysics3DHingeJoint(options) {
83
89
  enableMotor: options.enableMotor ?? false,
84
90
  motorSpeed: options.motorSpeed ?? 0,
85
91
  maxMotorTorque: options.maxMotorTorque ?? 0,
92
+ enableLimitSpring: options.enableLimitSpring ?? false,
93
+ limitFrequencyHz: options.limitFrequencyHz ?? 0,
94
+ limitDampingRatio: options.limitDampingRatio ?? 0,
86
95
  motorImpulse: 0,
87
96
  lowerLimitImpulse: 0,
88
97
  upperLimitImpulse: 0,
@@ -99,6 +108,9 @@ export function createPhysics3DSliderJoint(options) {
99
108
  enableMotor: options.enableMotor ?? false,
100
109
  motorSpeed: options.motorSpeed ?? 0,
101
110
  maxMotorForce: options.maxMotorForce ?? 0,
111
+ enableLimitSpring: options.enableLimitSpring ?? false,
112
+ limitFrequencyHz: options.limitFrequencyHz ?? 0,
113
+ limitDampingRatio: options.limitDampingRatio ?? 0,
102
114
  motorImpulse: 0,
103
115
  lowerLimitImpulse: 0,
104
116
  upperLimitImpulse: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"jointFactories.js","sourceRoot":"","sources":["../src/jointFactories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jointFactories.js","sourceRoot":"","sources":["../src/jointFactories.ts"],"names":[],"mappings":"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"}
@@ -16,14 +16,15 @@ export declare function readFrameRotations(bodyA: Readonly<RigidBody3D>, bodyB:
16
16
  export declare function readJointImpulse(joint: Readonly<Physics3DJoint>, slot: number): number;
17
17
  export declare function solveAngularBlock(bodyA: RigidBody3D, bodyB: RigidBody3D, joint: Physics3DJoint, state: readonly number[], massOffset: number, biasOffset: number): void;
18
18
  export declare function solveEqualityRow(bodyA: RigidBody3D, bodyB: RigidBody3D, joint: Physics3DJoint, slot: number, state: readonly number[], offset: number, mass: number, error: number, biasFactor: number): void;
19
- export declare function solveLowerLimitRow(bodyA: RigidBody3D, bodyB: RigidBody3D, state: number[], offset: number, mass: number, error: number, biasFactor: number, accumulatorSlot: number): void;
19
+ export declare function solveLowerLimitRow(bodyA: RigidBody3D, bodyB: RigidBody3D, state: number[], offset: number, mass: number, error: number, biasFactor: number, accumulatorSlot: number, gamma?: number): void;
20
20
  export declare function solveMotorRow(bodyA: RigidBody3D, bodyB: RigidBody3D, state: readonly number[], offset: number, mass: number, speed: number, maxImpulse: number, previous: number): number;
21
21
  export declare function solvePointBlock(bodyA: RigidBody3D, bodyB: RigidBody3D, joint: Physics3DJoint, state: readonly number[]): void;
22
- export declare function solveUpperLimitRow(bodyA: RigidBody3D, bodyB: RigidBody3D, state: number[], offset: number, mass: number, error: number, biasFactor: number, accumulatorSlot: number): void;
22
+ export declare function solveUpperLimitRow(bodyA: RigidBody3D, bodyB: RigidBody3D, state: number[], offset: number, mass: number, error: number, biasFactor: number, accumulatorSlot: number, gamma?: number): void;
23
23
  export declare function warmStartAngularBlock(bodyA: RigidBody3D, bodyB: RigidBody3D, joint: Readonly<Physics3DJoint>): void;
24
24
  export declare function warmStartPointBlock(bodyA: RigidBody3D, bodyB: RigidBody3D, joint: Readonly<Physics3DJoint>): void;
25
25
  export declare function writeAngularRow(state: number[], offset: number, axisX: number, axisY: number, axisZ: number): void;
26
26
  export declare function writeJointImpulse(joint: Physics3DJoint, slot: number, value: number): void;
27
+ export declare function writePhysics3DSoftRowParameters(mass: number, frequencyHz: number, dampingRatio: number, dt: number, hardBiasFactor: number, out: number[]): void;
27
28
  export declare function writeRow(state: number[], offset: number, directionX: number, directionY: number, directionZ: number, armAX: number, armAY: number, armAZ: number, armBX: number, armBY: number, armBZ: number): void;
28
29
  export declare const frameABasis: number[];
29
30
  export declare const frameBBasis: number[];
@@ -1 +1 @@
1
- {"version":3,"file":"jointRows.d.ts","sourceRoot":"","sources":["../src/jointRows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jointRows.d.ts","sourceRoot":"","sources":["../src/jointRows.ts"],"names":[],"mappings":"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"}
package/dist/jointRows.js CHANGED
@@ -156,10 +156,14 @@ export function solveEqualityRow(bodyA, bodyB, joint, slot, state, offset, mass,
156
156
  // joint authored out of range and sitting still is never pushed back. `min(error, 0)` corrects but cannot
157
157
  // suppress: it zeroes the bias while INSIDE the interval, and the row then brakes any approach to the bound
158
158
  // from a distance — a motor at speed held at a standstill by a limit it was nowhere near.
159
- export function solveLowerLimitRow(bodyA, bodyB, state, offset, mass, error, biasFactor, accumulatorSlot) {
159
+ // `gamma` is the row's COMPLIANCE, zero for a hard stop. It multiplies the ACCUMULATED impulse rather
160
+ // than this iteration's, because a soft constraint is one that gives way in proportion to how hard it
161
+ // has already been pushing — a statement about the total, not the increment. The non-negative clamp
162
+ // survives softening untouched: a compliant stop still may only push back through the bound.
163
+ export function solveLowerLimitRow(bodyA, bodyB, state, offset, mass, error, biasFactor, accumulatorSlot, gamma = 0) {
160
164
  const velocity = getRowVelocity(bodyA, bodyB, state, offset);
161
165
  const previous = state[accumulatorSlot];
162
- const total = Math.max(previous - mass * (velocity + error * biasFactor), 0);
166
+ const total = Math.max(previous - mass * (velocity + error * biasFactor + gamma * previous), 0);
163
167
  state[accumulatorSlot] = total;
164
168
  applyRow(bodyA, bodyB, state, offset, total - previous);
165
169
  }
@@ -197,10 +201,10 @@ export function solvePointBlock(bodyA, bodyB, joint, state) {
197
201
  //
198
202
  // The mirror of `solveLowerLimitRow`, reached by reading the row backwards: negating both the velocity and
199
203
  // the applied impulse turns "at least" into "at most" without a second sign convention to keep straight.
200
- export function solveUpperLimitRow(bodyA, bodyB, state, offset, mass, error, biasFactor, accumulatorSlot) {
204
+ export function solveUpperLimitRow(bodyA, bodyB, state, offset, mass, error, biasFactor, accumulatorSlot, gamma = 0) {
201
205
  const velocity = -getRowVelocity(bodyA, bodyB, state, offset);
202
206
  const previous = state[accumulatorSlot];
203
- const total = Math.max(previous - mass * (velocity + error * biasFactor), 0);
207
+ const total = Math.max(previous - mass * (velocity + error * biasFactor + gamma * previous), 0);
204
208
  state[accumulatorSlot] = total;
205
209
  applyRow(bodyA, bodyB, state, offset, -(total - previous));
206
210
  }
@@ -240,6 +244,45 @@ export function writeJointImpulse(joint, slot, value) {
240
244
  break;
241
245
  }
242
246
  }
247
+ // Derives the three numbers a SOFT constraint row needs from the motion a caller described, writing
248
+ // `[mass, biasFactor, gamma]`.
249
+ //
250
+ // A frequency and a damping ratio describe the motion wanted; stiffness and damping are what the solver
251
+ // needs, and converting between them requires the mass being moved. Deriving them here, per-step and
252
+ // per-pair, is what makes a 2 Hz spring oscillate at 2 Hz whatever it is attached to — an authored
253
+ // stiffness would change frequency the moment either body's mass did.
254
+ //
255
+ // `biasFactor` is returned in the position a hard row's own bias factor occupies, so a row solves
256
+ // identically either way and the only difference between a stop and a spring is which three numbers it
257
+ // was handed.
258
+ //
259
+ // `hardBiasFactor` is what to fall back to when the spring cannot be computed, and it is a PARAMETER
260
+ // rather than a constant because the two callers legitimately disagree about it: a two-sided rest row
261
+ // corrects at `BAUMGARTE / dt`, while a one-sided limit row corrects fully at `1 / dt`. Baking either
262
+ // in would silently change the other's hard behaviour the first time it took this path.
263
+ //
264
+ // Compliance adds to the INVERSE mass, which is why the returned mass is not a scaled version of the
265
+ // input: softening makes a constraint easier to violate, and that is an addition on the reciprocal side.
266
+ // A non-positive frequency or timestep returns the HARD parameters, so "spring enabled with no
267
+ // frequency set" degrades to the stop it replaced rather than to a constraint that does nothing.
268
+ export function writePhysics3DSoftRowParameters(mass, frequencyHz, dampingRatio, dt, hardBiasFactor, out) {
269
+ if (!(frequencyHz > 0) || !(dt > 0)) {
270
+ out[0] = mass;
271
+ out[1] = hardBiasFactor;
272
+ out[2] = 0;
273
+ return;
274
+ }
275
+ const angular = TAU * frequencyHz;
276
+ const damping = 2 * mass * dampingRatio * angular;
277
+ const stiffness = mass * angular * angular;
278
+ const gammaDenominator = dt * (damping + dt * stiffness);
279
+ const gamma = gammaDenominator > 0 ? 1 / gammaDenominator : 0;
280
+ const inverseMass = mass > 0 ? 1 / mass : 0;
281
+ const softened = inverseMass + gamma;
282
+ out[0] = softened > 0 ? 1 / softened : 0;
283
+ out[1] = dt * stiffness * gamma;
284
+ out[2] = gamma;
285
+ }
243
286
  // Writes one constraint row into a joint's per-step state.
244
287
  export function writeRow(state, offset, directionX, directionY, directionZ, armAX, armAY, armAZ, armBX, armBY, armBZ) {
245
288
  state[offset] = directionX;
@@ -285,6 +328,7 @@ function writeBlock(state, offset, source) {
285
328
  // The fraction of a joint's positional error corrected per step. Matches the contact solver's rationale:
286
329
  // correcting all of it at once turns a deep error into an explosion.
287
330
  const BAUMGARTE = 0.2;
331
+ const TAU = 2 * Math.PI;
288
332
  // The world-space frames the prepare pass leaves for the kind that asked for them. Module scratch rather than
289
333
  // per-joint state because they are consumed within one `prepare`, never across two.
290
334
  export const frameABasis = new Array(9).fill(0);