@woosh/meep-engine 2.153.0 → 2.155.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/package.json +1 -1
- package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts +112 -0
- package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts.map +1 -0
- package/src/core/geom/3d/shape/ConvexHullShape3D.js +325 -0
- package/src/core/geom/vec3/v3_array_copy.d.ts +3 -3
- package/src/core/geom/vec3/v3_array_copy.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_array_copy.js +2 -2
- package/src/core/geom/vec3/v3_cross.d.ts +17 -0
- package/src/core/geom/vec3/v3_cross.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_cross.js +20 -0
- package/src/core/geom/vec3/v3_subtract.d.ts +16 -0
- package/src/core/geom/vec3/v3_subtract.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_subtract.js +19 -0
- package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.js +8 -0
- package/src/engine/graphics/ecs/trail2d/Trail2D.d.ts +4 -0
- package/src/engine/graphics/ecs/trail2d/Trail2D.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail2d/Trail2D.js +21 -0
- package/src/engine/physics/PLAN.md +4 -4
- package/src/engine/physics/body/BodyStorage.d.ts +3 -1
- package/src/engine/physics/body/BodyStorage.d.ts.map +1 -1
- package/src/engine/physics/body/BodyStorage.js +452 -450
- package/src/engine/physics/body/SolverBodyState.d.ts.map +1 -1
- package/src/engine/physics/body/SolverBodyState.js +6 -5
- package/src/engine/physics/broadphase/generate_pairs.d.ts.map +1 -1
- package/src/engine/physics/broadphase/generate_pairs.js +9 -1
- package/src/engine/physics/ccd/linear_sweep.d.ts.map +1 -1
- package/src/engine/physics/ccd/linear_sweep.js +237 -238
- package/src/engine/physics/computeInterceptPoint.d.ts.map +1 -1
- package/src/engine/physics/computeInterceptPoint.js +8 -3
- package/src/engine/physics/contact/ManifoldStore.d.ts +0 -16
- package/src/engine/physics/contact/ManifoldStore.d.ts.map +1 -1
- package/src/engine/physics/contact/ManifoldStore.js +1 -38
- package/src/engine/physics/ecs/BodyKind.d.ts +3 -2
- package/src/engine/physics/ecs/BodyKind.d.ts.map +1 -1
- package/src/engine/physics/ecs/BodyKind.js +25 -24
- package/src/engine/physics/ecs/PhysicsEvents.d.ts +4 -5
- package/src/engine/physics/ecs/PhysicsEvents.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsEvents.js +15 -16
- package/src/engine/physics/ecs/PhysicsSystem.d.ts +5 -30
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +13 -45
- package/src/engine/physics/ecs/RigidBodySerializationAdapter.d.ts.map +1 -1
- package/src/engine/physics/ecs/RigidBodySerializationAdapter.js +85 -81
- package/src/engine/physics/ecs/is_sensor.d.ts +18 -0
- package/src/engine/physics/ecs/is_sensor.d.ts.map +1 -0
- package/src/engine/physics/ecs/is_sensor.js +27 -0
- package/src/engine/physics/events/ContactEventBuffer.d.ts +2 -1
- package/src/engine/physics/events/ContactEventBuffer.d.ts.map +1 -1
- package/src/engine/physics/events/ContactEventBuffer.js +84 -83
- package/src/engine/physics/gjk/gjk.d.ts +0 -26
- package/src/engine/physics/gjk/gjk.d.ts.map +1 -1
- package/src/engine/physics/gjk/gjk.js +3 -52
- package/src/engine/physics/gjk/gjk_epa_penetration.d.ts +20 -0
- package/src/engine/physics/gjk/gjk_epa_penetration.d.ts.map +1 -0
- package/src/engine/physics/gjk/gjk_epa_penetration.js +548 -0
- package/src/engine/physics/gjk/minkowski_support.d.ts +4 -9
- package/src/engine/physics/gjk/minkowski_support.d.ts.map +1 -1
- package/src/engine/physics/gjk/minkowski_support.js +70 -75
- package/src/engine/physics/gjk/mpr.d.ts +1 -1
- package/src/engine/physics/gjk/mpr.d.ts.map +1 -1
- package/src/engine/physics/gjk/mpr.js +362 -344
- package/src/engine/physics/island/IslandBuilder.d.ts.map +1 -1
- package/src/engine/physics/island/IslandBuilder.js +431 -428
- package/src/engine/physics/narrowphase/box_box_manifold.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/box_box_manifold.js +4 -81
- package/src/engine/physics/narrowphase/box_triangle_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/box_triangle_contact.js +4 -39
- package/src/engine/physics/narrowphase/capsule_contacts.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/capsule_contacts.js +459 -462
- package/src/engine/physics/narrowphase/clip_against_axis_uv.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/clip_against_axis_uv.js +4 -1
- package/src/engine/physics/narrowphase/convex_convex_manifold.d.ts +83 -0
- package/src/engine/physics/narrowphase/convex_convex_manifold.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/convex_convex_manifold.js +425 -0
- package/src/engine/physics/narrowphase/convex_decomposition.d.ts +32 -0
- package/src/engine/physics/narrowphase/convex_decomposition.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/convex_decomposition.js +293 -0
- package/src/engine/physics/narrowphase/mesh_convex_hull.d.ts +41 -0
- package/src/engine/physics/narrowphase/mesh_convex_hull.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/mesh_convex_hull.js +106 -0
- package/src/engine/physics/narrowphase/mesh_mesh_tet_manifold.d.ts +8 -0
- package/src/engine/physics/narrowphase/mesh_mesh_tet_manifold.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/mesh_mesh_tet_manifold.js +117 -0
- package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/narrowphase_step.js +105 -102
- package/src/engine/physics/narrowphase/reduce_manifold_contacts.d.ts +29 -0
- package/src/engine/physics/narrowphase/reduce_manifold_contacts.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/reduce_manifold_contacts.js +69 -0
- package/src/engine/physics/narrowphase/refine_ray_concave.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/refine_ray_concave.js +152 -145
- package/src/engine/physics/narrowphase/sphere_box_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/sphere_box_contact.js +132 -123
- package/src/engine/physics/queries/overlap_shape.d.ts.map +1 -1
- package/src/engine/physics/queries/overlap_shape.js +16 -17
- package/src/engine/physics/queries/raycast.d.ts +5 -0
- package/src/engine/physics/queries/raycast.d.ts.map +1 -1
- package/src/engine/physics/queries/raycast.js +16 -8
- package/src/engine/physics/queries/shape_cast.d.ts.map +1 -1
- package/src/engine/physics/queries/shape_cast.js +13 -7
- package/src/engine/physics/solver/solve_contacts.d.ts.map +1 -1
- package/src/engine/physics/solver/solve_contacts.js +8 -11
- package/src/engine/physics/vehicle/RaycastVehicle.d.ts.map +1 -1
- package/src/engine/physics/vehicle/RaycastVehicle.js +339 -333
- package/src/engine/physics/gjk/expanding_polytope_algorithm.d.ts +0 -13
- package/src/engine/physics/gjk/expanding_polytope_algorithm.d.ts.map +0 -1
- package/src/engine/physics/gjk/expanding_polytope_algorithm.js +0 -399
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
* composite convex shapes (no exact ray test yet) fall back to the broadphase
|
|
8
8
|
* AABB hit + AABB-face normal.
|
|
9
9
|
*
|
|
10
|
+
* **Sensors are skipped.** A ray passes straight through any body or collider
|
|
11
|
+
* flagged {@link is_sensor} (a trigger is not a solid surface), landing on the
|
|
12
|
+
* nearest solid surface behind it. This is the only behaviour — a query that
|
|
13
|
+
* wants to find trigger volumes uses an overlap query, not a ray.
|
|
14
|
+
*
|
|
10
15
|
* Multi-collider bodies resolve their primary (first-attached) collider — the
|
|
11
16
|
* BVH leaf encodes only `body_id`; per-collider rays need the leaf user-data to
|
|
12
17
|
* carry the collider index (future work).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raycast.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/queries/raycast.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"raycast.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/queries/raycast.js"],"names":[],"mappings":"AAiJA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,yGAJmB,MAAM,yBAAsB,OAAO,GAEzC,OAAO,CAwCnB"}
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
aabb3_near_distance_to_intersection_ray_segment
|
|
12
12
|
} from "../../../core/geom/3d/aabb/aabb3_near_distance_to_intersection_ray_segment.js";
|
|
13
13
|
import { body_id_index } from "../body/BodyStorage.js";
|
|
14
|
+
import { is_sensor } from "../ecs/is_sensor.js";
|
|
14
15
|
import { RAY_REFINE_UNSUPPORTED, refine_ray_hit } from "../narrowphase/refine_ray_hit.js";
|
|
15
16
|
|
|
16
17
|
const stack = SCRATCH_UINT32_TRAVERSAL_STACK;
|
|
@@ -110,6 +111,8 @@ function bvh_raycast_nearest(
|
|
|
110
111
|
const idx = body_id_index(body_id);
|
|
111
112
|
const collider = system.__primary_collider(idx);
|
|
112
113
|
if (collider === null) continue;
|
|
114
|
+
// Sensors (triggers) are not solid surfaces — a ray passes through them.
|
|
115
|
+
if (is_sensor(system.__bodies[idx], collider)) continue;
|
|
113
116
|
if (!filter(entity, collider)) continue;
|
|
114
117
|
|
|
115
118
|
const tr = system.__transforms[idx];
|
|
@@ -120,14 +123,14 @@ function bvh_raycast_nearest(
|
|
|
120
123
|
|
|
121
124
|
if (refined === RAY_REFINE_UNSUPPORTED) {
|
|
122
125
|
// No exact ray test for this shape — keep the broadphase AABB hit.
|
|
123
|
-
if (t_near
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
126
|
+
// The line-97 `if (t_near >= acc.best_t) continue;` already guarantees
|
|
127
|
+
// t_near < acc.best_t here, so no further guard is needed.
|
|
128
|
+
acc.best_t = t_near;
|
|
129
|
+
acc.best_body = body_id;
|
|
130
|
+
aabb_face_normal(best_normal,
|
|
131
|
+
float32[address], float32[address + 1], float32[address + 2],
|
|
132
|
+
float32[address + 3], float32[address + 4], float32[address + 5],
|
|
133
|
+
ox + dx * t_near, oy + dy * t_near, oz + dz * t_near);
|
|
131
134
|
} else if (refined < acc.best_t) { // a refined miss is Infinity → never wins
|
|
132
135
|
acc.best_t = refined;
|
|
133
136
|
acc.best_body = body_id;
|
|
@@ -149,6 +152,11 @@ function bvh_raycast_nearest(
|
|
|
149
152
|
* composite convex shapes (no exact ray test yet) fall back to the broadphase
|
|
150
153
|
* AABB hit + AABB-face normal.
|
|
151
154
|
*
|
|
155
|
+
* **Sensors are skipped.** A ray passes straight through any body or collider
|
|
156
|
+
* flagged {@link is_sensor} (a trigger is not a solid surface), landing on the
|
|
157
|
+
* nearest solid surface behind it. This is the only behaviour — a query that
|
|
158
|
+
* wants to find trigger volumes uses an overlap query, not a ray.
|
|
159
|
+
*
|
|
152
160
|
* Multi-collider bodies resolve their primary (first-attached) collider — the
|
|
153
161
|
* BVH leaf encodes only `body_id`; per-collider rays need the leaf user-data to
|
|
154
162
|
* carry the collider index (future work).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape_cast.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/queries/shape_cast.js"],"names":[],"mappings":"AAwEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,+FANW;IAAC,CAAC,EAAC,MAAM,CAAC;IAAA,CAAC,EAAC,MAAM,CAAC;IAAA,CAAC,EAAC,MAAM,CAAC;IAAA,CAAC,EAAC,MAAM,CAAA;CAAC,iDAE7B,MAAM,yBAAsB,OAAO,GAEzC,OAAO,
|
|
1
|
+
{"version":3,"file":"shape_cast.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/queries/shape_cast.js"],"names":[],"mappings":"AAwEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,+FANW;IAAC,CAAC,EAAC,MAAM,CAAC;IAAA,CAAC,EAAC,MAAM,CAAC;IAAA,CAAC,EAAC,MAAM,CAAC;IAAA,CAAC,EAAC,MAAM,CAAA;CAAC,iDAE7B,MAAM,yBAAsB,OAAO,GAEzC,OAAO,CAiRnB"}
|
|
@@ -155,13 +155,19 @@ export function shape_cast(system, ray, shape, rotation, result, filter = return
|
|
|
155
155
|
if (dz > 0) swept_aabb[5] += dz * tMax; else swept_aabb[2] += dz * tMax;
|
|
156
156
|
|
|
157
157
|
// ── 2. Broadphase: gather candidates from both trees ───────────
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
158
|
+
// The BVH query returns the TRUE overlap count and silently drops writes past
|
|
159
|
+
// the buffer end. An undersized buffer would make the narrowphase loop read
|
|
160
|
+
// `undefined` candidates and silently MISS the true nearest hit (tunnelling on
|
|
161
|
+
// a long sweep through a dense scene). Grow by doubling and re-query until
|
|
162
|
+
// both fit (deterministic queries → converges in one resize).
|
|
163
|
+
let n_static, n_dynamic, n_total;
|
|
164
|
+
for (;;) {
|
|
165
|
+
n_static = bvh_query_user_data_overlaps_aabb(scratch_candidates, 0, system.staticBvh, swept_aabb);
|
|
166
|
+
n_dynamic = bvh_query_user_data_overlaps_aabb(scratch_candidates, n_static, system.dynamicBvh, swept_aabb);
|
|
167
|
+
n_total = n_static + n_dynamic;
|
|
168
|
+
if (n_total <= scratch_candidates.length) break;
|
|
169
|
+
scratch_candidates = new Uint32Array(Math.max(n_total, scratch_candidates.length * 2));
|
|
170
|
+
}
|
|
165
171
|
if (n_total === 0) return false;
|
|
166
172
|
|
|
167
173
|
// ── 3. Narrowphase: per-candidate bisection ────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solve_contacts.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/solver/solve_contacts.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"solve_contacts.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/solver/solve_contacts.js"],"names":[],"mappings":"AAyfA;;;;;;;;;;;;;GAaG;AACH,0FAHW,MAAM,GACJ,MAAM,CAgMlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,2FA0CC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,uEAFW,WAAW,QA4FrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,iGAsGC;AAED;;;;;;;;GAQG;AACH,uFAFW,MAAM,QA8HhB;AAED;;;;;;;;;;;GAWG;AACH,yFAuDC;AAED;;;;;;;;;;;;;;GAcG;AACH,2FAFW,MAAM,QA2EhB;AAED;;;;;;;;;;;;;;;GAeG;AACH,oFAJW,MAAM,UACN,MAAM,cACN,MAAM,QAahB;AAruCD;;;;;GAKG;AACH,0CAFU,MAAM,CAEuB;AAEvC;;;GAGG;AACH,0CAFU,MAAM,CAEsB"}
|
|
@@ -19,8 +19,7 @@ import {
|
|
|
19
19
|
SBS_STRIDE,
|
|
20
20
|
} from "../body/SolverBodyState.js";
|
|
21
21
|
import { CONTACT_STRIDE } from "../contact/ManifoldStore.js";
|
|
22
|
-
import {
|
|
23
|
-
import { RigidBodyFlags } from "../ecs/RigidBodyFlags.js";
|
|
22
|
+
import { is_sensor } from "../ecs/is_sensor.js";
|
|
24
23
|
import { world_inverse_inertia_apply_raw } from "../inertia/world_inverse_inertia.js";
|
|
25
24
|
import { redetect_pair_geometry } from "../narrowphase/narrowphase_step.js";
|
|
26
25
|
import { friction_cone_clamp } from "./friction_cone.js";
|
|
@@ -66,8 +65,8 @@ import { friction_cone_clamp } from "./friction_cone.js";
|
|
|
66
65
|
*/
|
|
67
66
|
|
|
68
67
|
/**
|
|
69
|
-
* A pair is "sensor-only" when either
|
|
70
|
-
* collider carries the IsSensor flag. The manifold still exists (so
|
|
68
|
+
* A pair is "sensor-only" when either side {@link is_sensor} (the body OR its
|
|
69
|
+
* primary collider carries the IsSensor flag). The manifold still exists (so
|
|
71
70
|
* Begin/Stay/End events fire from the manifold-diff pass) but no impulse
|
|
72
71
|
* is applied.
|
|
73
72
|
*
|
|
@@ -78,11 +77,7 @@ import { friction_cone_clamp } from "./friction_cone.js";
|
|
|
78
77
|
* @returns {boolean}
|
|
79
78
|
*/
|
|
80
79
|
function pair_is_sensor(rbA, colA, rbB, colB) {
|
|
81
|
-
|
|
82
|
-
const body_flags_union = rbA.flags | rbB.flags;
|
|
83
|
-
|
|
84
|
-
return (body_flags_union & RigidBodyFlags.IsSensor) !== 0
|
|
85
|
-
|| (collider_flags_union & ColliderFlags.IsSensor) !== 0
|
|
80
|
+
return is_sensor(rbA, colA) || is_sensor(rbB, colB);
|
|
86
81
|
}
|
|
87
82
|
|
|
88
83
|
/**
|
|
@@ -524,6 +519,10 @@ function island_slot_range(system) {
|
|
|
524
519
|
*/
|
|
525
520
|
export function prepare_contacts(manifolds, system, dt_sub) {
|
|
526
521
|
g_contact_count = 0;
|
|
522
|
+
// Reset BEFORE the early returns below: on a step with awake bodies but zero
|
|
523
|
+
// contacts/islands, an early return must not leave a stale count from a prior
|
|
524
|
+
// step that redetect_concave_contacts would then act on against evicted slots.
|
|
525
|
+
g_concave_slot_count = 0;
|
|
527
526
|
|
|
528
527
|
if (dt_sub <= 0) {
|
|
529
528
|
return 0;
|
|
@@ -561,8 +560,6 @@ export function prepare_contacts(manifolds, system, dt_sub) {
|
|
|
561
560
|
const pos_jn = scratch_pos_jn;
|
|
562
561
|
const ss = system.__solver_state.data;
|
|
563
562
|
|
|
564
|
-
g_concave_slot_count = 0;
|
|
565
|
-
|
|
566
563
|
let c = 0;
|
|
567
564
|
for (let i = 0; i < total_slots; i++) {
|
|
568
565
|
const slot = slot_list[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RaycastVehicle.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/vehicle/RaycastVehicle.js"],"names":[],"mappings":"AAyEA;;;;GAIG;AACH;IAGQ,8DAA8D;IAC9D,eAD8C,YAAY,CAClB;IACxC,8EAA8E;IAC9E,oBAD8D,YAAY,CACnB;IACvD,sEAAsE;IACtE,cADsD,YAAY,CAClB;IAChD,6BAA+B;IAC/B,4BAA8B;IAC9B,0BAA2B;IAC3B,2BAAkC;IAClC,eAAiB;IACjB,iBAAmB;IACnB,iBAAoB;IACpB,gBAAmB;IAGnB,mBAAsB;IACtB,yBAAiD;IACjD,oBAAoB;IACpB,gDAAgD;IAChD,cADgC,YAAY,CACL;IACvC,iDAAiD;IACjD,eADiC,YAAY,CACI;IACjD,qDAAqD;IACrD,sBAAuB;IACvB,gFAAgF;IAChF,iBAAiB;IACjB,kDAAkD;IAClD,iBAAiB;IACjB,iDAAiD;IACjD,qBAAqB;IACrB,yDAAyD;IACzD,wBAAwB;CAE/B;AAED;IACI;;;;OAIG;IACH,wFAoBC;IAnBG,sBAAoB;IACpB,uBAA8B;IAC9B,4BAAwC;IAExC,sBAAsB;IACtB,QADW,KAAK,EAAE,CACF;IAEhB,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IAEtB,YAAuB;IACvB,2BAAsC;IAEtC,kDAAmF;IAGnF;;;;MAAmC;IACnC;;;;MAAmC;IAGvC;;;;;;;;;;;;;;;;;OAiBG;IACH;QAb0B,aAAa,EAA5B,MAAM,EAAE;QACQ,kBAAkB,GAAlC,MAAM,EAAE;QACQ,YAAY,GAA5B,MAAM,EAAE;QACM,oBAAoB,GAAlC,MAAM;QACQ,mBAAmB,GAAjC,MAAM;QACQ,iBAAiB,GAA/B,MAAM;QACQ,kBAAkB,GAAhC,MAAM;QACQ,MAAM,GAApB,MAAM;QACQ,QAAQ,GAAtB,MAAM;QACS,OAAO,GAAtB,OAAO;QACQ,MAAM,GAArB,OAAO;QACL,KAAK,CA0BjB;IAED,2DAA2D;IAC3D,8BAIC;IAED,2EAA2E;IAC3E,gCAAmD;IAEnD,uEAAuE;IACvE,2BAA8C;IAE9C;;;;;OAKG;IACH,WAFW,MAAM,
|
|
1
|
+
{"version":3,"file":"RaycastVehicle.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/vehicle/RaycastVehicle.js"],"names":[],"mappings":"AAyEA;;;;GAIG;AACH;IAGQ,8DAA8D;IAC9D,eAD8C,YAAY,CAClB;IACxC,8EAA8E;IAC9E,oBAD8D,YAAY,CACnB;IACvD,sEAAsE;IACtE,cADsD,YAAY,CAClB;IAChD,6BAA+B;IAC/B,4BAA8B;IAC9B,0BAA2B;IAC3B,2BAAkC;IAClC,eAAiB;IACjB,iBAAmB;IACnB,iBAAoB;IACpB,gBAAmB;IAGnB,mBAAsB;IACtB,yBAAiD;IACjD,oBAAoB;IACpB,gDAAgD;IAChD,cADgC,YAAY,CACL;IACvC,iDAAiD;IACjD,eADiC,YAAY,CACI;IACjD,qDAAqD;IACrD,sBAAuB;IACvB,gFAAgF;IAChF,iBAAiB;IACjB,kDAAkD;IAClD,iBAAiB;IACjB,iDAAiD;IACjD,qBAAqB;IACrB,yDAAyD;IACzD,wBAAwB;CAE/B;AAED;IACI;;;;OAIG;IACH,wFAoBC;IAnBG,sBAAoB;IACpB,uBAA8B;IAC9B,4BAAwC;IAExC,sBAAsB;IACtB,QADW,KAAK,EAAE,CACF;IAEhB,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IAEtB,YAAuB;IACvB,2BAAsC;IAEtC,kDAAmF;IAGnF;;;;MAAmC;IACnC;;;;MAAmC;IAGvC;;;;;;;;;;;;;;;;;OAiBG;IACH;QAb0B,aAAa,EAA5B,MAAM,EAAE;QACQ,kBAAkB,GAAlC,MAAM,EAAE;QACQ,YAAY,GAA5B,MAAM,EAAE;QACM,oBAAoB,GAAlC,MAAM;QACQ,mBAAmB,GAAjC,MAAM;QACQ,iBAAiB,GAA/B,MAAM;QACQ,kBAAkB,GAAhC,MAAM;QACQ,MAAM,GAApB,MAAM;QACQ,QAAQ,GAAtB,MAAM;QACS,OAAO,GAAtB,OAAO;QACQ,MAAM,GAArB,OAAO;QACL,KAAK,CA0BjB;IAED,2DAA2D;IAC3D,8BAIC;IAED,2EAA2E;IAC3E,gCAAmD;IAEnD,uEAAuE;IACvE,2BAA8C;IAE9C;;;;;OAKG;IACH,WAFW,MAAM,QAmIhB;CACJ;qBAlVoB,mCAAmC;oCACpB,mCAAmC"}
|