@aura3d/physics 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/package.json +2 -2
  2. package/dist/CharacterController.d.ts +0 -135
  3. package/dist/CharacterController.d.ts.map +0 -1
  4. package/dist/CharacterController.js +0 -609
  5. package/dist/CharacterController.js.map +0 -1
  6. package/dist/ClothFixtures.d.ts +0 -87
  7. package/dist/ClothFixtures.d.ts.map +0 -1
  8. package/dist/ClothFixtures.js +0 -264
  9. package/dist/ClothFixtures.js.map +0 -1
  10. package/dist/Crowd.d.ts +0 -64
  11. package/dist/Crowd.d.ts.map +0 -1
  12. package/dist/Crowd.js +0 -209
  13. package/dist/Crowd.js.map +0 -1
  14. package/dist/FireSmokeFixtures.d.ts +0 -103
  15. package/dist/FireSmokeFixtures.d.ts.map +0 -1
  16. package/dist/FireSmokeFixtures.js +0 -271
  17. package/dist/FireSmokeFixtures.js.map +0 -1
  18. package/dist/FluidFixtures.d.ts +0 -75
  19. package/dist/FluidFixtures.d.ts.map +0 -1
  20. package/dist/FluidFixtures.js +0 -219
  21. package/dist/FluidFixtures.js.map +0 -1
  22. package/dist/FractureFixtures.d.ts +0 -68
  23. package/dist/FractureFixtures.d.ts.map +0 -1
  24. package/dist/FractureFixtures.js +0 -199
  25. package/dist/FractureFixtures.js.map +0 -1
  26. package/dist/NarrowPhase.d.ts +0 -11
  27. package/dist/NarrowPhase.d.ts.map +0 -1
  28. package/dist/NarrowPhase.js +0 -565
  29. package/dist/NarrowPhase.js.map +0 -1
  30. package/dist/Navigation.d.ts +0 -67
  31. package/dist/Navigation.d.ts.map +0 -1
  32. package/dist/Navigation.js +0 -261
  33. package/dist/Navigation.js.map +0 -1
  34. package/dist/PathFollowDriver.d.ts +0 -162
  35. package/dist/PathFollowDriver.d.ts.map +0 -1
  36. package/dist/PathFollowDriver.js +0 -163
  37. package/dist/PathFollowDriver.js.map +0 -1
  38. package/dist/PhysicsSandboxFixtures.d.ts +0 -53
  39. package/dist/PhysicsSandboxFixtures.d.ts.map +0 -1
  40. package/dist/PhysicsSandboxFixtures.js +0 -280
  41. package/dist/PhysicsSandboxFixtures.js.map +0 -1
  42. package/dist/PlatformerFixtures.d.ts +0 -70
  43. package/dist/PlatformerFixtures.d.ts.map +0 -1
  44. package/dist/PlatformerFixtures.js +0 -120
  45. package/dist/PlatformerFixtures.js.map +0 -1
  46. package/dist/RacingLineProfile.d.ts +0 -116
  47. package/dist/RacingLineProfile.d.ts.map +0 -1
  48. package/dist/RacingLineProfile.js +0 -181
  49. package/dist/RacingLineProfile.js.map +0 -1
  50. package/dist/SoftBodyFixtures.d.ts +0 -70
  51. package/dist/SoftBodyFixtures.d.ts.map +0 -1
  52. package/dist/SoftBodyFixtures.js +0 -272
  53. package/dist/SoftBodyFixtures.js.map +0 -1
  54. package/dist/Steering.d.ts +0 -161
  55. package/dist/Steering.d.ts.map +0 -1
  56. package/dist/Steering.js +0 -347
  57. package/dist/Steering.js.map +0 -1
  58. package/dist/VehicleDynamics.d.ts +0 -162
  59. package/dist/VehicleDynamics.d.ts.map +0 -1
  60. package/dist/VehicleDynamics.js +0 -363
  61. package/dist/VehicleDynamics.js.map +0 -1
  62. package/dist/VehicleMotion.d.ts +0 -125
  63. package/dist/VehicleMotion.d.ts.map +0 -1
  64. package/dist/VehicleMotion.js +0 -373
  65. package/dist/VehicleMotion.js.map +0 -1
  66. package/dist/solverless-entry.d.ts +0 -41
  67. package/dist/solverless-entry.d.ts.map +0 -1
  68. package/dist/solverless-entry.js +0 -40
  69. package/dist/solverless-entry.js.map +0 -1
  70. package/dist/world-entry.d.ts +0 -31
  71. package/dist/world-entry.d.ts.map +0 -1
  72. package/dist/world-entry.js +0 -30
  73. package/dist/world-entry.js.map +0 -1
