@woosh/meep-engine 2.138.20 → 2.140.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/bvh2/bvh3/query/bvh_query_user_data_overlaps_aabb.d.ts +3 -3
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_overlaps_aabb.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_overlaps_aabb.js +4 -4
- package/src/core/collection/PairUint32Map.d.ts +100 -0
- package/src/core/collection/PairUint32Map.d.ts.map +1 -0
- package/src/core/collection/PairUint32Map.js +321 -0
- package/src/core/collection/Uint32Map.d.ts +119 -0
- package/src/core/collection/Uint32Map.d.ts.map +1 -0
- package/src/core/collection/Uint32Map.js +345 -0
- package/src/core/collection/array/array_shuffle.d.ts +10 -3
- package/src/core/collection/array/array_shuffle.d.ts.map +1 -1
- package/src/core/collection/array/array_shuffle.js +27 -22
- package/src/core/collection/heap/FibonacciHeap.d.ts +195 -0
- package/src/core/collection/heap/FibonacciHeap.d.ts.map +1 -0
- package/src/core/collection/heap/FibonacciHeap.js +586 -0
- package/src/core/collection/heap/Uint32Heap.js +1 -1
- package/src/core/collection/heap/Uint32Heap4.d.ts +169 -0
- package/src/core/collection/heap/Uint32Heap4.d.ts.map +1 -0
- package/src/core/collection/heap/Uint32Heap4.js +490 -0
- package/src/core/geom/3d/aabb/aabb3_transform_oriented.d.ts +30 -0
- package/src/core/geom/3d/aabb/aabb3_transform_oriented.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_transform_oriented.js +93 -0
- package/src/core/geom/3d/line/line3_closest_points_segment_segment.d.ts +27 -0
- package/src/core/geom/3d/line/line3_closest_points_segment_segment.d.ts.map +1 -0
- package/src/core/geom/3d/line/line3_closest_points_segment_segment.js +88 -0
- package/src/core/geom/3d/quaternion/quat3_to_matrix3.d.ts +54 -0
- package/src/core/geom/3d/quaternion/quat3_to_matrix3.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/quat3_to_matrix3.js +69 -0
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts +24 -2
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/AbstractShape3D.js +24 -1
- package/src/core/geom/3d/shape/BoxShape3D.d.ts +61 -0
- package/src/core/geom/3d/shape/BoxShape3D.d.ts.map +1 -0
- package/src/core/geom/3d/shape/BoxShape3D.js +158 -0
- package/src/core/geom/3d/shape/CapsuleShape3D.d.ts +11 -0
- package/src/core/geom/3d/shape/CapsuleShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/CapsuleShape3D.js +12 -0
- package/src/core/geom/3d/shape/HeightMapShape3D.d.ts +148 -0
- package/src/core/geom/3d/shape/HeightMapShape3D.d.ts.map +1 -0
- package/src/core/geom/3d/shape/HeightMapShape3D.js +451 -0
- package/src/core/geom/3d/shape/MeshShape3D.d.ts +210 -0
- package/src/core/geom/3d/shape/MeshShape3D.d.ts.map +1 -0
- package/src/core/geom/3d/shape/MeshShape3D.js +593 -0
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/TransformedShape3D.js +46 -2
- package/src/core/geom/3d/shape/Triangle3D.d.ts +95 -0
- package/src/core/geom/3d/shape/Triangle3D.d.ts.map +1 -0
- package/src/core/geom/3d/shape/Triangle3D.js +318 -0
- package/src/core/geom/3d/shape/UnionShape3D.js +13 -0
- package/src/core/geom/3d/shape/UnitCubeShape3D.d.ts +37 -9
- package/src/core/geom/3d/shape/UnitCubeShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/UnitCubeShape3D.js +45 -98
- package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts +10 -0
- package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/UnitSphereShape3D.js +11 -0
- package/src/core/geom/3d/shape/shape_mesh_from_geometry.d.ts +30 -0
- package/src/core/geom/3d/shape/shape_mesh_from_geometry.d.ts.map +1 -0
- package/src/core/geom/3d/shape/shape_mesh_from_geometry.js +64 -0
- package/src/core/geom/3d/shape/util/shape3d_voxelize_to_grid.d.ts +61 -0
- package/src/core/geom/3d/shape/util/shape3d_voxelize_to_grid.d.ts.map +1 -0
- package/src/core/geom/3d/shape/util/shape3d_voxelize_to_grid.js +148 -0
- package/src/core/geom/3d/tetrahedra/compute_tetrahedral_mesh_from_surface.d.ts +39 -0
- package/src/core/geom/3d/tetrahedra/compute_tetrahedral_mesh_from_surface.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/compute_tetrahedral_mesh_from_surface.js +147 -0
- package/src/core/geom/3d/tetrahedra/compute_tetrahedron_quality.d.ts +15 -0
- package/src/core/geom/3d/tetrahedra/compute_tetrahedron_quality.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/compute_tetrahedron_quality.js +22 -0
- package/src/core/geom/3d/tetrahedra/prototype_tetrahedrize_mesh.d.ts +2 -0
- package/src/core/geom/3d/tetrahedra/prototype_tetrahedrize_mesh.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/prototype_tetrahedrize_mesh.js +671 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_build_vertex_to_tets_map.d.ts +28 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_build_vertex_to_tets_map.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_build_vertex_to_tets_map.js +48 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_carve_outside_surface.d.ts +26 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_carve_outside_surface.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_carve_outside_surface.js +222 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_find_tets_around_edge.d.ts +34 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_find_tets_around_edge.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_find_tets_around_edge.js +146 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_flip_23.d.ts +36 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_flip_23.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_flip_23.js +232 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_flip_32.d.ts +33 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_flip_32.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_flip_32.js +255 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_improve_quality.d.ts +68 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_improve_quality.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_improve_quality.js +387 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_smooth_vertex.d.ts +35 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_smooth_vertex.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_smooth_vertex.js +140 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_vertex_is_boundary.d.ts +31 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_vertex_is_boundary.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_vertex_is_boundary.js +97 -0
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_quality.d.ts +32 -0
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_quality.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_quality.js +66 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.d.ts +41 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.js +124 -13
- package/src/core/geom/3d/topology/struct/binary/BinaryTopology.d.ts +134 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryTopology.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/BinaryTopology.js +276 -3
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_close_boundary_holes.d.ts +17 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_close_boundary_holes.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_close_boundary_holes.js +135 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compact.d.ts +14 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compact.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compact.js +177 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple.js +20 -4
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.js +5 -3
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_create.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_create.js +9 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_get_or_create.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_get_or_create.js +21 -45
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill.js +7 -1
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill_parallels.d.ts +8 -6
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill_parallels.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill_parallels.js +8 -6
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_mesh_kill_short_edges.d.ts +22 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_mesh_kill_short_edges.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_mesh_kill_short_edges.js +73 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_replace.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_replace.js +51 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_get.d.ts +10 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_get.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_get.js +42 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_sample_interior_grid_points.d.ts +28 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_sample_interior_grid_points.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_sample_interior_grid_points.js +227 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_walk_boundary_loops.d.ts +13 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_walk_boundary_loops.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_walk_boundary_loops.js +108 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_query_edge_is_boundary.d.ts +11 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_query_edge_is_boundary.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_query_edge_is_boundary.js +20 -0
- package/src/core/geom/3d/triangle/triangle_mesh_compute_signed_volume.d.ts +20 -0
- package/src/core/geom/3d/triangle/triangle_mesh_compute_signed_volume.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/triangle_mesh_compute_signed_volume.js +38 -0
- package/src/core/geom/3d/triangle/v3_compute_triangle_normal.d.ts +2 -2
- package/src/core/geom/3d/triangle/v3_compute_triangle_normal.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/v3_compute_triangle_normal.js +1 -1
- package/src/core/geom/vec3/v3_dot_array_array.d.ts +3 -3
- package/src/core/geom/vec3/v3_dot_array_array.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_dot_array_array.js +2 -2
- package/src/core/geom/vec3/v3_negate_array.d.ts +3 -3
- package/src/core/geom/vec3/v3_negate_array.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_negate_array.js +2 -2
- package/src/core/geom/vec3/v3_quat3_apply.d.ts +29 -0
- package/src/core/geom/vec3/v3_quat3_apply.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_quat3_apply.js +39 -0
- package/src/core/geom/vec3/v3_quat3_apply_inverse.d.ts +30 -0
- package/src/core/geom/vec3/v3_quat3_apply_inverse.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_quat3_apply_inverse.js +41 -0
- package/src/core/geom/vec3/v3_triple_cross_product.d.ts +32 -0
- package/src/core/geom/vec3/v3_triple_cross_product.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_triple_cross_product.js +45 -0
- package/src/core/graph/csr/CSRGraph.d.ts +168 -0
- package/src/core/graph/csr/CSRGraph.d.ts.map +1 -0
- package/src/core/graph/csr/CSRGraph.js +319 -0
- package/src/core/graph/metis/cluster_mesh_metis.d.ts +12 -0
- package/src/core/graph/metis/cluster_mesh_metis.d.ts.map +1 -1
- package/src/core/graph/metis/cluster_mesh_metis.js +12 -0
- package/src/core/graph/metis/metis.d.ts +19 -0
- package/src/core/graph/metis/metis.d.ts.map +1 -1
- package/src/core/graph/metis/metis.js +20 -0
- package/src/core/graph/metis/metis_cluster_bs.d.ts +11 -0
- package/src/core/graph/metis/metis_cluster_bs.d.ts.map +1 -1
- package/src/core/graph/metis/metis_cluster_bs.js +11 -0
- package/src/core/graph/metis/metis_options.d.ts +17 -2
- package/src/core/graph/metis/metis_options.d.ts.map +1 -1
- package/src/core/graph/metis/metis_options.js +17 -2
- package/src/core/graph/metis/native/MetisGraph.d.ts +144 -0
- package/src/core/graph/metis/native/MetisGraph.d.ts.map +1 -0
- package/src/core/graph/metis/native/MetisGraph.js +212 -0
- package/src/core/graph/metis/native/bisection/BisectionScratch.d.ts +72 -0
- package/src/core/graph/metis/native/bisection/BisectionScratch.d.ts.map +1 -0
- package/src/core/graph/metis/native/bisection/BisectionScratch.js +101 -0
- package/src/core/graph/metis/native/bisection/bisect_graph.d.ts +37 -0
- package/src/core/graph/metis/native/bisection/bisect_graph.d.ts.map +1 -0
- package/src/core/graph/metis/native/bisection/bisect_graph.js +100 -0
- package/src/core/graph/metis/native/bisection/compute_2way_params.d.ts +15 -0
- package/src/core/graph/metis/native/bisection/compute_2way_params.d.ts.map +1 -0
- package/src/core/graph/metis/native/bisection/compute_2way_params.js +84 -0
- package/src/core/graph/metis/native/bisection/fm_2way.d.ts +30 -0
- package/src/core/graph/metis/native/bisection/fm_2way.d.ts.map +1 -0
- package/src/core/graph/metis/native/bisection/fm_2way.js +290 -0
- package/src/core/graph/metis/native/bisection/grow_bisection.d.ts +23 -0
- package/src/core/graph/metis/native/bisection/grow_bisection.d.ts.map +1 -0
- package/src/core/graph/metis/native/bisection/grow_bisection.js +137 -0
- package/src/core/graph/metis/native/bisection/split_graph_two_way.d.ts +28 -0
- package/src/core/graph/metis/native/bisection/split_graph_two_way.d.ts.map +1 -0
- package/src/core/graph/metis/native/bisection/split_graph_two_way.js +119 -0
- package/src/core/graph/metis/native/coarsen/coarsen_graph.d.ts +20 -0
- package/src/core/graph/metis/native/coarsen/coarsen_graph.d.ts.map +1 -0
- package/src/core/graph/metis/native/coarsen/coarsen_graph.js +94 -0
- package/src/core/graph/metis/native/coarsen/create_coarse_graph.d.ts +24 -0
- package/src/core/graph/metis/native/coarsen/create_coarse_graph.d.ts.map +1 -0
- package/src/core/graph/metis/native/coarsen/create_coarse_graph.js +158 -0
- package/src/core/graph/metis/native/coarsen/match_shem.d.ts +41 -0
- package/src/core/graph/metis/native/coarsen/match_shem.d.ts.map +1 -0
- package/src/core/graph/metis/native/coarsen/match_shem.js +175 -0
- package/src/core/graph/metis/native/initial/initial_kway_bfs.d.ts +24 -0
- package/src/core/graph/metis/native/initial/initial_kway_bfs.d.ts.map +1 -0
- package/src/core/graph/metis/native/initial/initial_kway_bfs.js +122 -0
- package/src/core/graph/metis/native/initial/initial_kway_recursive_bisection.d.ts +29 -0
- package/src/core/graph/metis/native/initial/initial_kway_recursive_bisection.d.ts.map +1 -0
- package/src/core/graph/metis/native/initial/initial_kway_recursive_bisection.js +170 -0
- package/src/core/graph/metis/native/metis_partition_kway.d.ts +41 -0
- package/src/core/graph/metis/native/metis_partition_kway.d.ts.map +1 -0
- package/src/core/graph/metis/native/metis_partition_kway.js +126 -0
- package/src/core/graph/metis/native/refine/IndexedFloatMaxHeap.d.ts +62 -0
- package/src/core/graph/metis/native/refine/IndexedFloatMaxHeap.d.ts.map +1 -0
- package/src/core/graph/metis/native/refine/IndexedFloatMaxHeap.js +261 -0
- package/src/core/graph/metis/native/refine/RefinementScratch.d.ts +45 -0
- package/src/core/graph/metis/native/refine/RefinementScratch.d.ts.map +1 -0
- package/src/core/graph/metis/native/refine/RefinementScratch.js +53 -0
- package/src/core/graph/metis/native/refine/compute_kway_params.d.ts +18 -0
- package/src/core/graph/metis/native/refine/compute_kway_params.d.ts.map +1 -0
- package/src/core/graph/metis/native/refine/compute_kway_params.js +138 -0
- package/src/core/graph/metis/native/refine/fm_kway.d.ts +63 -0
- package/src/core/graph/metis/native/refine/fm_kway.d.ts.map +1 -0
- package/src/core/graph/metis/native/refine/fm_kway.js +462 -0
- package/src/core/graph/metis/native/refine/project_kway.d.ts +22 -0
- package/src/core/graph/metis/native/refine/project_kway.d.ts.map +1 -0
- package/src/core/graph/metis/native/refine/project_kway.js +43 -0
- package/src/core/graph/metis/native/refine/refine_kway.d.ts +34 -0
- package/src/core/graph/metis/native/refine/refine_kway.d.ts.map +1 -0
- package/src/core/graph/metis/native/refine/refine_kway.js +43 -0
- package/src/core/math/linalg/eigen/matrix_householder_in_place.d.ts +2 -2
- package/src/core/math/linalg/eigen/matrix_householder_in_place.js +2 -2
- package/src/core/math/linalg/eigen/matrix_qr_in_place.d.ts +6 -4
- package/src/core/math/linalg/eigen/matrix_qr_in_place.d.ts.map +1 -1
- package/src/core/math/linalg/eigen/matrix_qr_in_place.js +69 -23
- package/src/engine/EngineHarness.d.ts +3 -1
- package/src/engine/EngineHarness.d.ts.map +1 -1
- package/src/engine/EngineHarness.js +3 -0
- package/src/engine/control/first-person/DESIGN.md +30 -6
- package/src/engine/control/first-person/DESIGN_EXTENSIONS.md +563 -0
- package/src/engine/control/first-person/FirstPersonPlayerController.d.ts +115 -9
- package/src/engine/control/first-person/FirstPersonPlayerController.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerController.js +211 -176
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts +601 -8
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.js +349 -8
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +319 -23
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +1789 -799
- package/src/engine/control/first-person/TODO.md +173 -0
- package/src/engine/control/first-person/abilities/Ability.d.ts +101 -0
- package/src/engine/control/first-person/abilities/Ability.d.ts.map +1 -0
- package/src/engine/control/first-person/abilities/Ability.js +119 -0
- package/src/engine/control/first-person/abilities/AbilitySet.d.ts +86 -0
- package/src/engine/control/first-person/abilities/AbilitySet.d.ts.map +1 -0
- package/src/engine/control/first-person/abilities/AbilitySet.js +185 -0
- package/src/engine/control/first-person/abilities/LedgeGrab.d.ts +62 -0
- package/src/engine/control/first-person/abilities/LedgeGrab.d.ts.map +1 -0
- package/src/engine/control/first-person/abilities/LedgeGrab.js +199 -0
- package/src/engine/control/first-person/abilities/Mantle.d.ts +45 -0
- package/src/engine/control/first-person/abilities/Mantle.d.ts.map +1 -0
- package/src/engine/control/first-person/abilities/Mantle.js +188 -0
- package/src/engine/control/first-person/abilities/Slide.d.ts +33 -0
- package/src/engine/control/first-person/abilities/Slide.d.ts.map +1 -0
- package/src/engine/control/first-person/abilities/Slide.js +166 -0
- package/src/engine/control/first-person/abilities/WallJump.d.ts +45 -0
- package/src/engine/control/first-person/abilities/WallJump.d.ts.map +1 -0
- package/src/engine/control/first-person/abilities/WallJump.js +131 -0
- package/src/engine/control/first-person/abilities/WallRun.d.ts +44 -0
- package/src/engine/control/first-person/abilities/WallRun.d.ts.map +1 -0
- package/src/engine/control/first-person/abilities/WallRun.js +180 -0
- package/src/engine/control/first-person/composer/EyeOffsetStack.d.ts +49 -0
- package/src/engine/control/first-person/composer/EyeOffsetStack.d.ts.map +1 -0
- package/src/engine/control/first-person/composer/EyeOffsetStack.js +60 -0
- package/src/engine/control/first-person/mastery/BreathRhythmEvaluator.d.ts +100 -0
- package/src/engine/control/first-person/mastery/BreathRhythmEvaluator.d.ts.map +1 -0
- package/src/engine/control/first-person/mastery/BreathRhythmEvaluator.js +133 -0
- package/src/engine/control/first-person/mastery/DecisionPoint.d.ts +10 -0
- package/src/engine/control/first-person/mastery/DecisionPoint.d.ts.map +1 -0
- package/src/engine/control/first-person/mastery/DecisionPoint.js +30 -0
- package/src/engine/control/first-person/mastery/FootAsymmetryTurnEvaluator.d.ts +61 -0
- package/src/engine/control/first-person/mastery/FootAsymmetryTurnEvaluator.d.ts.map +1 -0
- package/src/engine/control/first-person/mastery/FootAsymmetryTurnEvaluator.js +109 -0
- package/src/engine/control/first-person/mastery/MasteryEvaluator.d.ts +40 -0
- package/src/engine/control/first-person/mastery/MasteryEvaluator.d.ts.map +1 -0
- package/src/engine/control/first-person/mastery/MasteryEvaluator.js +45 -0
- package/src/engine/control/first-person/mastery/MasteryScore.d.ts +68 -0
- package/src/engine/control/first-person/mastery/MasteryScore.d.ts.map +1 -0
- package/src/engine/control/first-person/mastery/MasteryScore.js +100 -0
- package/src/engine/control/first-person/mastery/MasterySet.d.ts +60 -0
- package/src/engine/control/first-person/mastery/MasterySet.d.ts.map +1 -0
- package/src/engine/control/first-person/mastery/MasterySet.js +86 -0
- package/src/engine/control/first-person/mastery/SlideInitiationTimingEvaluator.d.ts +58 -0
- package/src/engine/control/first-person/mastery/SlideInitiationTimingEvaluator.d.ts.map +1 -0
- package/src/engine/control/first-person/mastery/SlideInitiationTimingEvaluator.js +83 -0
- package/src/engine/control/first-person/mastery/StrideTimingJumpEvaluator.d.ts +69 -0
- package/src/engine/control/first-person/mastery/StrideTimingJumpEvaluator.d.ts.map +1 -0
- package/src/engine/control/first-person/mastery/StrideTimingJumpEvaluator.js +109 -0
- package/src/engine/control/first-person/math/Spring.d.ts +56 -0
- package/src/engine/control/first-person/math/Spring.d.ts.map +1 -0
- package/src/engine/control/first-person/math/Spring.js +71 -0
- package/src/engine/control/first-person/math/computeLRCBreathRate.d.ts +26 -0
- package/src/engine/control/first-person/math/computeLRCBreathRate.d.ts.map +1 -0
- package/src/engine/control/first-person/math/computeLRCBreathRate.js +41 -0
- package/src/engine/control/first-person/math/computeMassRatios.d.ts +35 -0
- package/src/engine/control/first-person/math/computeMassRatios.d.ts.map +1 -0
- package/src/engine/control/first-person/math/computeMassRatios.js +44 -0
- package/src/engine/control/first-person/pose/FirstPersonPose.d.ts +31 -1
- package/src/engine/control/first-person/pose/FirstPersonPose.d.ts.map +1 -1
- package/src/engine/control/first-person/pose/FirstPersonPose.js +49 -3
- package/src/engine/control/first-person/pose/FirstPersonPosture.d.ts +7 -0
- package/src/engine/control/first-person/pose/FirstPersonPosture.d.ts.map +1 -0
- package/src/engine/control/first-person/pose/FirstPersonPosture.js +27 -0
- package/src/engine/control/first-person/prototype_first_person_controller.js +637 -120
- package/src/engine/control/first-person/sensors/FirstPersonSensors.d.ts +58 -0
- package/src/engine/control/first-person/sensors/FirstPersonSensors.d.ts.map +1 -0
- package/src/engine/control/first-person/sensors/FirstPersonSensors.js +77 -0
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts +80 -0
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts.map +1 -0
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js +196 -0
- package/src/engine/control/first-person/test/buildTestPlayer.d.ts +20 -0
- package/src/engine/control/first-person/test/buildTestPlayer.d.ts.map +1 -0
- package/src/engine/control/first-person/test/buildTestPlayer.js +36 -0
- package/src/engine/graphics/camera/testClippingPlaneComputation.js +0 -2
- package/src/engine/graphics/ecs/light/Light.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/Light.js +27 -0
- package/src/engine/graphics/ecs/light/LightSystem.js +1 -1
- package/src/engine/graphics/ecs/path/PathDisplaySystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/path/testPathDisplaySystem.js +0 -2
- package/src/engine/graphics/ecs/path/tube/prototypeAnimatedPathMask.js +0 -2
- package/src/engine/graphics/geometry/CapsuleGeometry.d.ts +42 -0
- package/src/engine/graphics/geometry/CapsuleGeometry.d.ts.map +1 -0
- package/src/engine/graphics/geometry/CapsuleGeometry.js +171 -0
- package/src/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +0 -2
- package/src/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +0 -2
- package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +0 -2
- package/src/engine/navigation/grid/find_path_on_grid_astar.d.ts.map +1 -1
- package/src/engine/navigation/grid/find_path_on_grid_astar.js +11 -2
- package/src/engine/navigation/mesh/bt_mesh_face_find_path.d.ts.map +1 -1
- package/src/engine/navigation/mesh/bt_mesh_face_find_path.js +11 -1
- package/src/engine/physics/BULLET_REVIEW.md +945 -0
- package/src/engine/physics/CANNON_REVIEW.md +1300 -0
- package/src/engine/physics/JOLT_REVIEW.md +913 -0
- package/src/engine/physics/PLAN.md +461 -0
- package/src/engine/physics/RAPIER_REVIEW.md +934 -0
- package/src/engine/physics/REVIEW_001_ACTION_PLAN.md +642 -0
- package/src/engine/physics/body/BodyStorage.d.ts +187 -0
- package/src/engine/physics/body/BodyStorage.d.ts.map +1 -0
- package/src/engine/physics/body/BodyStorage.js +427 -0
- package/src/engine/physics/broadphase/PairList.d.ts +62 -0
- package/src/engine/physics/broadphase/PairList.d.ts.map +1 -0
- package/src/engine/physics/broadphase/PairList.js +97 -0
- package/src/engine/physics/broadphase/compute_fat_world_aabb.d.ts +16 -0
- package/src/engine/physics/broadphase/compute_fat_world_aabb.d.ts.map +1 -0
- package/src/engine/physics/broadphase/compute_fat_world_aabb.js +61 -0
- package/src/engine/physics/broadphase/generate_pairs.d.ts +38 -0
- package/src/engine/physics/broadphase/generate_pairs.d.ts.map +1 -0
- package/src/engine/physics/broadphase/generate_pairs.js +101 -0
- package/src/engine/physics/contact/ManifoldStore.d.ts +299 -0
- package/src/engine/physics/contact/ManifoldStore.d.ts.map +1 -0
- package/src/engine/physics/contact/ManifoldStore.js +608 -0
- package/src/engine/physics/ecs/BodyKind.d.ts +23 -0
- package/src/engine/physics/ecs/BodyKind.d.ts.map +1 -0
- package/src/engine/physics/ecs/BodyKind.js +24 -0
- package/src/engine/physics/ecs/Collider.d.ts +98 -0
- package/src/engine/physics/ecs/Collider.d.ts.map +1 -0
- package/src/engine/physics/ecs/Collider.js +136 -0
- package/src/engine/physics/ecs/ColliderFlags.d.ts +14 -0
- package/src/engine/physics/ecs/ColliderFlags.d.ts.map +1 -0
- package/src/engine/physics/ecs/ColliderFlags.js +15 -0
- package/src/engine/physics/ecs/ColliderObserverSystem.d.ts +58 -0
- package/src/engine/physics/ecs/ColliderObserverSystem.d.ts.map +1 -0
- package/src/engine/physics/ecs/ColliderObserverSystem.js +103 -0
- package/src/engine/physics/ecs/ColliderSerializationAdapter.d.ts +25 -0
- package/src/engine/physics/ecs/ColliderSerializationAdapter.d.ts.map +1 -0
- package/src/engine/physics/ecs/ColliderSerializationAdapter.js +37 -0
- package/src/engine/physics/ecs/PhysicsEvents.d.ts +15 -0
- package/src/engine/physics/ecs/PhysicsEvents.d.ts.map +1 -0
- package/src/engine/physics/ecs/PhysicsEvents.js +16 -0
- package/src/engine/physics/ecs/PhysicsSystem.d.ts +628 -0
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -0
- package/src/engine/physics/ecs/PhysicsSystem.js +1301 -0
- package/src/engine/physics/ecs/RigidBody.d.ts +197 -0
- package/src/engine/physics/ecs/RigidBody.d.ts.map +1 -0
- package/src/engine/physics/ecs/RigidBody.js +240 -0
- package/src/engine/physics/ecs/RigidBodyFlags.d.ts +21 -0
- package/src/engine/physics/ecs/RigidBodyFlags.d.ts.map +1 -0
- package/src/engine/physics/ecs/RigidBodyFlags.js +22 -0
- package/src/engine/physics/ecs/RigidBodySerializationAdapter.d.ts +28 -0
- package/src/engine/physics/ecs/RigidBodySerializationAdapter.d.ts.map +1 -0
- package/src/engine/physics/ecs/RigidBodySerializationAdapter.js +81 -0
- package/src/engine/physics/ecs/SleepState.d.ts +11 -0
- package/src/engine/physics/ecs/SleepState.d.ts.map +1 -0
- package/src/engine/physics/ecs/SleepState.js +12 -0
- package/src/engine/physics/events/ContactEventBuffer.d.ts +46 -0
- package/src/engine/physics/events/ContactEventBuffer.d.ts.map +1 -0
- package/src/engine/physics/events/ContactEventBuffer.js +83 -0
- package/src/engine/physics/events/diff_manifolds.d.ts +25 -0
- package/src/engine/physics/events/diff_manifolds.d.ts.map +1 -0
- package/src/engine/physics/events/diff_manifolds.js +50 -0
- package/src/engine/physics/fluid/FluidField.d.ts +294 -16
- package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
- package/src/engine/physics/fluid/FluidField.js +510 -66
- package/src/engine/physics/fluid/FluidSimulator.d.ts +188 -5
- package/src/engine/physics/fluid/FluidSimulator.d.ts.map +1 -1
- package/src/engine/physics/fluid/FluidSimulator.js +456 -95
- package/src/engine/physics/fluid/SliceVisualiser.d.ts +29 -6
- package/src/engine/physics/fluid/SliceVisualiser.d.ts.map +1 -1
- package/src/engine/physics/fluid/SliceVisualiser.js +190 -165
- package/src/engine/physics/fluid/ecs/FluidComponent.d.ts +154 -0
- package/src/engine/physics/fluid/ecs/FluidComponent.d.ts.map +1 -0
- package/src/engine/physics/fluid/ecs/FluidComponent.js +238 -0
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponent.d.ts +45 -0
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponent.d.ts.map +1 -0
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponent.js +89 -0
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +107 -0
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts.map +1 -0
- package/src/engine/physics/fluid/ecs/FluidSystem.js +278 -0
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +62 -1
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +81 -6
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts +17 -4
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.js +105 -12
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts +43 -0
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +210 -0
- package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts +62 -1
- package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/WakeFluidEffector.js +302 -8
- package/src/engine/physics/fluid/prototype.js +102 -91
- package/src/engine/physics/fluid/solver/optimal_sor_omega.d.ts +33 -0
- package/src/engine/physics/fluid/solver/optimal_sor_omega.d.ts.map +1 -0
- package/src/engine/physics/fluid/solver/optimal_sor_omega.js +41 -0
- package/src/engine/physics/fluid/solver/v3_grid_apply_advection_forward.d.ts +20 -5
- package/src/engine/physics/fluid/solver/v3_grid_apply_advection_forward.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_grid_apply_advection_forward.js +60 -38
- package/src/engine/physics/fluid/solver/v3_grid_apply_diffusion.d.ts +25 -4
- package/src/engine/physics/fluid/solver/v3_grid_apply_diffusion.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_grid_apply_diffusion.js +93 -73
- package/src/engine/physics/fluid/solver/v3_grid_apply_scalar_advection.d.ts +23 -0
- package/src/engine/physics/fluid/solver/v3_grid_apply_scalar_advection.d.ts.map +1 -0
- package/src/engine/physics/fluid/solver/v3_grid_apply_scalar_advection.js +60 -0
- package/src/engine/physics/fluid/solver/v3_grid_compute_divergence.d.ts +23 -0
- package/src/engine/physics/fluid/solver/v3_grid_compute_divergence.d.ts.map +1 -0
- package/src/engine/physics/fluid/solver/v3_grid_compute_divergence.js +68 -0
- package/src/engine/physics/fluid/solver/v3_grid_compute_solid_neighbour_mask.d.ts +30 -0
- package/src/engine/physics/fluid/solver/v3_grid_compute_solid_neighbour_mask.d.ts.map +1 -0
- package/src/engine/physics/fluid/solver/v3_grid_compute_solid_neighbour_mask.js +66 -0
- package/src/engine/physics/fluid/solver/v3_grid_patch_edges_uniform.d.ts +26 -0
- package/src/engine/physics/fluid/solver/v3_grid_patch_edges_uniform.d.ts.map +1 -0
- package/src/engine/physics/fluid/solver/v3_grid_patch_edges_uniform.js +113 -0
- package/src/engine/physics/fluid/solver/v3_grid_shift_in_place.d.ts +30 -0
- package/src/engine/physics/fluid/solver/v3_grid_shift_in_place.d.ts.map +1 -0
- package/src/engine/physics/fluid/solver/v3_grid_shift_in_place.js +107 -0
- package/src/engine/physics/fluid/solver/v3_grid_solve_pressure.d.ts +49 -0
- package/src/engine/physics/fluid/solver/v3_grid_solve_pressure.d.ts.map +1 -0
- package/src/engine/physics/fluid/solver/v3_grid_solve_pressure.js +126 -0
- package/src/engine/physics/fluid/solver/v3_grid_solve_pressure_pcg.d.ts +93 -0
- package/src/engine/physics/fluid/solver/v3_grid_solve_pressure_pcg.d.ts.map +1 -0
- package/src/engine/physics/fluid/solver/v3_grid_solve_pressure_pcg.js +424 -0
- package/src/engine/physics/fluid/solver/v3_grid_subtract_pressure_gradient.d.ts +48 -0
- package/src/engine/physics/fluid/solver/v3_grid_subtract_pressure_gradient.d.ts.map +1 -0
- package/src/engine/physics/fluid/solver/v3_grid_subtract_pressure_gradient.js +92 -0
- package/src/engine/physics/gjk/expanding_polytope_algorithm.d.ts +6 -6
- package/src/engine/physics/gjk/expanding_polytope_algorithm.d.ts.map +1 -1
- package/src/engine/physics/gjk/expanding_polytope_algorithm.js +76 -32
- package/src/engine/physics/gjk/gjk.d.ts +28 -2
- package/src/engine/physics/gjk/gjk.d.ts.map +1 -1
- package/src/engine/physics/gjk/gjk.js +421 -378
- package/src/engine/physics/gjk/minkowski_support.d.ts +37 -0
- package/src/engine/physics/gjk/minkowski_support.d.ts.map +1 -0
- package/src/engine/physics/gjk/minkowski_support.js +75 -0
- package/src/engine/physics/gjk/mpr.d.ts +56 -0
- package/src/engine/physics/gjk/mpr.d.ts.map +1 -0
- package/src/engine/physics/gjk/mpr.js +344 -0
- package/src/engine/physics/inertia/world_inverse_inertia.d.ts +44 -0
- package/src/engine/physics/inertia/world_inverse_inertia.d.ts.map +1 -0
- package/src/engine/physics/inertia/world_inverse_inertia.js +77 -0
- package/src/engine/physics/integration/integrate_position.d.ts +34 -0
- package/src/engine/physics/integration/integrate_position.d.ts.map +1 -0
- package/src/engine/physics/integration/integrate_position.js +79 -0
- package/src/engine/physics/integration/integrate_velocity.d.ts +55 -0
- package/src/engine/physics/integration/integrate_velocity.d.ts.map +1 -0
- package/src/engine/physics/integration/integrate_velocity.js +160 -0
- package/src/engine/physics/integration/quat_integrate.d.ts +27 -0
- package/src/engine/physics/integration/quat_integrate.d.ts.map +1 -0
- package/src/engine/physics/integration/quat_integrate.js +62 -0
- package/src/engine/physics/island/IslandBuilder.d.ts +167 -0
- package/src/engine/physics/island/IslandBuilder.d.ts.map +1 -0
- package/src/engine/physics/island/IslandBuilder.js +411 -0
- package/src/engine/physics/island/union_find.d.ts +51 -0
- package/src/engine/physics/island/union_find.d.ts.map +1 -0
- package/src/engine/physics/island/union_find.js +76 -0
- package/src/engine/physics/narrowphase/PosedShape.d.ts +51 -0
- package/src/engine/physics/narrowphase/PosedShape.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/PosedShape.js +108 -0
- package/src/engine/physics/narrowphase/box_box_manifold.d.ts +32 -0
- package/src/engine/physics/narrowphase/box_box_manifold.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/box_box_manifold.js +639 -0
- package/src/engine/physics/narrowphase/box_triangle_contact.d.ts +30 -0
- package/src/engine/physics/narrowphase/box_triangle_contact.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/box_triangle_contact.js +811 -0
- package/src/engine/physics/narrowphase/capsule_contacts.d.ts +122 -0
- package/src/engine/physics/narrowphase/capsule_contacts.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/capsule_contacts.js +462 -0
- package/src/engine/physics/narrowphase/capsule_triangle_contact.d.ts +71 -0
- package/src/engine/physics/narrowphase/capsule_triangle_contact.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/capsule_triangle_contact.js +375 -0
- package/src/engine/physics/narrowphase/compute_penetration.d.ts +91 -0
- package/src/engine/physics/narrowphase/compute_penetration.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/compute_penetration.js +396 -0
- package/src/engine/physics/narrowphase/decomposition/aabb_world_to_local.d.ts +35 -0
- package/src/engine/physics/narrowphase/decomposition/aabb_world_to_local.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/decomposition/aabb_world_to_local.js +80 -0
- package/src/engine/physics/narrowphase/decomposition/decompose_to_triangles.d.ts +31 -0
- package/src/engine/physics/narrowphase/decomposition/decompose_to_triangles.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/decomposition/decompose_to_triangles.js +55 -0
- package/src/engine/physics/narrowphase/decomposition/heightmap_enumerate_triangles.d.ts +42 -0
- package/src/engine/physics/narrowphase/decomposition/heightmap_enumerate_triangles.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/decomposition/heightmap_enumerate_triangles.js +204 -0
- package/src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.d.ts +42 -0
- package/src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.js +94 -0
- package/src/engine/physics/narrowphase/decomposition/triangle_buffer_layout.d.ts +37 -0
- package/src/engine/physics/narrowphase/decomposition/triangle_buffer_layout.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/decomposition/triangle_buffer_layout.js +37 -0
- package/src/engine/physics/narrowphase/narrowphase_step.d.ts +17 -0
- package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/narrowphase_step.js +1422 -0
- package/src/engine/physics/narrowphase/sphere_box_contact.d.ts +38 -0
- package/src/engine/physics/narrowphase/sphere_box_contact.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/sphere_box_contact.js +123 -0
- package/src/engine/physics/narrowphase/sphere_sphere_contact.d.ts +26 -0
- package/src/engine/physics/narrowphase/sphere_sphere_contact.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/sphere_sphere_contact.js +51 -0
- package/src/engine/physics/narrowphase/sphere_triangle_contact.d.ts +48 -0
- package/src/engine/physics/narrowphase/sphere_triangle_contact.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/sphere_triangle_contact.js +143 -0
- package/src/engine/physics/queries/PhysicsSurfacePoint.d.ts +83 -0
- package/src/engine/physics/queries/PhysicsSurfacePoint.d.ts.map +1 -0
- package/src/engine/physics/queries/PhysicsSurfacePoint.js +100 -0
- package/src/engine/physics/queries/overlap_shape.d.ts +51 -0
- package/src/engine/physics/queries/overlap_shape.d.ts.map +1 -0
- package/src/engine/physics/queries/overlap_shape.js +183 -0
- package/src/engine/physics/queries/raycast.d.ts +20 -0
- package/src/engine/physics/queries/raycast.d.ts.map +1 -0
- package/src/engine/physics/queries/raycast.js +249 -0
- package/src/engine/physics/queries/shape_cast.d.ts +56 -0
- package/src/engine/physics/queries/shape_cast.d.ts.map +1 -0
- package/src/engine/physics/queries/shape_cast.js +387 -0
- package/src/engine/physics/solver/friction_cone.d.ts +16 -0
- package/src/engine/physics/solver/friction_cone.d.ts.map +1 -0
- package/src/engine/physics/solver/friction_cone.js +37 -0
- package/src/engine/physics/solver/solve_contacts.d.ts +122 -0
- package/src/engine/physics/solver/solve_contacts.d.ts.map +1 -0
- package/src/engine/physics/solver/solve_contacts.js +1016 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/OrderedEdge.d.ts +0 -34
- package/src/core/geom/3d/topology/struct/binary/io/edge/OrderedEdge.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/edge/OrderedEdge.js +0 -66
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_mesh_calc_edges.d.ts +0 -2
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_mesh_calc_edges.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_mesh_calc_edges.js +0 -54
- package/src/core/geom/3d/topology/struct/binary/io/edge/get_or_create_edge_map.d.ts +0 -2
- package/src/core/geom/3d/topology/struct/binary/io/edge/get_or_create_edge_map.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/edge/get_or_create_edge_map.js +0 -26
- package/src/engine/ecs/components/Motion.d.ts +0 -21
- package/src/engine/ecs/components/Motion.d.ts.map +0 -1
- package/src/engine/ecs/components/Motion.js +0 -27
- package/src/engine/ecs/components/MotionSerializationAdapter.d.ts +0 -20
- package/src/engine/ecs/components/MotionSerializationAdapter.d.ts.map +0 -1
- package/src/engine/ecs/components/MotionSerializationAdapter.js +0 -26
- package/src/engine/ecs/systems/MotionSystem.d.ts +0 -9
- package/src/engine/ecs/systems/MotionSystem.d.ts.map +0 -1
- package/src/engine/ecs/systems/MotionSystem.js +0 -29
- package/src/engine/physics/fluid/Fluid.d.ts +0 -26
- package/src/engine/physics/fluid/Fluid.d.ts.map +0 -1
- package/src/engine/physics/fluid/Fluid.js +0 -221
- package/src/engine/physics/fluid/solver/v3_grid_apply_advection_reverse.d.ts +0 -7
- package/src/engine/physics/fluid/solver/v3_grid_apply_advection_reverse.d.ts.map +0 -1
- package/src/engine/physics/fluid/solver/v3_grid_apply_advection_reverse.js +0 -8
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute the world-space axis-aligned bounding box of a local AABB after a
|
|
3
|
+
* rigid transform (position + orientation).
|
|
4
|
+
*
|
|
5
|
+
* Math: an AABB transformed by a rotation `R` is bounded by another AABB whose
|
|
6
|
+
* centre is `R · c_local + t` and whose half-extent along each world axis `i`
|
|
7
|
+
* is `Σ_j |R_ij| · half_extent_local_j`. The element-wise-abs trick avoids
|
|
8
|
+
* rotating all 8 corners and projecting.
|
|
9
|
+
*
|
|
10
|
+
* Output layout matches existing AABB conventions: `[x0, y0, z0, x1, y1, z1]`
|
|
11
|
+
* with `(x0,y0,z0)` as the min corner.
|
|
12
|
+
*
|
|
13
|
+
* @param {number[]|Float32Array|Float64Array} result
|
|
14
|
+
* @param {number} result_offset
|
|
15
|
+
* @param {number} lx0 local min x
|
|
16
|
+
* @param {number} ly0 local min y
|
|
17
|
+
* @param {number} lz0 local min z
|
|
18
|
+
* @param {number} lx1 local max x
|
|
19
|
+
* @param {number} ly1 local max y
|
|
20
|
+
* @param {number} lz1 local max z
|
|
21
|
+
* @param {number} px translation x
|
|
22
|
+
* @param {number} py translation y
|
|
23
|
+
* @param {number} pz translation z
|
|
24
|
+
* @param {number} qx quaternion x (unit)
|
|
25
|
+
* @param {number} qy quaternion y
|
|
26
|
+
* @param {number} qz quaternion z
|
|
27
|
+
* @param {number} qw quaternion w
|
|
28
|
+
*/
|
|
29
|
+
export function aabb3_transform_oriented(
|
|
30
|
+
result, result_offset,
|
|
31
|
+
lx0, ly0, lz0, lx1, ly1, lz1,
|
|
32
|
+
px, py, pz,
|
|
33
|
+
qx, qy, qz, qw
|
|
34
|
+
) {
|
|
35
|
+
// local centre and half-extent
|
|
36
|
+
const cx = (lx0 + lx1) * 0.5;
|
|
37
|
+
const cy = (ly0 + ly1) * 0.5;
|
|
38
|
+
const cz = (lz0 + lz1) * 0.5;
|
|
39
|
+
|
|
40
|
+
const ex = (lx1 - lx0) * 0.5;
|
|
41
|
+
const ey = (ly1 - ly0) * 0.5;
|
|
42
|
+
const ez = (lz1 - lz0) * 0.5;
|
|
43
|
+
|
|
44
|
+
// Rotation matrix from unit quaternion.
|
|
45
|
+
const xx = qx * qx;
|
|
46
|
+
const yy = qy * qy;
|
|
47
|
+
const zz = qz * qz;
|
|
48
|
+
const xy = qx * qy;
|
|
49
|
+
const xz = qx * qz;
|
|
50
|
+
const yz = qy * qz;
|
|
51
|
+
const wx = qw * qx;
|
|
52
|
+
const wy = qw * qy;
|
|
53
|
+
const wz = qw * qz;
|
|
54
|
+
|
|
55
|
+
const r00 = 1 - 2 * (yy + zz);
|
|
56
|
+
const r01 = 2 * (xy - wz);
|
|
57
|
+
const r02 = 2 * (xz + wy);
|
|
58
|
+
|
|
59
|
+
const r10 = 2 * (xy + wz);
|
|
60
|
+
const r11 = 1 - 2 * (xx + zz);
|
|
61
|
+
const r12 = 2 * (yz - wx);
|
|
62
|
+
|
|
63
|
+
const r20 = 2 * (xz - wy);
|
|
64
|
+
const r21 = 2 * (yz + wx);
|
|
65
|
+
const r22 = 1 - 2 * (xx + yy);
|
|
66
|
+
|
|
67
|
+
// World centre = R · c + t
|
|
68
|
+
const wcx = r00 * cx + r01 * cy + r02 * cz + px;
|
|
69
|
+
const wcy = r10 * cx + r11 * cy + r12 * cz + py;
|
|
70
|
+
const wcz = r20 * cx + r21 * cy + r22 * cz + pz;
|
|
71
|
+
|
|
72
|
+
// World half-extent = |R| · e
|
|
73
|
+
const ar00 = r00 < 0 ? -r00 : r00;
|
|
74
|
+
const ar01 = r01 < 0 ? -r01 : r01;
|
|
75
|
+
const ar02 = r02 < 0 ? -r02 : r02;
|
|
76
|
+
const ar10 = r10 < 0 ? -r10 : r10;
|
|
77
|
+
const ar11 = r11 < 0 ? -r11 : r11;
|
|
78
|
+
const ar12 = r12 < 0 ? -r12 : r12;
|
|
79
|
+
const ar20 = r20 < 0 ? -r20 : r20;
|
|
80
|
+
const ar21 = r21 < 0 ? -r21 : r21;
|
|
81
|
+
const ar22 = r22 < 0 ? -r22 : r22;
|
|
82
|
+
|
|
83
|
+
const wex = ar00 * ex + ar01 * ey + ar02 * ez;
|
|
84
|
+
const wey = ar10 * ex + ar11 * ey + ar12 * ez;
|
|
85
|
+
const wez = ar20 * ex + ar21 * ey + ar22 * ez;
|
|
86
|
+
|
|
87
|
+
result[result_offset] = wcx - wex;
|
|
88
|
+
result[result_offset + 1] = wcy - wey;
|
|
89
|
+
result[result_offset + 2] = wcz - wez;
|
|
90
|
+
result[result_offset + 3] = wcx + wex;
|
|
91
|
+
result[result_offset + 4] = wcy + wey;
|
|
92
|
+
result[result_offset + 5] = wcz + wez;
|
|
93
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Closest-point pair on two 3D line segments. Writes parameters `s` and `t`
|
|
3
|
+
* (each in `[0, 1]`) into `out[0]` and `out[1]` such that:
|
|
4
|
+
*
|
|
5
|
+
* closest_point_on_S1 = P1 + s * (Q1 - P1)
|
|
6
|
+
* closest_point_on_S2 = P2 + t * (Q2 - P2)
|
|
7
|
+
*
|
|
8
|
+
* Source: Ericson, *Real-Time Collision Detection*, §5.1.9. Robust to
|
|
9
|
+
* degenerate inputs (point-like segments, parallel segments) — both
|
|
10
|
+
* cases fall back to the clamped point-on-line projection.
|
|
11
|
+
*
|
|
12
|
+
* @param {number[]|Float64Array} out length >= 2; receives [s, t]
|
|
13
|
+
* @param {number} p1x segment-A start x
|
|
14
|
+
* @param {number} p1y
|
|
15
|
+
* @param {number} p1z
|
|
16
|
+
* @param {number} q1x segment-A end x
|
|
17
|
+
* @param {number} q1y
|
|
18
|
+
* @param {number} q1z
|
|
19
|
+
* @param {number} p2x segment-B start x
|
|
20
|
+
* @param {number} p2y
|
|
21
|
+
* @param {number} p2z
|
|
22
|
+
* @param {number} q2x segment-B end x
|
|
23
|
+
* @param {number} q2y
|
|
24
|
+
* @param {number} q2z
|
|
25
|
+
*/
|
|
26
|
+
export function line3_closest_points_segment_segment(out: number[] | Float64Array, p1x: number, p1y: number, p1z: number, q1x: number, q1y: number, q1z: number, p2x: number, p2y: number, p2z: number, q2x: number, q2y: number, q2z: number): void;
|
|
27
|
+
//# sourceMappingURL=line3_closest_points_segment_segment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line3_closest_points_segment_segment.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/line/line3_closest_points_segment_segment.js"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,0DAdW,MAAM,EAAE,GAAC,YAAY,OACrB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,QAuDhB"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { clamp01 } from "../../../math/clamp01.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Lengths-squared below this threshold are treated as "this segment is a
|
|
5
|
+
* point" so the algorithm degrades gracefully to point-segment closest.
|
|
6
|
+
* @type {number}
|
|
7
|
+
*/
|
|
8
|
+
const SEGMENT_EPS = 1e-12;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Closest-point pair on two 3D line segments. Writes parameters `s` and `t`
|
|
12
|
+
* (each in `[0, 1]`) into `out[0]` and `out[1]` such that:
|
|
13
|
+
*
|
|
14
|
+
* closest_point_on_S1 = P1 + s * (Q1 - P1)
|
|
15
|
+
* closest_point_on_S2 = P2 + t * (Q2 - P2)
|
|
16
|
+
*
|
|
17
|
+
* Source: Ericson, *Real-Time Collision Detection*, §5.1.9. Robust to
|
|
18
|
+
* degenerate inputs (point-like segments, parallel segments) — both
|
|
19
|
+
* cases fall back to the clamped point-on-line projection.
|
|
20
|
+
*
|
|
21
|
+
* @param {number[]|Float64Array} out length >= 2; receives [s, t]
|
|
22
|
+
* @param {number} p1x segment-A start x
|
|
23
|
+
* @param {number} p1y
|
|
24
|
+
* @param {number} p1z
|
|
25
|
+
* @param {number} q1x segment-A end x
|
|
26
|
+
* @param {number} q1y
|
|
27
|
+
* @param {number} q1z
|
|
28
|
+
* @param {number} p2x segment-B start x
|
|
29
|
+
* @param {number} p2y
|
|
30
|
+
* @param {number} p2z
|
|
31
|
+
* @param {number} q2x segment-B end x
|
|
32
|
+
* @param {number} q2y
|
|
33
|
+
* @param {number} q2z
|
|
34
|
+
*/
|
|
35
|
+
export function line3_closest_points_segment_segment(
|
|
36
|
+
out,
|
|
37
|
+
p1x, p1y, p1z, q1x, q1y, q1z,
|
|
38
|
+
p2x, p2y, p2z, q2x, q2y, q2z
|
|
39
|
+
) {
|
|
40
|
+
const d1x = q1x - p1x, d1y = q1y - p1y, d1z = q1z - p1z;
|
|
41
|
+
const d2x = q2x - p2x, d2y = q2y - p2y, d2z = q2z - p2z;
|
|
42
|
+
const rx = p1x - p2x, ry = p1y - p2y, rz = p1z - p2z;
|
|
43
|
+
|
|
44
|
+
const a = d1x * d1x + d1y * d1y + d1z * d1z; // |d1|²
|
|
45
|
+
const e = d2x * d2x + d2y * d2y + d2z * d2z; // |d2|²
|
|
46
|
+
const f = d2x * rx + d2y * ry + d2z * rz; // d2·r
|
|
47
|
+
|
|
48
|
+
let s, t;
|
|
49
|
+
|
|
50
|
+
if (a <= SEGMENT_EPS && e <= SEGMENT_EPS) {
|
|
51
|
+
// Both degenerate to points.
|
|
52
|
+
s = 0; t = 0;
|
|
53
|
+
} else if (a <= SEGMENT_EPS) {
|
|
54
|
+
// S1 is a point.
|
|
55
|
+
s = 0;
|
|
56
|
+
t = clamp01(f / e);
|
|
57
|
+
} else {
|
|
58
|
+
const c = d1x * rx + d1y * ry + d1z * rz; // d1·r
|
|
59
|
+
if (e <= SEGMENT_EPS) {
|
|
60
|
+
// S2 is a point.
|
|
61
|
+
t = 0;
|
|
62
|
+
s = clamp01(-c / a);
|
|
63
|
+
} else {
|
|
64
|
+
const b = d1x * d2x + d1y * d2y + d1z * d2z; // d1·d2
|
|
65
|
+
const denom = a * e - b * b; // always >= 0
|
|
66
|
+
|
|
67
|
+
if (denom !== 0) {
|
|
68
|
+
s = clamp01((b * f - c * e) / denom);
|
|
69
|
+
} else {
|
|
70
|
+
// Segments are parallel — any s is fine; pick 0.
|
|
71
|
+
s = 0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
t = (b * s + f) / e;
|
|
75
|
+
|
|
76
|
+
if (t < 0) {
|
|
77
|
+
t = 0;
|
|
78
|
+
s = clamp01(-c / a);
|
|
79
|
+
} else if (t > 1) {
|
|
80
|
+
t = 1;
|
|
81
|
+
s = clamp01((b - c) / a);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
out[0] = s;
|
|
87
|
+
out[1] = t;
|
|
88
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a unit quaternion to a 3×3 matrix laid out as
|
|
3
|
+
* "rows-are-world-coords-of-the-local-axes".
|
|
4
|
+
*
|
|
5
|
+
* Writes 9 floats starting at `out[out_offset]`:
|
|
6
|
+
*
|
|
7
|
+
* row 0 (offsets 0..2) — image of body-local +X in world space
|
|
8
|
+
* row 1 (offsets 3..5) — image of body-local +Y in world space
|
|
9
|
+
* row 2 (offsets 6..8) — image of body-local +Z in world space
|
|
10
|
+
*
|
|
11
|
+
* This is the **transpose** of the standard linear-algebra rotation
|
|
12
|
+
* matrix `R(q)` (which is "columns-are-world-coords-of-local-axes" or
|
|
13
|
+
* equivalently rows-are-local-coords-of-world-axes). The layout here
|
|
14
|
+
* matches the existing `quat_to_axes` helpers in
|
|
15
|
+
* `box_box_manifold.js` / `box_triangle_contact.js` — for SAT
|
|
16
|
+
* projection a row dot product against a candidate axis directly
|
|
17
|
+
* yields "extent of the box's local axis i along that direction":
|
|
18
|
+
*
|
|
19
|
+
* project_onto(v) = out[off+0..2] · v // ← local-X extent
|
|
20
|
+
*
|
|
21
|
+
* Computing M(q) once and reusing across many vectors is cheaper
|
|
22
|
+
* than calling {@link v3_quat3_apply} per vector when the same
|
|
23
|
+
* orientation rotates ≥ 4 vectors (box-vs-box SAT projects 8
|
|
24
|
+
* corners; box-vs-triangle clips an incident face). For one-shot
|
|
25
|
+
* rotation use {@link v3_quat3_apply} directly.
|
|
26
|
+
*
|
|
27
|
+
* To rotate a world-space vector `v` into the local frame via the
|
|
28
|
+
* matrix form, the standard `R · v` (rotate local → world) requires
|
|
29
|
+
* a **column-major** read of this storage:
|
|
30
|
+
*
|
|
31
|
+
* (R · v)[i] = out[off + 0 + i] * v[0]
|
|
32
|
+
* + out[off + 3 + i] * v[1]
|
|
33
|
+
* + out[off + 6 + i] * v[2]
|
|
34
|
+
*
|
|
35
|
+
* — equivalent to {@link v3_quat3_apply}(v, q).
|
|
36
|
+
*
|
|
37
|
+
* Sign convention: `(qx, qy, qz, qw)` — `w` last, matching
|
|
38
|
+
* {@link Quaternion} and the rest of the `core/geom/3d/quaternion/`
|
|
39
|
+
* family.
|
|
40
|
+
*
|
|
41
|
+
* Formula (yields R^T of the standard linear-algebra rotation matrix):
|
|
42
|
+
* out[0]=1-2(yy+zz) out[1]=2(xy+wz) out[2]=2(xz-wy)
|
|
43
|
+
* out[3]=2(xy-wz) out[4]=1-2(xx+zz) out[5]=2(yz+wx)
|
|
44
|
+
* out[6]=2(xz+wy) out[7]=2(yz-wx) out[8]=1-2(xx+yy)
|
|
45
|
+
*
|
|
46
|
+
* @param {number[]|Float32Array|Float64Array} out
|
|
47
|
+
* @param {number} out_offset offset into `out`; receives 9 floats
|
|
48
|
+
* @param {number} qx unit quaternion x
|
|
49
|
+
* @param {number} qy
|
|
50
|
+
* @param {number} qz
|
|
51
|
+
* @param {number} qw unit quaternion w (last)
|
|
52
|
+
*/
|
|
53
|
+
export function quat3_to_matrix3(out: number[] | Float32Array | Float64Array, out_offset: number, qx: number, qy: number, qz: number, qw: number): void;
|
|
54
|
+
//# sourceMappingURL=quat3_to_matrix3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quat3_to_matrix3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/quaternion/quat3_to_matrix3.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,sCAPW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,cAClC,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAkBhB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a unit quaternion to a 3×3 matrix laid out as
|
|
3
|
+
* "rows-are-world-coords-of-the-local-axes".
|
|
4
|
+
*
|
|
5
|
+
* Writes 9 floats starting at `out[out_offset]`:
|
|
6
|
+
*
|
|
7
|
+
* row 0 (offsets 0..2) — image of body-local +X in world space
|
|
8
|
+
* row 1 (offsets 3..5) — image of body-local +Y in world space
|
|
9
|
+
* row 2 (offsets 6..8) — image of body-local +Z in world space
|
|
10
|
+
*
|
|
11
|
+
* This is the **transpose** of the standard linear-algebra rotation
|
|
12
|
+
* matrix `R(q)` (which is "columns-are-world-coords-of-local-axes" or
|
|
13
|
+
* equivalently rows-are-local-coords-of-world-axes). The layout here
|
|
14
|
+
* matches the existing `quat_to_axes` helpers in
|
|
15
|
+
* `box_box_manifold.js` / `box_triangle_contact.js` — for SAT
|
|
16
|
+
* projection a row dot product against a candidate axis directly
|
|
17
|
+
* yields "extent of the box's local axis i along that direction":
|
|
18
|
+
*
|
|
19
|
+
* project_onto(v) = out[off+0..2] · v // ← local-X extent
|
|
20
|
+
*
|
|
21
|
+
* Computing M(q) once and reusing across many vectors is cheaper
|
|
22
|
+
* than calling {@link v3_quat3_apply} per vector when the same
|
|
23
|
+
* orientation rotates ≥ 4 vectors (box-vs-box SAT projects 8
|
|
24
|
+
* corners; box-vs-triangle clips an incident face). For one-shot
|
|
25
|
+
* rotation use {@link v3_quat3_apply} directly.
|
|
26
|
+
*
|
|
27
|
+
* To rotate a world-space vector `v` into the local frame via the
|
|
28
|
+
* matrix form, the standard `R · v` (rotate local → world) requires
|
|
29
|
+
* a **column-major** read of this storage:
|
|
30
|
+
*
|
|
31
|
+
* (R · v)[i] = out[off + 0 + i] * v[0]
|
|
32
|
+
* + out[off + 3 + i] * v[1]
|
|
33
|
+
* + out[off + 6 + i] * v[2]
|
|
34
|
+
*
|
|
35
|
+
* — equivalent to {@link v3_quat3_apply}(v, q).
|
|
36
|
+
*
|
|
37
|
+
* Sign convention: `(qx, qy, qz, qw)` — `w` last, matching
|
|
38
|
+
* {@link Quaternion} and the rest of the `core/geom/3d/quaternion/`
|
|
39
|
+
* family.
|
|
40
|
+
*
|
|
41
|
+
* Formula (yields R^T of the standard linear-algebra rotation matrix):
|
|
42
|
+
* out[0]=1-2(yy+zz) out[1]=2(xy+wz) out[2]=2(xz-wy)
|
|
43
|
+
* out[3]=2(xy-wz) out[4]=1-2(xx+zz) out[5]=2(yz+wx)
|
|
44
|
+
* out[6]=2(xz+wy) out[7]=2(yz-wx) out[8]=1-2(xx+yy)
|
|
45
|
+
*
|
|
46
|
+
* @param {number[]|Float32Array|Float64Array} out
|
|
47
|
+
* @param {number} out_offset offset into `out`; receives 9 floats
|
|
48
|
+
* @param {number} qx unit quaternion x
|
|
49
|
+
* @param {number} qy
|
|
50
|
+
* @param {number} qz
|
|
51
|
+
* @param {number} qw unit quaternion w (last)
|
|
52
|
+
*/
|
|
53
|
+
export function quat3_to_matrix3(out, out_offset, qx, qy, qz, qw) {
|
|
54
|
+
const xx = qx * qx, yy = qy * qy, zz = qz * qz;
|
|
55
|
+
const xy = qx * qy, xz = qx * qz, yz = qy * qz;
|
|
56
|
+
const wx = qw * qx, wy = qw * qy, wz = qw * qz;
|
|
57
|
+
|
|
58
|
+
out[out_offset] = 1 - 2 * (yy + zz);
|
|
59
|
+
out[out_offset + 1] = 2 * (xy + wz);
|
|
60
|
+
out[out_offset + 2] = 2 * (xz - wy);
|
|
61
|
+
|
|
62
|
+
out[out_offset + 3] = 2 * (xy - wz);
|
|
63
|
+
out[out_offset + 4] = 1 - 2 * (xx + zz);
|
|
64
|
+
out[out_offset + 5] = 2 * (yz + wx);
|
|
65
|
+
|
|
66
|
+
out[out_offset + 6] = 2 * (xz + wy);
|
|
67
|
+
out[out_offset + 7] = 2 * (yz - wx);
|
|
68
|
+
out[out_offset + 8] = 1 - 2 * (xx + yy);
|
|
69
|
+
}
|
|
@@ -51,14 +51,14 @@ export class AbstractShape3D {
|
|
|
51
51
|
/**
|
|
52
52
|
* Support function, given a direction vector, return point on the shape that's furthest in that direction
|
|
53
53
|
* Assumes direction is a unit vector
|
|
54
|
-
* @param {number[]|Float32Array} result
|
|
54
|
+
* @param {number[]|Float32Array|Float64Array} result
|
|
55
55
|
* @param {number} result_offset
|
|
56
56
|
* @param {number} direction_x
|
|
57
57
|
* @param {number} direction_y
|
|
58
58
|
* @param {number} direction_z
|
|
59
59
|
* @returns {void}
|
|
60
60
|
*/
|
|
61
|
-
support(result: number[] | Float32Array, result_offset: number, direction_x: number, direction_y: number, direction_z: number): void;
|
|
61
|
+
support(result: number[] | Float32Array | Float64Array, result_offset: number, direction_x: number, direction_y: number, direction_z: number): void;
|
|
62
62
|
/**
|
|
63
63
|
* @template {AbstractShape3D} T
|
|
64
64
|
* @param {T} other
|
|
@@ -70,5 +70,27 @@ export class AbstractShape3D {
|
|
|
70
70
|
* @returns {number}
|
|
71
71
|
*/
|
|
72
72
|
hash(): number;
|
|
73
|
+
/**
|
|
74
|
+
* Whether this shape is convex.
|
|
75
|
+
*
|
|
76
|
+
* Convex shapes can be fed directly into GJK/EPA via their {@link support}
|
|
77
|
+
* function — the Minkowski difference of two convex sets is itself convex,
|
|
78
|
+
* which is the precondition GJK relies on. Non-convex shapes (heightmaps,
|
|
79
|
+
* arbitrary meshes, unions of convex shapes) violate that precondition: the
|
|
80
|
+
* support operator is still definable as `argmax (p · d)`, but feeding it to
|
|
81
|
+
* GJK will produce false negatives where the algorithm walks into a
|
|
82
|
+
* concavity and reports "no overlap" between intersecting bodies.
|
|
83
|
+
*
|
|
84
|
+
* The narrowphase reads this flag to gate Minkowski-based pair dispatch.
|
|
85
|
+
* When `false`, a dedicated path is required (grid traversal for heightmaps,
|
|
86
|
+
* per-triangle GJK for meshes, per-child decomposition for unions).
|
|
87
|
+
*
|
|
88
|
+
* Default is `true` — convex is the common case across primitives. Each
|
|
89
|
+
* non-convex subclass overrides this on its own prototype.
|
|
90
|
+
*
|
|
91
|
+
* @readonly
|
|
92
|
+
* @type {boolean}
|
|
93
|
+
*/
|
|
94
|
+
readonly is_convex: boolean;
|
|
73
95
|
}
|
|
74
96
|
//# sourceMappingURL=AbstractShape3D.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/AbstractShape3D.js"],"names":[],"mappings":"AAAA;IACI;;;;OAIG;IACH,gCAHW,MAAM,EAAE,GACN,MAAM,CAIlB;IAED;;;;;OAKG;IACH,0CAJW,MAAM,EAAE,SACR,MAAM,EAAE,GACN,MAAM,CAIlB;IAED;;;;;OAKG;IACH,iCAJW,MAAM,EAAE,aACR,MAAM,EAAE,GACN,IAAI,CAIhB;IAED;;;;;;OAMG;IACH,sCALW,MAAM,EAAE,iBACR,MAAM,qBAEJ,IAAI,CAIhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,EAAE,GACN,OAAO,CAInB;IAED;;;OAGG;IACH,qBAEC;IAED;;OAEG;IACH,2BAEC;IAED;;;;OAIG;IACH,6BAHW,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,YAAY,GAAC,YAAY,GAClD,IAAI,CAIhB;IAED;;;;;;;;;OASG;IACH,gBAPW,MAAM,EAAE,GAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"AbstractShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/AbstractShape3D.js"],"names":[],"mappings":"AAAA;IACI;;;;OAIG;IACH,gCAHW,MAAM,EAAE,GACN,MAAM,CAIlB;IAED;;;;;OAKG;IACH,0CAJW,MAAM,EAAE,SACR,MAAM,EAAE,GACN,MAAM,CAIlB;IAED;;;;;OAKG;IACH,iCAJW,MAAM,EAAE,aACR,MAAM,EAAE,GACN,IAAI,CAIhB;IAED;;;;;;OAMG;IACH,sCALW,MAAM,EAAE,iBACR,MAAM,qBAEJ,IAAI,CAIhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,EAAE,GACN,OAAO,CAInB;IAED;;;OAGG;IACH,qBAEC;IAED;;OAEG;IACH,2BAEC;IAED;;;;OAIG;IACH,6BAHW,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,YAAY,GAAC,YAAY,GAClD,IAAI,CAIhB;IAED;;;;;;;;;OASG;IACH,gBAPW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,GACJ,IAAI,CAIhB;IAED;;;;OAIG;IACH,6CAFa,OAAO,CAInB;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAGL;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,oBAFU,OAAO,CAEkB;CAvBlC"}
|
|
@@ -75,7 +75,7 @@ export class AbstractShape3D {
|
|
|
75
75
|
/**
|
|
76
76
|
* Support function, given a direction vector, return point on the shape that's furthest in that direction
|
|
77
77
|
* Assumes direction is a unit vector
|
|
78
|
-
* @param {number[]|Float32Array} result
|
|
78
|
+
* @param {number[]|Float32Array|Float64Array} result
|
|
79
79
|
* @param {number} result_offset
|
|
80
80
|
* @param {number} direction_x
|
|
81
81
|
* @param {number} direction_y
|
|
@@ -103,3 +103,26 @@ export class AbstractShape3D {
|
|
|
103
103
|
return 0;
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Whether this shape is convex.
|
|
109
|
+
*
|
|
110
|
+
* Convex shapes can be fed directly into GJK/EPA via their {@link support}
|
|
111
|
+
* function — the Minkowski difference of two convex sets is itself convex,
|
|
112
|
+
* which is the precondition GJK relies on. Non-convex shapes (heightmaps,
|
|
113
|
+
* arbitrary meshes, unions of convex shapes) violate that precondition: the
|
|
114
|
+
* support operator is still definable as `argmax (p · d)`, but feeding it to
|
|
115
|
+
* GJK will produce false negatives where the algorithm walks into a
|
|
116
|
+
* concavity and reports "no overlap" between intersecting bodies.
|
|
117
|
+
*
|
|
118
|
+
* The narrowphase reads this flag to gate Minkowski-based pair dispatch.
|
|
119
|
+
* When `false`, a dedicated path is required (grid traversal for heightmaps,
|
|
120
|
+
* per-triangle GJK for meshes, per-child decomposition for unions).
|
|
121
|
+
*
|
|
122
|
+
* Default is `true` — convex is the common case across primitives. Each
|
|
123
|
+
* non-convex subclass overrides this on its own prototype.
|
|
124
|
+
*
|
|
125
|
+
* @readonly
|
|
126
|
+
* @type {boolean}
|
|
127
|
+
*/
|
|
128
|
+
AbstractShape3D.prototype.is_convex = true;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Axis-aligned box of arbitrary half-extents, expressed in the body's local
|
|
3
|
+
* frame. The shape spans `[-half_extents.x, +half_extents.x]` along X and
|
|
4
|
+
* symmetrically on Y / Z.
|
|
5
|
+
*
|
|
6
|
+
* This is the generalisation of {@link UnitCubeShape3D} (which is fixed to
|
|
7
|
+
* `0.5` per axis). The physics narrowphase recognises both via the shared
|
|
8
|
+
* `isBoxShape3D` prototype marker and reads `half_extents.x / y / z` to feed
|
|
9
|
+
* the closed-form sphere-box and box-box paths.
|
|
10
|
+
*
|
|
11
|
+
* @author Alex Goldring
|
|
12
|
+
* @copyright Company Named Limited (c) 2026
|
|
13
|
+
*/
|
|
14
|
+
export class BoxShape3D extends AbstractShape3D {
|
|
15
|
+
/**
|
|
16
|
+
* Convenience constructor.
|
|
17
|
+
* @param {number} hx
|
|
18
|
+
* @param {number} hy
|
|
19
|
+
* @param {number} hz
|
|
20
|
+
* @returns {BoxShape3D}
|
|
21
|
+
*/
|
|
22
|
+
static from(hx: number, hy: number, hz: number): BoxShape3D;
|
|
23
|
+
/**
|
|
24
|
+
* Convenience constructor for boxes specified by full side lengths
|
|
25
|
+
* rather than half-extents.
|
|
26
|
+
* @param {number} width
|
|
27
|
+
* @param {number} height
|
|
28
|
+
* @param {number} depth
|
|
29
|
+
* @returns {BoxShape3D}
|
|
30
|
+
*/
|
|
31
|
+
static from_size(width: number, height: number, depth: number): BoxShape3D;
|
|
32
|
+
/**
|
|
33
|
+
* Half-width / half-height / half-depth in the body's local frame.
|
|
34
|
+
* @readonly
|
|
35
|
+
* @type {Vector3}
|
|
36
|
+
*/
|
|
37
|
+
readonly half_extents: Vector3;
|
|
38
|
+
compute_bounding_box(result: any): void;
|
|
39
|
+
nearest_point_on_surface(result: any, reference: any): void;
|
|
40
|
+
support(result: any, result_offset: any, direction_x: any, direction_y: any, direction_z: any): void;
|
|
41
|
+
signed_distance_gradient_at_point(result: any, point: any): number;
|
|
42
|
+
signed_distance_at_point(point: any): number;
|
|
43
|
+
contains_point(point: any): boolean;
|
|
44
|
+
sample_random_point_in_volume(result: any, result_offset: any, random: any): void;
|
|
45
|
+
/**
|
|
46
|
+
* @param {BoxShape3D} other
|
|
47
|
+
* @returns {boolean}
|
|
48
|
+
*/
|
|
49
|
+
equals(other: BoxShape3D): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Fast type-check marker. Lets the physics narrowphase dispatch sphere-box
|
|
52
|
+
* and box-box pairs against arbitrary-half-extent boxes without an instanceof
|
|
53
|
+
* import or chain check. Read together with `shape.half_extents.x/y/z`.
|
|
54
|
+
* @readonly
|
|
55
|
+
* @type {boolean}
|
|
56
|
+
*/
|
|
57
|
+
readonly isBoxShape3D: boolean;
|
|
58
|
+
}
|
|
59
|
+
import { AbstractShape3D } from "./AbstractShape3D.js";
|
|
60
|
+
import Vector3 from "../../Vector3.js";
|
|
61
|
+
//# sourceMappingURL=BoxShape3D.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoxShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/BoxShape3D.js"],"names":[],"mappings":"AAYA;;;;;;;;;;;;GAYG;AACH;IAYI;;;;;;OAMG;IACH,gBALW,MAAM,MACN,MAAM,MACN,MAAM,GACJ,UAAU,CAMtB;IAED;;;;;;;OAOG;IACH,wBALW,MAAM,UACN,MAAM,SACN,MAAM,GACJ,UAAU,CAItB;IA/BG;;;;OAIG;IACH,uBAFU,OAAO,CAE6B;IAsClD,wCAIC;IAED,4DAQC;IAED,qGAKC;IAED,mEAEC;IAED,6CAaC;IAED,oCAQC;IAED,kFAOC;IAED;;;OAGG;IACH,cAHW,UAAU,GACR,OAAO,CAInB;IAWL;;;;;;OAMG;IACH,uBAFU,OAAO,CAEgB;CAThC;gCA3I+B,sBAAsB;oBATlC,kBAAkB"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import Vector3 from "../../Vector3.js";
|
|
2
|
+
import { max2 } from "../../../math/max2.js";
|
|
3
|
+
import { max3 } from "../../../math/max3.js";
|
|
4
|
+
import { min2 } from "../../../math/min2.js";
|
|
5
|
+
import { sign_not_zero } from "../../../math/sign_not_zero.js";
|
|
6
|
+
import { computeHashFloat } from "../../../primitives/numbers/computeHashFloat.js";
|
|
7
|
+
import { randomPointInBox } from "../../random/randomPointInBox.js";
|
|
8
|
+
import { v3_length } from "../../vec3/v3_length.js";
|
|
9
|
+
import { aabb3_nearest_point_on_surface } from "../aabb/aabb3_nearest_point_on_surface.js";
|
|
10
|
+
import { AbstractShape3D } from "./AbstractShape3D.js";
|
|
11
|
+
import { compute_signed_distance_gradient_by_sampling } from "./util/compute_signed_distance_gradient_by_sampling.js";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Axis-aligned box of arbitrary half-extents, expressed in the body's local
|
|
15
|
+
* frame. The shape spans `[-half_extents.x, +half_extents.x]` along X and
|
|
16
|
+
* symmetrically on Y / Z.
|
|
17
|
+
*
|
|
18
|
+
* This is the generalisation of {@link UnitCubeShape3D} (which is fixed to
|
|
19
|
+
* `0.5` per axis). The physics narrowphase recognises both via the shared
|
|
20
|
+
* `isBoxShape3D` prototype marker and reads `half_extents.x / y / z` to feed
|
|
21
|
+
* the closed-form sphere-box and box-box paths.
|
|
22
|
+
*
|
|
23
|
+
* @author Alex Goldring
|
|
24
|
+
* @copyright Company Named Limited (c) 2026
|
|
25
|
+
*/
|
|
26
|
+
export class BoxShape3D extends AbstractShape3D {
|
|
27
|
+
constructor() {
|
|
28
|
+
super();
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Half-width / half-height / half-depth in the body's local frame.
|
|
32
|
+
* @readonly
|
|
33
|
+
* @type {Vector3}
|
|
34
|
+
*/
|
|
35
|
+
this.half_extents = new Vector3(0.5, 0.5, 0.5);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Convenience constructor.
|
|
40
|
+
* @param {number} hx
|
|
41
|
+
* @param {number} hy
|
|
42
|
+
* @param {number} hz
|
|
43
|
+
* @returns {BoxShape3D}
|
|
44
|
+
*/
|
|
45
|
+
static from(hx, hy, hz) {
|
|
46
|
+
const b = new BoxShape3D();
|
|
47
|
+
b.half_extents.set(hx, hy, hz);
|
|
48
|
+
return b;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Convenience constructor for boxes specified by full side lengths
|
|
53
|
+
* rather than half-extents.
|
|
54
|
+
* @param {number} width
|
|
55
|
+
* @param {number} height
|
|
56
|
+
* @param {number} depth
|
|
57
|
+
* @returns {BoxShape3D}
|
|
58
|
+
*/
|
|
59
|
+
static from_size(width, height, depth) {
|
|
60
|
+
return BoxShape3D.from(width * 0.5, height * 0.5, depth * 0.5);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
get volume() {
|
|
64
|
+
const h = this.half_extents;
|
|
65
|
+
return 8 * h.x * h.y * h.z;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
get surface_area() {
|
|
69
|
+
const h = this.half_extents;
|
|
70
|
+
return 8 * (h.x * h.y + h.y * h.z + h.z * h.x);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
compute_bounding_box(result) {
|
|
74
|
+
const h = this.half_extents;
|
|
75
|
+
result[0] = -h.x; result[1] = -h.y; result[2] = -h.z;
|
|
76
|
+
result[3] = h.x; result[4] = h.y; result[5] = h.z;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
nearest_point_on_surface(result, reference) {
|
|
80
|
+
const h = this.half_extents;
|
|
81
|
+
aabb3_nearest_point_on_surface(
|
|
82
|
+
result,
|
|
83
|
+
-h.x, -h.y, -h.z,
|
|
84
|
+
h.x, h.y, h.z,
|
|
85
|
+
reference[0], reference[1], reference[2]
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
support(result, result_offset, direction_x, direction_y, direction_z) {
|
|
90
|
+
const h = this.half_extents;
|
|
91
|
+
result[result_offset] = sign_not_zero(direction_x) * h.x;
|
|
92
|
+
result[result_offset + 1] = sign_not_zero(direction_y) * h.y;
|
|
93
|
+
result[result_offset + 2] = sign_not_zero(direction_z) * h.z;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
signed_distance_gradient_at_point(result, point) {
|
|
97
|
+
return compute_signed_distance_gradient_by_sampling(result, this, point);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
signed_distance_at_point(point) {
|
|
101
|
+
// SDF of an axis-aligned box centred at origin. Same closed form as
|
|
102
|
+
// UnitCubeShape3D but parametrised by half_extents.
|
|
103
|
+
const h = this.half_extents;
|
|
104
|
+
const q_x = Math.abs(point[0]) - h.x;
|
|
105
|
+
const q_y = Math.abs(point[1]) - h.y;
|
|
106
|
+
const q_z = Math.abs(point[2]) - h.z;
|
|
107
|
+
|
|
108
|
+
return v3_length(
|
|
109
|
+
max2(q_x, 0),
|
|
110
|
+
max2(q_y, 0),
|
|
111
|
+
max2(q_z, 0)
|
|
112
|
+
) + min2(max3(q_x, q_y, q_z), 0);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
contains_point(point) {
|
|
116
|
+
const h = this.half_extents;
|
|
117
|
+
const x = point[0];
|
|
118
|
+
const y = point[1];
|
|
119
|
+
const z = point[2];
|
|
120
|
+
return x > -h.x && x < h.x
|
|
121
|
+
&& y > -h.y && y < h.y
|
|
122
|
+
&& z > -h.z && z < h.z;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
sample_random_point_in_volume(result, result_offset, random) {
|
|
126
|
+
randomPointInBox(random, result, result_offset);
|
|
127
|
+
const h = this.half_extents;
|
|
128
|
+
// randomPointInBox samples a unit cube — rescale to our half-extents.
|
|
129
|
+
result[result_offset] *= h.x * 2;
|
|
130
|
+
result[result_offset + 1] *= h.y * 2;
|
|
131
|
+
result[result_offset + 2] *= h.z * 2;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @param {BoxShape3D} other
|
|
136
|
+
* @returns {boolean}
|
|
137
|
+
*/
|
|
138
|
+
equals(other) {
|
|
139
|
+
return super.equals(other) && this.half_extents.equals(other.half_extents);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
hash() {
|
|
143
|
+
const h = this.half_extents;
|
|
144
|
+
const a = computeHashFloat(h.x);
|
|
145
|
+
const b = computeHashFloat(h.y);
|
|
146
|
+
const c = computeHashFloat(h.z);
|
|
147
|
+
return ((a * 31 + b) * 31 + c) | 0;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Fast type-check marker. Lets the physics narrowphase dispatch sphere-box
|
|
153
|
+
* and box-box pairs against arbitrary-half-extent boxes without an instanceof
|
|
154
|
+
* import or chain check. Read together with `shape.half_extents.x/y/z`.
|
|
155
|
+
* @readonly
|
|
156
|
+
* @type {boolean}
|
|
157
|
+
*/
|
|
158
|
+
BoxShape3D.prototype.isBoxShape3D = true;
|
|
@@ -32,6 +32,17 @@ export class CapsuleShape3D extends AbstractShape3D {
|
|
|
32
32
|
* @returns {boolean}
|
|
33
33
|
*/
|
|
34
34
|
equals(other: CapsuleShape3D): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Fast type-check marker, mirroring `UnitSphereShape3D.prototype.isUnitSphereShape3D`
|
|
37
|
+
* and `BoxShape3D.prototype.isBoxShape3D`. Lets the physics narrowphase
|
|
38
|
+
* dispatch capsule-sphere / capsule-capsule / capsule-box pairs to
|
|
39
|
+
* closed-form helpers (capsule = Minkowski sum of segment + sphere; all
|
|
40
|
+
* three reduce to point-or-segment distance queries that GJK+EPA struggles
|
|
41
|
+
* with on a smooth surface).
|
|
42
|
+
* @readonly
|
|
43
|
+
* @type {boolean}
|
|
44
|
+
*/
|
|
45
|
+
readonly isCapsuleShape3D: boolean;
|
|
35
46
|
}
|
|
36
47
|
import { AbstractShape3D } from "./AbstractShape3D.js";
|
|
37
48
|
//# sourceMappingURL=CapsuleShape3D.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapsuleShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/CapsuleShape3D.js"],"names":[],"mappings":"AAYA;;;;GAIG;AACH;IAiBI;;;;OAIG;IACH,oBAJW,MAAM,UACN,MAAM,GACJ,cAAc,CAa1B;IA7BG;;;OAGG;IACH,QAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,QAFU,MAAM,CAED;IAqCnB,wCAUC;IAED,6CAaC;IAED,mEAEC;IAED,oCAcC;IAED,4DA+BC;IAED,qGAUC;IAED,kFA+BC;IAED;;;OAGG;IACH,cAHW,cAAc,GACZ,OAAO,CAMnB;
|
|
1
|
+
{"version":3,"file":"CapsuleShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/CapsuleShape3D.js"],"names":[],"mappings":"AAYA;;;;GAIG;AACH;IAiBI;;;;OAIG;IACH,oBAJW,MAAM,UACN,MAAM,GACJ,cAAc,CAa1B;IA7BG;;;OAGG;IACH,QAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,QAFU,MAAM,CAED;IAqCnB,wCAUC;IAED,6CAaC;IAED,mEAEC;IAED,oCAcC;IAED,4DA+BC;IAED,qGAUC;IAED,kFA+BC;IAED;;;OAGG;IACH,cAHW,cAAc,GACZ,OAAO,CAMnB;IAUL;;;;;;;;;OASG;IACH,2BAFU,OAAO,CAEwB;CAZxC;gCA1M+B,sBAAsB"}
|