@aura3d/physics 1.5.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ArcadeCharacterController.d.ts +53 -0
- package/dist/ArcadeCharacterController.d.ts.map +1 -0
- package/dist/ArcadeCharacterController.js +98 -0
- package/dist/ArcadeCharacterController.js.map +1 -0
- package/dist/ArcadeVehicleTelemetry.d.ts +162 -0
- package/dist/ArcadeVehicleTelemetry.d.ts.map +1 -0
- package/dist/ArcadeVehicleTelemetry.js +363 -0
- package/dist/ArcadeVehicleTelemetry.js.map +1 -0
- package/dist/CharacterController.d.ts +52 -0
- package/dist/CharacterController.d.ts.map +1 -1
- package/dist/CharacterController.js +380 -7
- package/dist/CharacterController.js.map +1 -1
- package/dist/Constraint.d.ts +20 -4
- package/dist/Constraint.d.ts.map +1 -1
- package/dist/Constraint.js +34 -60
- package/dist/Constraint.js.map +1 -1
- package/dist/FightingCharacterController.d.ts +32 -0
- package/dist/FightingCharacterController.d.ts.map +1 -0
- package/dist/FightingCharacterController.js +76 -0
- package/dist/FightingCharacterController.js.map +1 -0
- package/dist/MeshBVH.d.ts +72 -0
- package/dist/MeshBVH.d.ts.map +1 -0
- package/dist/MeshBVH.js +244 -0
- package/dist/MeshBVH.js.map +1 -0
- package/dist/PathFollowDriver.d.ts +162 -0
- package/dist/PathFollowDriver.d.ts.map +1 -0
- package/dist/PathFollowDriver.js +163 -0
- package/dist/PathFollowDriver.js.map +1 -0
- package/dist/PhysicsDebugDraw.d.ts +40 -1
- package/dist/PhysicsDebugDraw.d.ts.map +1 -1
- package/dist/PhysicsDebugDraw.js +87 -17
- package/dist/PhysicsDebugDraw.js.map +1 -1
- package/dist/PhysicsWorld.d.ts +37 -18
- package/dist/PhysicsWorld.d.ts.map +1 -1
- package/dist/PhysicsWorld.js +231 -630
- package/dist/PhysicsWorld.js.map +1 -1
- package/dist/RacingLineProfile.d.ts +116 -0
- package/dist/RacingLineProfile.d.ts.map +1 -0
- package/dist/RacingLineProfile.js +181 -0
- package/dist/RacingLineProfile.js.map +1 -0
- package/dist/Raycast.d.ts +11 -0
- package/dist/Raycast.d.ts.map +1 -1
- package/dist/Raycast.js +62 -8
- package/dist/Raycast.js.map +1 -1
- package/dist/RigidBody.d.ts +16 -9
- package/dist/RigidBody.d.ts.map +1 -1
- package/dist/RigidBody.js +23 -75
- package/dist/RigidBody.js.map +1 -1
- package/dist/SurfaceQuery.d.ts +72 -0
- package/dist/SurfaceQuery.d.ts.map +1 -0
- package/dist/SurfaceQuery.js +89 -0
- package/dist/SurfaceQuery.js.map +1 -0
- package/dist/VehicleDynamics.d.ts +10 -0
- package/dist/VehicleDynamics.d.ts.map +1 -1
- package/dist/VehicleDynamics.js +31 -3
- package/dist/VehicleDynamics.js.map +1 -1
- package/dist/VehicleMotion.d.ts +125 -0
- package/dist/VehicleMotion.d.ts.map +1 -0
- package/dist/VehicleMotion.js +373 -0
- package/dist/VehicleMotion.js.map +1 -0
- package/dist/index.d.ts +62 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -17
- package/dist/index.js.map +1 -1
- package/dist/solverless-entry.d.ts +41 -0
- package/dist/solverless-entry.d.ts.map +1 -0
- package/dist/solverless-entry.js +40 -0
- package/dist/solverless-entry.js.map +1 -0
- package/dist/solverless.d.ts +37 -0
- package/dist/solverless.d.ts.map +1 -0
- package/dist/solverless.js +36 -0
- package/dist/solverless.js.map +1 -0
- package/dist/world-entry.d.ts +31 -0
- package/dist/world-entry.d.ts.map +1 -0
- package/dist/world-entry.js +30 -0
- package/dist/world-entry.js.map +1 -0
- package/dist/world.d.ts +18 -0
- package/dist/world.d.ts.map +1 -0
- package/dist/world.js +17 -0
- package/dist/world.js.map +1 -0
- package/package.json +10 -2
package/dist/Raycast.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { addVec3, dotVec3, scaleVec3, subVec3 } from "./Shape.js";
|
|
1
|
+
import { addVec3, dotVec3, rotateVec3ByQuat, scaleVec3, subVec3 } from "./Shape.js";
|
|
2
2
|
/**
|
|
3
3
|
* Adapt any downward raycast into the ground query the foot-IK rig needs. `cast` should perform a
|
|
4
4
|
* straight-down ray (typically a `PhysicsWorld.raycast` bound to a ground layer mask) and return
|
|
@@ -28,7 +28,7 @@ export function raycastCollider(origin, direction, collider, body, options = {})
|
|
|
28
28
|
return raycastSphere(origin, direction, body.position, collider.shape.radius, collider, maxDistance);
|
|
29
29
|
case "box":
|
|
30
30
|
case "capsule":
|
|
31
|
-
return
|
|
31
|
+
return raycastOrientedBox(origin, direction, collider, body, 0, maxDistance);
|
|
32
32
|
case "plane":
|
|
33
33
|
return raycastPlane(origin, direction, collider.shape.normal, collider.shape.constant, collider, body.id, maxDistance);
|
|
34
34
|
case "mesh":
|
|
@@ -51,12 +51,7 @@ export function sphereCastCollider(origin, radius, direction, collider, body, op
|
|
|
51
51
|
return sphereCastSphere(origin, radius, direction, body.position, collider.shape.radius, collider, maxDistance);
|
|
52
52
|
case "box":
|
|
53
53
|
case "capsule": {
|
|
54
|
-
const
|
|
55
|
-
const expanded = {
|
|
56
|
-
min: [bounds.min[0] - radius, bounds.min[1] - radius, bounds.min[2] - radius],
|
|
57
|
-
max: [bounds.max[0] + radius, bounds.max[1] + radius, bounds.max[2] + radius]
|
|
58
|
-
};
|
|
59
|
-
const hit = raycastAabb(origin, direction, expanded, collider, body.id, maxDistance);
|
|
54
|
+
const hit = raycastOrientedBox(origin, direction, collider, body, radius, maxDistance);
|
|
60
55
|
return hit ? toSphereCastHit(hit, origin, direction, radius) : undefined;
|
|
61
56
|
}
|
|
62
57
|
case "plane":
|
|
@@ -105,6 +100,65 @@ function sphereCastSphere(origin, castRadius, direction, center, targetRadius, c
|
|
|
105
100
|
castRadius
|
|
106
101
|
};
|
|
107
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Cast against a box or capsule collider **in the body's own frame**, so a rotated collider
|
|
105
|
+
* is a rotated box rather than its axis-aligned bounding box.
|
|
106
|
+
*
|
|
107
|
+
* Defect class: engine, and the same family as the joint no-op — a feature that worked on
|
|
108
|
+
* one path and silently did not on another. Contacts already respected rotation (the
|
|
109
|
+
* narrow phase is OBB-SAT), but every query — `raycast`, `raycastAll`, `sphereCast`,
|
|
110
|
+
* `sphereCastAll` — passed `collider.bounds(body.position)` with **no rotation argument**,
|
|
111
|
+
* even though `Collider.bounds` accepts one. So a tilted platform reported an axis-aligned
|
|
112
|
+
* box with axis-aligned face normals.
|
|
113
|
+
*
|
|
114
|
+
* The visible consequence was that slopes did not exist as far as any query was concerned.
|
|
115
|
+
* Measured on a box rotated 22.5 degrees about +Z with a character standing on it:
|
|
116
|
+
* `groundNormal` came back `[0, 1, 0]` and `slopeAngle` `0.0000`, so `onSteepSlope` could
|
|
117
|
+
* never become true, a 82-degree face read as walkable flat ground, and any route trying to
|
|
118
|
+
* slide a character down a ramp or reject a cliff had nothing to read. Two independent
|
|
119
|
+
* defects, one cause.
|
|
120
|
+
*
|
|
121
|
+
* Method: transform the ray into the collider's local frame by the inverse body rotation,
|
|
122
|
+
* intersect the axis-aligned box there (which is exact, because in that frame it *is* axis
|
|
123
|
+
* aligned), then rotate the hit point and normal back out. A swept sphere is handled by
|
|
124
|
+
* inflating the local extents by its radius, which is the same conservative approximation
|
|
125
|
+
* the previous AABB path used and is exact for the face regions that dominate ground and
|
|
126
|
+
* wall probes.
|
|
127
|
+
*/
|
|
128
|
+
function raycastOrientedBox(origin, direction, collider, body, inflate, maxDistance) {
|
|
129
|
+
const rotation = body.rotation;
|
|
130
|
+
const identity = rotation[0] === 0 && rotation[1] === 0 && rotation[2] === 0;
|
|
131
|
+
// Local-frame half extents: the collider's own bounds around the origin, inflated by any
|
|
132
|
+
// sweep radius. Taken from `bounds` at the origin with no rotation so capsules keep the
|
|
133
|
+
// same extents the previous path used.
|
|
134
|
+
const local = collider.bounds([0, 0, 0]);
|
|
135
|
+
const bounds = {
|
|
136
|
+
min: [local.min[0] - inflate, local.min[1] - inflate, local.min[2] - inflate],
|
|
137
|
+
max: [local.max[0] + inflate, local.max[1] + inflate, local.max[2] + inflate]
|
|
138
|
+
};
|
|
139
|
+
if (identity) {
|
|
140
|
+
// Unrotated: the local frame differs from the world frame only by a translation, so
|
|
141
|
+
// shift the ray rather than paying for two quaternion rotations per query.
|
|
142
|
+
const shifted = [origin[0] - body.position[0], origin[1] - body.position[1], origin[2] - body.position[2]];
|
|
143
|
+
const hit = raycastAabb(shifted, direction, bounds, collider, body.id, maxDistance);
|
|
144
|
+
if (!hit)
|
|
145
|
+
return undefined;
|
|
146
|
+
return { ...hit, point: addVec3(hit.point, body.position) };
|
|
147
|
+
}
|
|
148
|
+
const inverse = [-rotation[0], -rotation[1], -rotation[2], rotation[3]];
|
|
149
|
+
const localOrigin = rotateVec3ByQuat(subVec3(origin, body.position), inverse);
|
|
150
|
+
// Rotation preserves length, so the local direction stays unit and `distance` needs no
|
|
151
|
+
// rescaling on the way back out.
|
|
152
|
+
const localDirection = rotateVec3ByQuat(direction, inverse);
|
|
153
|
+
const hit = raycastAabb(localOrigin, localDirection, bounds, collider, body.id, maxDistance);
|
|
154
|
+
if (!hit)
|
|
155
|
+
return undefined;
|
|
156
|
+
return {
|
|
157
|
+
...hit,
|
|
158
|
+
point: addVec3(rotateVec3ByQuat(hit.point, rotation), body.position),
|
|
159
|
+
normal: rotateVec3ByQuat(hit.normal, rotation)
|
|
160
|
+
};
|
|
161
|
+
}
|
|
108
162
|
function raycastAabb(origin, direction, bounds, collider, bodyId, maxDistance) {
|
|
109
163
|
let tmin = 0;
|
|
110
164
|
let tmax = maxDistance;
|
package/dist/Raycast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Raycast.js","sourceRoot":"","sources":["../../../../packages/physics/src/Raycast.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Raycast.js","sourceRoot":"","sources":["../../../../packages/physics/src/Raycast.ts"],"names":[],"mappings":"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"}
|
package/dist/RigidBody.d.ts
CHANGED
|
@@ -43,10 +43,18 @@ export declare class RigidBody {
|
|
|
43
43
|
linearDamping: number;
|
|
44
44
|
angularDamping: number;
|
|
45
45
|
inverseInertia: [number, number, number];
|
|
46
|
+
/**
|
|
47
|
+
* The principal moments the caller explicitly asked for, or `undefined` when the body
|
|
48
|
+
* accepted the mass-derived default.
|
|
49
|
+
*
|
|
50
|
+
* Retained because the selected Rapier backend derives inertia from collider geometry
|
|
51
|
+
* unless the descriptor explicitly supplies principal moments. The bridge uses this
|
|
52
|
+
* value to preserve that public descriptor contract.
|
|
53
|
+
*/
|
|
54
|
+
readonly declaredInertia?: Vec3;
|
|
46
55
|
sleeping: boolean;
|
|
47
56
|
private accumulatedForce;
|
|
48
57
|
private accumulatedTorque;
|
|
49
|
-
private sleepTimer;
|
|
50
58
|
constructor(id: number, descriptor?: RigidBodyDescriptor);
|
|
51
59
|
setPosition(position: Vec3): void;
|
|
52
60
|
setVelocity(velocity: Vec3): void;
|
|
@@ -57,20 +65,19 @@ export declare class RigidBody {
|
|
|
57
65
|
applyImpulse(impulse: Vec3): void;
|
|
58
66
|
applyAngularImpulse(impulse: Vec3): void;
|
|
59
67
|
applyImpulseAtPoint(impulse: Vec3, worldPoint: Vec3): void;
|
|
68
|
+
multiplyInverseInertiaWorld(value: Vec3): Vec3;
|
|
60
69
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
70
|
+
* Force accumulated since the last step, in world space.
|
|
71
|
+
*
|
|
72
|
+
* The Rapier bridge reads this value on every step and forwards it to the native body.
|
|
64
73
|
*/
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
74
|
+
pendingForce(): Vec3;
|
|
75
|
+
/** Torque accumulated since the last step. See {@link pendingForce}. */
|
|
76
|
+
pendingTorque(): Vec3;
|
|
68
77
|
clearForces(): void;
|
|
69
78
|
speedSquared(): number;
|
|
70
79
|
wake(): void;
|
|
71
80
|
sleep(): void;
|
|
72
|
-
resetSleepTimer(): void;
|
|
73
|
-
accumulateSleepTime(dt: number): number;
|
|
74
81
|
snapshot(): RigidBodySnapshot;
|
|
75
82
|
}
|
|
76
83
|
//# sourceMappingURL=RigidBody.d.ts.map
|
package/dist/RigidBody.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RigidBody.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/RigidBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuE,KAAK,IAAI,EAAQ,MAAM,YAAY,CAAC;AAElH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAC/D,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,qBAAa,SAAS;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,iBAAiB,CAA2B;
|
|
1
|
+
{"version":3,"file":"RigidBody.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/RigidBody.ts"],"names":[],"mappings":"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"}
|
package/dist/RigidBody.js
CHANGED
|
@@ -15,10 +15,18 @@ export class RigidBody {
|
|
|
15
15
|
linearDamping;
|
|
16
16
|
angularDamping;
|
|
17
17
|
inverseInertia;
|
|
18
|
+
/**
|
|
19
|
+
* The principal moments the caller explicitly asked for, or `undefined` when the body
|
|
20
|
+
* accepted the mass-derived default.
|
|
21
|
+
*
|
|
22
|
+
* Retained because the selected Rapier backend derives inertia from collider geometry
|
|
23
|
+
* unless the descriptor explicitly supplies principal moments. The bridge uses this
|
|
24
|
+
* value to preserve that public descriptor contract.
|
|
25
|
+
*/
|
|
26
|
+
declaredInertia;
|
|
18
27
|
sleeping;
|
|
19
28
|
accumulatedForce;
|
|
20
29
|
accumulatedTorque;
|
|
21
|
-
sleepTimer = 0;
|
|
22
30
|
constructor(id, descriptor = {}) {
|
|
23
31
|
if (!Number.isInteger(id) || id <= 0) {
|
|
24
32
|
throw new Error("RigidBody id must be a positive integer.");
|
|
@@ -53,6 +61,9 @@ export class RigidBody {
|
|
|
53
61
|
this.mass = mass;
|
|
54
62
|
this.inverseMass = 1 / mass;
|
|
55
63
|
this.inverseInertia = inverseInertia(descriptor.inertia ?? [mass, mass, mass]);
|
|
64
|
+
if (descriptor.inertia) {
|
|
65
|
+
this.declaredInertia = [descriptor.inertia[0], descriptor.inertia[1], descriptor.inertia[2]];
|
|
66
|
+
}
|
|
56
67
|
}
|
|
57
68
|
else {
|
|
58
69
|
this.mass = Number.POSITIVE_INFINITY;
|
|
@@ -124,20 +135,6 @@ export class RigidBody {
|
|
|
124
135
|
this.applyImpulse(impulse);
|
|
125
136
|
this.applyAngularImpulse(crossVec3(subVec3(worldPoint, this.position), impulse));
|
|
126
137
|
}
|
|
127
|
-
/**
|
|
128
|
-
* Applies a solver-owned contact impulse without resetting an already
|
|
129
|
-
* accumulating sleep timer. PhysicsWorld performs threshold-based waking
|
|
130
|
-
* after the full linear/angular velocity update.
|
|
131
|
-
*/
|
|
132
|
-
applyContactImpulseAtPoint(impulse, worldPoint) {
|
|
133
|
-
validateFiniteVec3(impulse, "contact impulse");
|
|
134
|
-
validateFiniteVec3(worldPoint, "contact impulse point");
|
|
135
|
-
if (this.type !== "dynamic")
|
|
136
|
-
return;
|
|
137
|
-
this.velocity = addVec3(this.velocity, scaleVec3(impulse, this.inverseMass));
|
|
138
|
-
const angularImpulse = crossVec3(subVec3(worldPoint, this.position), impulse);
|
|
139
|
-
this.angularVelocity = addVec3(this.angularVelocity, this.multiplyInverseInertiaWorld(angularImpulse));
|
|
140
|
-
}
|
|
141
138
|
multiplyInverseInertiaWorld(value) {
|
|
142
139
|
validateFiniteVec3(value, "inverse inertia input");
|
|
143
140
|
if (this.type !== "dynamic")
|
|
@@ -147,32 +144,17 @@ export class RigidBody {
|
|
|
147
144
|
const localResponse = multiplyVec3(local, this.inverseInertia);
|
|
148
145
|
return rotateVec3ByQuat(localResponse, this.rotation);
|
|
149
146
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
this.previousPosition = cloneVec3(this.position);
|
|
163
|
-
this.previousRotation = cloneQuat(this.rotation);
|
|
164
|
-
const acceleration = addVec3(gravity, scaleVec3(this.accumulatedForce, this.inverseMass));
|
|
165
|
-
this.velocity = addVec3(this.velocity, scaleVec3(acceleration, dt));
|
|
166
|
-
this.angularVelocity = addVec3(this.angularVelocity, scaleVec3(multiplyVec3(this.accumulatedTorque, this.inverseInertia), dt));
|
|
167
|
-
const dampingFactor = Math.max(0, 1 - this.linearDamping * dt);
|
|
168
|
-
const angularDampingFactor = Math.max(0, 1 - this.angularDamping * dt);
|
|
169
|
-
this.velocity = scaleVec3(this.velocity, dampingFactor);
|
|
170
|
-
this.angularVelocity = scaleVec3(this.angularVelocity, angularDampingFactor);
|
|
171
|
-
this.position = addVec3(this.position, scaleVec3(this.velocity, dt));
|
|
172
|
-
this.rotation = integrateRotation(this.rotation, this.angularVelocity, dt);
|
|
173
|
-
if (clearForces) {
|
|
174
|
-
this.clearForces();
|
|
175
|
-
}
|
|
147
|
+
/**
|
|
148
|
+
* Force accumulated since the last step, in world space.
|
|
149
|
+
*
|
|
150
|
+
* The Rapier bridge reads this value on every step and forwards it to the native body.
|
|
151
|
+
*/
|
|
152
|
+
pendingForce() {
|
|
153
|
+
return [this.accumulatedForce[0], this.accumulatedForce[1], this.accumulatedForce[2]];
|
|
154
|
+
}
|
|
155
|
+
/** Torque accumulated since the last step. See {@link pendingForce}. */
|
|
156
|
+
pendingTorque() {
|
|
157
|
+
return [this.accumulatedTorque[0], this.accumulatedTorque[1], this.accumulatedTorque[2]];
|
|
176
158
|
}
|
|
177
159
|
clearForces() {
|
|
178
160
|
this.accumulatedForce = vec3();
|
|
@@ -187,7 +169,6 @@ export class RigidBody {
|
|
|
187
169
|
return;
|
|
188
170
|
}
|
|
189
171
|
this.sleeping = false;
|
|
190
|
-
this.sleepTimer = 0;
|
|
191
172
|
}
|
|
192
173
|
sleep() {
|
|
193
174
|
if (this.type !== "dynamic") {
|
|
@@ -198,16 +179,6 @@ export class RigidBody {
|
|
|
198
179
|
this.clearForces();
|
|
199
180
|
this.sleeping = true;
|
|
200
181
|
}
|
|
201
|
-
resetSleepTimer() {
|
|
202
|
-
this.sleepTimer = 0;
|
|
203
|
-
}
|
|
204
|
-
accumulateSleepTime(dt) {
|
|
205
|
-
if (!Number.isFinite(dt) || dt < 0) {
|
|
206
|
-
throw new Error("sleep dt must be finite and non-negative.");
|
|
207
|
-
}
|
|
208
|
-
this.sleepTimer += dt;
|
|
209
|
-
return this.sleepTimer;
|
|
210
|
-
}
|
|
211
182
|
snapshot() {
|
|
212
183
|
return {
|
|
213
184
|
id: this.id,
|
|
@@ -256,27 +227,4 @@ function crossVec3(a, b) {
|
|
|
256
227
|
a[0] * b[1] - a[1] * b[0]
|
|
257
228
|
];
|
|
258
229
|
}
|
|
259
|
-
function integrateRotation(rotation, angularVelocity, dt) {
|
|
260
|
-
const speed = Math.hypot(angularVelocity[0], angularVelocity[1], angularVelocity[2]);
|
|
261
|
-
if (speed <= 1e-12) {
|
|
262
|
-
return cloneQuat(rotation);
|
|
263
|
-
}
|
|
264
|
-
const halfAngle = speed * dt * 0.5;
|
|
265
|
-
const sinHalf = Math.sin(halfAngle);
|
|
266
|
-
const delta = [
|
|
267
|
-
angularVelocity[0] / speed * sinHalf,
|
|
268
|
-
angularVelocity[1] / speed * sinHalf,
|
|
269
|
-
angularVelocity[2] / speed * sinHalf,
|
|
270
|
-
Math.cos(halfAngle)
|
|
271
|
-
];
|
|
272
|
-
return normalizeQuat(multiplyQuat(delta, rotation));
|
|
273
|
-
}
|
|
274
|
-
function multiplyQuat(a, b) {
|
|
275
|
-
return [
|
|
276
|
-
a[3] * b[0] + a[0] * b[3] + a[1] * b[2] - a[2] * b[1],
|
|
277
|
-
a[3] * b[1] - a[0] * b[2] + a[1] * b[3] + a[2] * b[0],
|
|
278
|
-
a[3] * b[2] + a[0] * b[1] - a[1] * b[0] + a[2] * b[3],
|
|
279
|
-
a[3] * b[3] - a[0] * b[0] - a[1] * b[1] - a[2] * b[2]
|
|
280
|
-
];
|
|
281
|
-
}
|
|
282
230
|
//# sourceMappingURL=RigidBody.js.map
|
package/dist/RigidBody.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RigidBody.js","sourceRoot":"","sources":["../../../../packages/physics/src/RigidBody.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RigidBody.js","sourceRoot":"","sources":["../../../../packages/physics/src/RigidBody.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type MeshBVH } from "./MeshBVH.js";
|
|
2
|
+
import type { Vec3 } from "./Shape.js";
|
|
3
|
+
/**
|
|
4
|
+
* Height and normal of a real mesh under a world point.
|
|
5
|
+
*
|
|
6
|
+
* ## The defect class this closes
|
|
7
|
+
*
|
|
8
|
+
* Grounding anything in this library previously meant inventing a surface model and
|
|
9
|
+
* baking it into a route constant. Turbo Drift's vehicle surface was
|
|
10
|
+
* `TRACK_SURFACE_Y - VERGE_DROP * shoulderFraction`: one frozen scalar plus an analytic
|
|
11
|
+
* ramp. That is wrong the moment the track is banked, crowned, kerbed or swapped, and it
|
|
12
|
+
* is why the car's tyres pass through the visible road on corners. The 30-line comment
|
|
13
|
+
* block defending `CAR_GROUND_Y` in that route is the symptom of a missing capability,
|
|
14
|
+
* not a well-understood constant.
|
|
15
|
+
*
|
|
16
|
+
* A surface query removes the need to model the surface at all: ask the triangles.
|
|
17
|
+
*
|
|
18
|
+
* ## Caching
|
|
19
|
+
*
|
|
20
|
+
* A vehicle samples four times per frame, a character once or twice, a crowd hundreds of
|
|
21
|
+
* times. Sampling is cached per integer cell so repeated queries in the same spot are
|
|
22
|
+
* free, and the cache is cleared per frame by the caller rather than by a timer — a
|
|
23
|
+
* time-based cache silently returns stale heights on a moving platform.
|
|
24
|
+
*/
|
|
25
|
+
export interface SurfaceSample {
|
|
26
|
+
/** World Y of the surface. */
|
|
27
|
+
readonly height: number;
|
|
28
|
+
/** Unit surface normal, oriented upward. */
|
|
29
|
+
readonly normal: Vec3;
|
|
30
|
+
/** Grip multiplier for this point. 1 unless a grip map is supplied. */
|
|
31
|
+
readonly grip: number;
|
|
32
|
+
/** False when no triangle was found under the point. */
|
|
33
|
+
readonly hit: boolean;
|
|
34
|
+
/** Triangle index, for callers that map triangles to materials. */
|
|
35
|
+
readonly triangle?: number | undefined;
|
|
36
|
+
}
|
|
37
|
+
export interface MeshSurfaceQueryOptions {
|
|
38
|
+
/**
|
|
39
|
+
* Height the downward ray starts from, above the highest point of the mesh.
|
|
40
|
+
*
|
|
41
|
+
* Too low and the ray starts inside overhanging geometry; the default derives it from
|
|
42
|
+
* the mesh bounds so it is correct for any scale without tuning.
|
|
43
|
+
*/
|
|
44
|
+
readonly rayStartHeight?: number | undefined;
|
|
45
|
+
/** Grid size for the sample cache, in world units. */
|
|
46
|
+
readonly cacheCellSize?: number | undefined;
|
|
47
|
+
/** Grip per triangle index. Absent triangles use 1. */
|
|
48
|
+
readonly gripByTriangle?: ReadonlyMap<number, number> | undefined;
|
|
49
|
+
/** Fallback height when nothing is under the point. */
|
|
50
|
+
readonly fallbackHeight?: number | undefined;
|
|
51
|
+
}
|
|
52
|
+
export interface MeshSurfaceQuery {
|
|
53
|
+
readonly kind: "aura-mesh-surface-query";
|
|
54
|
+
sampleHeight(x: number, z: number): number;
|
|
55
|
+
sampleNormal(x: number, z: number): Vec3;
|
|
56
|
+
sampleGrip(x: number, z: number): number;
|
|
57
|
+
sample(x: number, z: number): SurfaceSample;
|
|
58
|
+
/** Drop cached samples. Call once per frame if the mesh moves. */
|
|
59
|
+
invalidate(): void;
|
|
60
|
+
readonly bvh: MeshBVH;
|
|
61
|
+
/** Cache statistics, so a caller can prove the query is not thrashing. */
|
|
62
|
+
stats(): {
|
|
63
|
+
readonly samples: number;
|
|
64
|
+
readonly cacheHits: number;
|
|
65
|
+
readonly cachedCells: number;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export declare function createMeshSurfaceQuery(geometry: {
|
|
69
|
+
readonly positions: Float32Array;
|
|
70
|
+
readonly indices: Uint32Array;
|
|
71
|
+
}, worldMatrix?: readonly number[], options?: MeshSurfaceQueryOptions): MeshSurfaceQuery;
|
|
72
|
+
//# sourceMappingURL=SurfaceQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SurfaceQuery.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/SurfaceQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,sDAAsD;IACtD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,uDAAuD;IACvD,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAClE,uDAAuD;IACvD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAC5C,kEAAkE;IAClE,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,KAAK,IAAI;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACjG;AAkBD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,EAC7E,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,EAC/B,OAAO,GAAE,uBAA4B,GACpC,gBAAgB,CAsElB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { buildMeshBVH, raycastMesh } from "./MeshBVH.js";
|
|
2
|
+
/** Transform positions by a column-major 4x4 world matrix. */
|
|
3
|
+
function transformPositions(positions, worldMatrix) {
|
|
4
|
+
if (!worldMatrix)
|
|
5
|
+
return positions;
|
|
6
|
+
if (worldMatrix.length !== 16)
|
|
7
|
+
throw new Error("createMeshSurfaceQuery worldMatrix must have 16 elements.");
|
|
8
|
+
const out = new Float32Array(positions.length);
|
|
9
|
+
for (let index = 0; index < positions.length; index += 3) {
|
|
10
|
+
const x = positions[index];
|
|
11
|
+
const y = positions[index + 1];
|
|
12
|
+
const z = positions[index + 2];
|
|
13
|
+
out[index] = worldMatrix[0] * x + worldMatrix[4] * y + worldMatrix[8] * z + worldMatrix[12];
|
|
14
|
+
out[index + 1] = worldMatrix[1] * x + worldMatrix[5] * y + worldMatrix[9] * z + worldMatrix[13];
|
|
15
|
+
out[index + 2] = worldMatrix[2] * x + worldMatrix[6] * y + worldMatrix[10] * z + worldMatrix[14];
|
|
16
|
+
}
|
|
17
|
+
return out;
|
|
18
|
+
}
|
|
19
|
+
export function createMeshSurfaceQuery(geometry, worldMatrix, options = {}) {
|
|
20
|
+
const positions = transformPositions(geometry.positions, worldMatrix);
|
|
21
|
+
const bvh = buildMeshBVH(positions, geometry.indices);
|
|
22
|
+
let highest = -Infinity;
|
|
23
|
+
let lowest = Infinity;
|
|
24
|
+
for (let index = 1; index < positions.length; index += 3) {
|
|
25
|
+
const y = positions[index];
|
|
26
|
+
if (y > highest)
|
|
27
|
+
highest = y;
|
|
28
|
+
if (y < lowest)
|
|
29
|
+
lowest = y;
|
|
30
|
+
}
|
|
31
|
+
if (!Number.isFinite(highest)) {
|
|
32
|
+
highest = 0;
|
|
33
|
+
lowest = 0;
|
|
34
|
+
}
|
|
35
|
+
// Start above the mesh and cast the full vertical extent plus margin, so an
|
|
36
|
+
// overhang never shadows the surface beneath a sample point.
|
|
37
|
+
const span = Math.max(1, highest - lowest);
|
|
38
|
+
const rayStart = options.rayStartHeight ?? highest + span;
|
|
39
|
+
const maxDistance = (rayStart - lowest) + span;
|
|
40
|
+
const cellSize = Math.max(1e-4, options.cacheCellSize ?? 0.05);
|
|
41
|
+
const fallbackHeight = options.fallbackHeight ?? lowest;
|
|
42
|
+
const cache = new Map();
|
|
43
|
+
let samples = 0;
|
|
44
|
+
let cacheHits = 0;
|
|
45
|
+
function computeSample(x, z) {
|
|
46
|
+
const hit = raycastMesh(bvh, [x, rayStart, z], [0, -1, 0], { maxDistance });
|
|
47
|
+
if (!hit) {
|
|
48
|
+
return { height: fallbackHeight, normal: [0, 1, 0], grip: 1, hit: false };
|
|
49
|
+
}
|
|
50
|
+
// Force the normal upward: a downward ray against a double-sided road surface can
|
|
51
|
+
// legitimately return either orientation, and a downward "up" normal would invert
|
|
52
|
+
// every attitude calculation built on it.
|
|
53
|
+
const normal = hit.normal[1] < 0
|
|
54
|
+
? [-hit.normal[0], -hit.normal[1], -hit.normal[2]]
|
|
55
|
+
: hit.normal;
|
|
56
|
+
return {
|
|
57
|
+
height: hit.point[1],
|
|
58
|
+
normal,
|
|
59
|
+
grip: options.gripByTriangle?.get(hit.triangle) ?? 1,
|
|
60
|
+
hit: true,
|
|
61
|
+
triangle: hit.triangle
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function sample(x, z) {
|
|
65
|
+
samples += 1;
|
|
66
|
+
const key = `${Math.round(x / cellSize)}:${Math.round(z / cellSize)}`;
|
|
67
|
+
const cached = cache.get(key);
|
|
68
|
+
if (cached) {
|
|
69
|
+
cacheHits += 1;
|
|
70
|
+
return cached;
|
|
71
|
+
}
|
|
72
|
+
const computed = computeSample(x, z);
|
|
73
|
+
cache.set(key, computed);
|
|
74
|
+
return computed;
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
kind: "aura-mesh-surface-query",
|
|
78
|
+
bvh,
|
|
79
|
+
sample,
|
|
80
|
+
sampleHeight: (x, z) => sample(x, z).height,
|
|
81
|
+
sampleNormal: (x, z) => sample(x, z).normal,
|
|
82
|
+
sampleGrip: (x, z) => sample(x, z).grip,
|
|
83
|
+
invalidate: () => {
|
|
84
|
+
cache.clear();
|
|
85
|
+
},
|
|
86
|
+
stats: () => ({ samples, cacheHits, cachedCells: cache.size })
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=SurfaceQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SurfaceQuery.js","sourceRoot":"","sources":["../../../../packages/physics/src/SurfaceQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -148,5 +148,15 @@ export declare function sampleVehicleDamage(input: VehicleDamageInput): VehicleD
|
|
|
148
148
|
export declare function sampleVehicleEffectEmitters(input: VehicleEffectEmitterInput): VehicleEffectEmitterSample;
|
|
149
149
|
export declare function sampleVehicleDrivetrain(input: VehicleDrivetrainInput): VehicleDrivetrainSample;
|
|
150
150
|
export declare function sampleRacingAiDriver(input: RacingAiDriverInput): RacingAiDriverSample;
|
|
151
|
+
/**
|
|
152
|
+
* Peak lateral cornering stiffness of a tyre preset, per newton of vertical load.
|
|
153
|
+
*
|
|
154
|
+
* This is the initial slope of the Magic Formula lateral curve, `d * c * b`, in units of
|
|
155
|
+
* force per radian of slip per newton of load. An integrator needs it to size a stable
|
|
156
|
+
* timestep: the tyre is the stiffest spring in a vehicle model, so it sets the step, and
|
|
157
|
+
* assuming a fixed 1/60 s regardless of tyre, mass and wheelbase is what let the vehicle
|
|
158
|
+
* integrator go unstable and produce yaw opposing its own steering input.
|
|
159
|
+
*/
|
|
160
|
+
export declare function tirePeakCorneringStiffness(tire: PacejkaTireCoefficients | PacejkaTirePreset): number;
|
|
151
161
|
export declare function samplePacejkaTireForces(input: PacejkaTireForceInput): PacejkaTireForceSample;
|
|
152
162
|
//# sourceMappingURL=VehicleDynamics.d.ts.map
|