package/dist/Steering.js DELETED
@@ -1,347 +0,0 @@
1
- export function seekSteering(position, velocity, target, maxSpeed) {
2
- const toTarget = subtract(target, position);
3
- const distance = length(toTarget);
4
- if (distance === 0) {
5
- return { force: [-velocity[0], -velocity[1]], desiredVelocity: [0, 0], distance: 0, arrived: true };
6
- }
7
- const desiredVelocity = scale(toTarget, maxSpeed / distance);
8
- return {
9
- force: subtract(desiredVelocity, velocity),
10
- desiredVelocity,
11
- distance: round3(distance),
12
- arrived: false
13
- };
14
- }
15
- export function arriveSteering(options) {
16
- const tolerance = options.tolerance ?? 0.02;
17
- const toTarget = subtract(options.target, options.position);
18
- const distance = length(toTarget);
19
- if (distance <= tolerance) {
20
- return {
21
- force: [-options.velocity[0], -options.velocity[1]],
22
- desiredVelocity: [0, 0],
23
- distance: round3(distance),
24
- arrived: true
25
- };
26
- }
27
- const desiredSpeed = distance > options.slowingRadius
28
- ? options.maxSpeed
29
- : options.maxSpeed * (distance / Math.max(options.slowingRadius, tolerance));
30
- const desiredVelocity = scale(toTarget, desiredSpeed / distance);
31
- return {
32
- force: subtract(desiredVelocity, options.velocity),
33
- desiredVelocity,
34
- distance: round3(distance),
35
- arrived: false
36
- };
37
- }
38
- export function fleeSteering(options) {
39
- const panicDistance = options.panicDistance ?? Number.POSITIVE_INFINITY;
40
- const away = subtract(options.position, options.threat);
41
- const distance = length(away);
42
- if (distance > panicDistance || distance === 0) {
43
- return { force: [0, 0], desiredVelocity: [0, 0], distance: round3(distance), arrived: distance > panicDistance };
44
- }
45
- const desiredVelocity = scale(away, options.maxSpeed / distance);
46
- return {
47
- force: subtract(desiredVelocity, options.velocity),
48
- desiredVelocity,
49
- distance: round3(distance),
50
- arrived: false
51
- };
52
- }
53
- export function pursuitSteering(options) {
54
- const prediction = predictedPoint(options.position, options.velocity, options.targetPosition, options.targetVelocity, options.maxPredictionTime ?? 1);
55
- const steering = seekSteering(options.position, options.velocity, prediction.point, options.maxSpeed);
56
- return { ...steering, predictedTarget: prediction.point, predictionTime: prediction.time };
57
- }
58
- export function evadeSteering(options) {
59
- const prediction = predictedPoint(options.position, options.velocity, options.threatPosition, options.threatVelocity, options.maxPredictionTime ?? 1);
60
- const steering = fleeSteering({
61
- position: options.position,
62
- velocity: options.velocity,
63
- threat: prediction.point,
64
- maxSpeed: options.maxSpeed,
65
- panicDistance: options.panicDistance
66
- });
67
- return { ...steering, predictedTarget: prediction.point, predictionTime: prediction.time };
68
- }
69
- export function wanderSteering(options) {
70
- const radius = options.radius ?? 0.35;
71
- const forward = length(options.velocity) > 0.001 ? normalize(options.velocity) : [1, 0];
72
- const circleCenter = [options.position[0] + forward[0] * (options.distance ?? 0.55), options.position[1] + forward[1] * (options.distance ?? 0.55)];
73
- const angle = seededUnit(options.seed) * Math.PI * 2;
74
- const jitter = (options.jitter ?? 0.12) * (seededUnit(options.seed + 1) * 2 - 1);
75
- const wanderTarget = [
76
- circleCenter[0] + Math.cos(angle + jitter) * radius,
77
- circleCenter[1] + Math.sin(angle + jitter) * radius
78
- ];
79
- const steering = seekSteering(options.position, options.velocity, wanderTarget, options.maxSpeed);
80
- return { ...steering, wanderTarget: [round3(wanderTarget[0]), round3(wanderTarget[1])], seed: options.seed };
81
- }
82
- export function flockingSteering(options) {
83
- const separation = separationSteering(options.position, options.neighbors, options.maxSpeed, options.separationRadius ?? 0.24);
84
- const alignment = alignmentSteering(options.position, options.velocity, options.neighbors, options.maxSpeed, options.alignmentRadius ?? 0.45);
85
- const cohesion = cohesionSteering(options.position, options.velocity, options.neighbors, options.maxSpeed, options.cohesionRadius ?? 0.7);
86
- const force = add(scale(separation, options.separationWeight ?? 1.7), add(scale(alignment, options.alignmentWeight ?? 0.8), scale(cohesion, options.cohesionWeight ?? 0.9)));
87
- return {
88
- force: roundVector(force),
89
- desiredVelocity: roundVector(add(options.velocity, force)),
90
- distance: round3(options.neighbors.length > 0 ? averageNeighborDistance(options.position, options.neighbors) : 0),
91
- arrived: options.neighbors.length === 0,
92
- separation: roundVector(separation),
93
- alignment: roundVector(alignment),
94
- cohesion: roundVector(cohesion),
95
- neighborCount: options.neighbors.length
96
- };
97
- }
98
- export function obstacleAvoidanceSteering(options) {
99
- const speed = length(options.velocity);
100
- if (speed <= 0.001 || options.obstacles.length === 0) {
101
- return { force: [0, 0], desiredVelocity: [0, 0], distance: 0, arrived: true, obstacleDetected: false, closestDistance: 0 };
102
- }
103
- const forward = normalize(options.velocity);
104
- const right = perpendicular(forward);
105
- const detectionDistance = (options.detectionDistance ?? 0.8) * Math.min(1, speed / options.maxSpeed);
106
- const agentRadius = options.agentRadius ?? 0.08;
107
- let closest;
108
- for (const obstacle of options.obstacles) {
109
- const offset = subtract(obstacle.position, options.position);
110
- const forwardDistance = dot(offset, forward);
111
- if (forwardDistance < 0 || forwardDistance > detectionDistance)
112
- continue;
113
- const lateralDistance = dot(offset, right);
114
- const expandedRadius = obstacle.radius + agentRadius;
115
- if (Math.abs(lateralDistance) > expandedRadius)
116
- continue;
117
- if (!closest || forwardDistance < closest.forwardDistance) {
118
- closest = { obstacle, forwardDistance, lateralDistance };
119
- }
120
- }
121
- if (!closest) {
122
- return { force: [0, 0], desiredVelocity: [0, 0], distance: round3(detectionDistance), arrived: true, obstacleDetected: false, closestDistance: round3(detectionDistance) };
123
- }
124
- const expandedRadius = closest.obstacle.radius + agentRadius;
125
- const lateralSign = closest.lateralDistance >= 0 ? -1 : 1;
126
- const lateralStrength = (expandedRadius - Math.abs(closest.lateralDistance)) / Math.max(expandedRadius, 0.001);
127
- const brakeStrength = 1 - closest.forwardDistance / Math.max(detectionDistance, 0.001);
128
- const force = add(scale(right, lateralSign * lateralStrength * (options.avoidanceForce ?? options.maxSpeed)), scale(forward, -brakeStrength * (options.avoidanceForce ?? options.maxSpeed) * 0.35));
129
- return {
130
- force: roundVector(force),
131
- desiredVelocity: roundVector(add(options.velocity, force)),
132
- distance: round3(closest.forwardDistance),
133
- arrived: false,
134
- obstacleDetected: true,
135
- obstacleId: closest.obstacle.id,
136
- closestDistance: round3(closest.forwardDistance)
137
- };
138
- }
139
- export function wallAvoidanceSteering(options) {
140
- if (length(options.velocity) <= 0.001 || options.walls.length === 0) {
141
- return { force: [0, 0], desiredVelocity: [0, 0], distance: 0, arrived: true, wallDetected: false, hitDistance: 0 };
142
- }
143
- const forward = normalize(options.velocity);
144
- const whiskerLength = options.whiskerLength ?? 0.8;
145
- const spread = options.whiskerSpread ?? Math.PI / 5;
146
- const whiskers = [
147
- { direction: forward, lengthScale: 1 },
148
- { direction: rotate(forward, spread), lengthScale: 0.78 },
149
- { direction: rotate(forward, -spread), lengthScale: 0.78 }
150
- ];
151
- let closest;
152
- for (const whisker of whiskers) {
153
- const end = add(options.position, scale(whisker.direction, whiskerLength * whisker.lengthScale));
154
- for (const wall of options.walls) {
155
- const hit = segmentIntersection(options.position, end, wall.start, wall.end);
156
- if (!hit)
157
- continue;
158
- const distance = length(subtract(hit, options.position));
159
- if (!closest || distance < closest.distance) {
160
- closest = { wall, distance, normal: normalize(wall.normal), length: whiskerLength * whisker.lengthScale };
161
- }
162
- }
163
- }
164
- if (!closest) {
165
- return { force: [0, 0], desiredVelocity: [0, 0], distance: round3(whiskerLength), arrived: true, wallDetected: false, hitDistance: round3(whiskerLength) };
166
- }
167
- const strength = 1 - closest.distance / Math.max(closest.length, 0.001);
168
- const force = scale(closest.normal, strength * (options.avoidanceForce ?? options.maxSpeed));
169
- return {
170
- force: roundVector(force),
171
- desiredVelocity: roundVector(add(options.velocity, force)),
172
- distance: round3(closest.distance),
173
- arrived: false,
174
- wallDetected: true,
175
- wallId: closest.wall.id,
176
- hitDistance: round3(closest.distance)
177
- };
178
- }
179
- export function blendSteeringForces(options) {
180
- const mode = options.mode ?? "weighted-sum";
181
- const enabled = options.entries.filter((entry) => entry.enabled !== false);
182
- if (mode === "priority") {
183
- const threshold = options.priorityThreshold ?? 0.001;
184
- const sorted = [...enabled].sort((left, right) => (right.priority ?? 0) - (left.priority ?? 0));
185
- const selected = sorted.find((entry) => length(scale(entry.force, entry.weight ?? 1)) > threshold);
186
- const force = selected ? clampMagnitude(scale(selected.force, selected.weight ?? 1), options.maxForce ?? Number.POSITIVE_INFINITY) : [0, 0];
187
- return { force: roundVector(force), selectedIds: selected ? [selected.id] : [], mode };
188
- }
189
- const force = enabled.reduce((sum, entry) => add(sum, scale(entry.force, entry.weight ?? 1)), [0, 0]);
190
- return {
191
- force: roundVector(clampMagnitude(force, options.maxForce ?? Number.POSITIVE_INFINITY)),
192
- selectedIds: enabled.map((entry) => entry.id),
193
- mode
194
- };
195
- }
196
- export class SteeringAgent {
197
- position;
198
- velocity;
199
- distanceTraveled = 0;
200
- maxSpeed;
201
- maxForce;
202
- constructor(options) {
203
- this.position = options.position;
204
- this.velocity = options.velocity ?? [0, 0];
205
- this.maxSpeed = options.maxSpeed ?? 1;
206
- this.maxForce = options.maxForce ?? 1;
207
- if (!Number.isFinite(this.maxSpeed) || this.maxSpeed <= 0 || !Number.isFinite(this.maxForce) || this.maxForce <= 0) {
208
- throw new RangeError("SteeringAgent maxSpeed and maxForce must be finite positive numbers.");
209
- }
210
- }
211
- apply(force, deltaSeconds) {
212
- const dt = Math.max(0, deltaSeconds);
213
- const clampedForce = clampMagnitude(force, this.maxForce);
214
- this.velocity = clampMagnitude([
215
- this.velocity[0] + clampedForce[0] * dt,
216
- this.velocity[1] + clampedForce[1] * dt
217
- ], this.maxSpeed);
218
- const step = [this.velocity[0] * dt, this.velocity[1] * dt];
219
- this.position = [this.position[0] + step[0], this.position[1] + step[1]];
220
- this.distanceTraveled += length(step);
221
- return this.snapshot();
222
- }
223
- snapshot() {
224
- return {
225
- position: [round3(this.position[0]), round3(this.position[1])],
226
- velocity: [round3(this.velocity[0]), round3(this.velocity[1])],
227
- speed: round3(length(this.velocity)),
228
- distanceTraveled: round3(this.distanceTraveled)
229
- };
230
- }
231
- }
232
- function subtract(left, right) {
233
- return [left[0] - right[0], left[1] - right[1]];
234
- }
235
- function add(left, right) {
236
- return [left[0] + right[0], left[1] + right[1]];
237
- }
238
- function scale(value, scalar) {
239
- return [value[0] * scalar, value[1] * scalar];
240
- }
241
- function dot(left, right) {
242
- return left[0] * right[0] + left[1] * right[1];
243
- }
244
- function length(value) {
245
- return Math.hypot(value[0], value[1]);
246
- }
247
- function normalize(value) {
248
- const magnitude = length(value);
249
- return magnitude === 0 ? [0, 0] : [value[0] / magnitude, value[1] / magnitude];
250
- }
251
- function clampMagnitude(value, maxMagnitude) {
252
- const magnitude = length(value);
253
- if (magnitude <= maxMagnitude || magnitude === 0)
254
- return value;
255
- return scale(value, maxMagnitude / magnitude);
256
- }
257
- function perpendicular(value) {
258
- return [-value[1], value[0]];
259
- }
260
- function rotate(value, radians) {
261
- const cos = Math.cos(radians);
262
- const sin = Math.sin(radians);
263
- return [value[0] * cos - value[1] * sin, value[0] * sin + value[1] * cos];
264
- }
265
- function roundVector(value) {
266
- return [round3(value[0]), round3(value[1])];
267
- }
268
- function separationSteering(position, neighbors, maxSpeed, radius) {
269
- let force = [0, 0];
270
- let count = 0;
271
- for (const neighbor of neighbors) {
272
- const away = subtract(position, neighbor.position);
273
- const distance = length(away);
274
- if (distance > 0.001 && distance <= radius) {
275
- force = add(force, scale(normalize(away), 1 / distance));
276
- count += 1;
277
- }
278
- }
279
- return count > 0 ? scale(normalize(scale(force, 1 / count)), maxSpeed) : [0, 0];
280
- }
281
- function alignmentSteering(position, velocity, neighbors, maxSpeed, radius) {
282
- let average = [0, 0];
283
- let count = 0;
284
- for (const neighbor of neighbors) {
285
- if (length(subtract(neighbor.position, position)) <= radius) {
286
- average = add(average, neighbor.velocity);
287
- count += 1;
288
- }
289
- }
290
- if (count === 0 || length(average) === 0)
291
- return [0, 0];
292
- return subtract(scale(normalize(scale(average, 1 / count)), maxSpeed), velocity);
293
- }
294
- function cohesionSteering(position, velocity, neighbors, maxSpeed, radius) {
295
- let center = [0, 0];
296
- let count = 0;
297
- for (const neighbor of neighbors) {
298
- const toNeighbor = subtract(neighbor.position, position);
299
- if (length(toNeighbor) <= radius) {
300
- center = add(center, neighbor.position);
301
- count += 1;
302
- }
303
- }
304
- if (count === 0)
305
- return [0, 0];
306
- const target = scale(center, 1 / count);
307
- return seekSteering(position, velocity, target, maxSpeed).force;
308
- }
309
- function averageNeighborDistance(position, neighbors) {
310
- return neighbors.reduce((sum, neighbor) => sum + length(subtract(neighbor.position, position)), 0) / Math.max(1, neighbors.length);
311
- }
312
- function segmentIntersection(a, b, c, d) {
313
- const r = subtract(b, a);
314
- const s = subtract(d, c);
315
- const denominator = cross(r, s);
316
- if (Math.abs(denominator) < 0.000001)
317
- return null;
318
- const cMinusA = subtract(c, a);
319
- const t = cross(cMinusA, s) / denominator;
320
- const u = cross(cMinusA, r) / denominator;
321
- if (t < 0 || t > 1 || u < 0 || u > 1)
322
- return null;
323
- return [a[0] + r[0] * t, a[1] + r[1] * t];
324
- }
325
- function cross(left, right) {
326
- return left[0] * right[1] - left[1] * right[0];
327
- }
328
- function predictedPoint(position, velocity, targetPosition, targetVelocity, maxPredictionTime) {
329
- const toTarget = subtract(targetPosition, position);
330
- const distance = length(toTarget);
331
- const relativeSpeed = length(velocity) + length(targetVelocity);
332
- const predictionTime = Math.min(maxPredictionTime, relativeSpeed > 0.001 ? distance / relativeSpeed : maxPredictionTime);
333
- return {
334
- point: [round3(targetPosition[0] + targetVelocity[0] * predictionTime), round3(targetPosition[1] + targetVelocity[1] * predictionTime)],
335
- time: round3(predictionTime)
336
- };
337
- }
338
- function seededUnit(seed) {
339
- let value = (Math.trunc(seed) >>> 0) + 0x6d2b79f5;
340
- value = Math.imul(value ^ (value >>> 15), value | 1);
341
- value ^= value + Math.imul(value ^ (value >>> 7), value | 61);
342
- return ((value ^ (value >>> 14)) >>> 0) / 4_294_967_296;
343
- }
344
- function round3(value) {
345
- return Number(value.toFixed(3));
346
- }
347
- //# sourceMappingURL=Steering.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Steering.js","sourceRoot":"","sources":["../../../../packages/physics/src/Steering.ts"],"names":[],"mappings":"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"}
@@ -1,162 +0,0 @@
1
- export interface ArcadeVehicleDynamicsInput {
2
- readonly elapsedSeconds: number;
3
- readonly throttle?: number;
4
- readonly brake?: number;
5
- readonly steer?: number;
6
- readonly handbrake?: boolean;
7
- readonly nitro?: boolean;
8
- readonly maxSpeedKph?: number;
9
- readonly acceleration?: number;
10
- readonly brakeForce?: number;
11
- readonly gripFactor?: number;
12
- readonly driftFactor?: number;
13
- }
14
- export interface ArcadeVehicleDynamicsSample {
15
- readonly speedKph: number;
16
- readonly rpm: number;
17
- readonly nitro: number;
18
- readonly steerAngle: number;
19
- readonly driftSlip: number;
20
- readonly grip: number;
21
- readonly wheelSpin: number;
22
- readonly suspensionCompression: readonly [number, number, number, number];
23
- }
24
- export type PacejkaTirePreset = "street" | "sport" | "racing" | "offroad";
25
- export type RacingAiDifficulty = "easy" | "medium" | "hard";
26
- export type DrivetrainDifferential = "open" | "limited-slip" | "locked" | "electronic";
27
- export interface PacejkaTireCoefficients {
28
- readonly b: number;
29
- readonly c: number;
30
- readonly d: number;
31
- readonly e: number;
32
- }
33
- export interface PacejkaTireForceInput {
34
- readonly longitudinalVelocity: number;
35
- readonly lateralVelocity?: number;
36
- readonly angularVelocity: number;
37
- readonly normalForce: number;
38
- readonly steeringAngle?: number;
39
- readonly camberAngle?: number;
40
- readonly radius?: number;
41
- readonly width?: number;
42
- readonly maxLoad?: number;
43
- readonly loadSensitivity?: number;
44
- readonly rollingResistance?: number;
45
- readonly longitudinal?: PacejkaTireCoefficients | PacejkaTirePreset;
46
- readonly lateral?: PacejkaTireCoefficients | PacejkaTirePreset;
47
- }
48
- export interface PacejkaTireForceSample {
49
- readonly longitudinalForce: number;
50
- readonly lateralForce: number;
51
- readonly combinedForce: number;
52
- readonly slipRatio: number;
53
- readonly slipAngle: number;
54
- readonly aligningTorque: number;
55
- readonly optimalSlipRatio: number;
56
- readonly optimalSlipAngle: number;
57
- readonly preset: {
58
- readonly longitudinal: PacejkaTirePreset | "custom";
59
- readonly lateral: PacejkaTirePreset | "custom";
60
- };
61
- }
62
- export interface RacingAiDriverInput {
63
- readonly difficulty?: RacingAiDifficulty;
64
- readonly elapsedSeconds: number;
65
- readonly progress: number;
66
- readonly speedKph: number;
67
- readonly targetSpeedKph?: number;
68
- readonly trackCurvature?: number;
69
- readonly opponentDistance?: number;
70
- readonly opponentAhead?: boolean;
71
- readonly playerGapSeconds?: number;
72
- }
73
- export interface RacingAiDriverSample {
74
- readonly difficulty: RacingAiDifficulty;
75
- readonly throttle: number;
76
- readonly brake: number;
77
- readonly steer: number;
78
- readonly targetSpeedKph: number;
79
- readonly lookaheadDistance: number;
80
- readonly reactionTime: number;
81
- readonly aggressiveness: number;
82
- readonly overtaking: boolean;
83
- readonly overtakeOffset: number;
84
- readonly rubberbandBoost: number;
85
- }
86
- export interface VehicleDrivetrainInput {
87
- readonly speedKph: number;
88
- readonly throttle?: number;
89
- readonly clutch?: number;
90
- readonly gearRatios?: readonly number[];
91
- readonly finalDriveRatio?: number;
92
- readonly idleRpm?: number;
93
- readonly maxRpm?: number;
94
- readonly peakTorque?: number;
95
- readonly peakTorqueRpm?: number;
96
- readonly upshiftRpm?: number;
97
- readonly downshiftRpm?: number;
98
- readonly differential?: DrivetrainDifferential;
99
- readonly frontRearSplit?: number;
100
- readonly lockingFactor?: number;
101
- readonly dragCoefficient?: number;
102
- readonly frontalArea?: number;
103
- readonly downforceCoefficient?: number;
104
- }
105
- export interface VehicleDrivetrainSample {
106
- readonly gear: number;
107
- readonly gearRatio: number;
108
- readonly engineRpm: number;
109
- readonly engineTorque: number;
110
- readonly wheelTorque: number;
111
- readonly frontTorque: number;
112
- readonly rearTorque: number;
113
- readonly dragForce: number;
114
- readonly downforce: number;
115
- readonly shiftState: "hold" | "upshift" | "downshift";
116
- readonly differential: DrivetrainDifferential;
117
- }
118
- export interface VehicleEffectEmitterInput {
119
- readonly speedKph: number;
120
- readonly throttle?: number;
121
- readonly steer?: number;
122
- readonly handbrake?: boolean;
123
- readonly nitroActive?: boolean;
124
- readonly wheelOnGround?: readonly [boolean, boolean, boolean, boolean];
125
- }
126
- export interface VehicleEffectEmitterSample {
127
- readonly tireSmokeRates: readonly [number, number, number, number];
128
- readonly totalTireSmokeRate: number;
129
- readonly nitroFlameRate: number;
130
- readonly visibleEffectEmitters: number;
131
- readonly smokeReason: "none" | "handbrake" | "launch-wheelspin" | "high-speed-steer";
132
- }
133
- export interface VehicleDamageInput {
134
- readonly health?: number;
135
- readonly impactSpeedKph?: number;
136
- readonly collisionSeverity?: number;
137
- readonly repair?: number;
138
- }
139
- export interface VehicleDamageSample {
140
- readonly health: number;
141
- readonly damage: number;
142
- readonly impactDamage: number;
143
- readonly visualDamageLevel: "none" | "scratched" | "dented" | "critical";
144
- readonly disabled: boolean;
145
- }
146
- export declare function sampleArcadeVehicleDynamics(input: ArcadeVehicleDynamicsInput): ArcadeVehicleDynamicsSample;
147
- export declare function sampleVehicleDamage(input: VehicleDamageInput): VehicleDamageSample;
148
- export declare function sampleVehicleEffectEmitters(input: VehicleEffectEmitterInput): VehicleEffectEmitterSample;
149
- export declare function sampleVehicleDrivetrain(input: VehicleDrivetrainInput): VehicleDrivetrainSample;
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;
161
- export declare function samplePacejkaTireForces(input: PacejkaTireForceInput): PacejkaTireForceSample;
162
- //# sourceMappingURL=VehicleDynamics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VehicleDynamics.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/VehicleDynamics.ts"],"names":[],"mappings":"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"}