@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,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sentinel value for {@link RigidBody#_bodyId} prior to allocation by a
|
|
3
|
+
* {@link PhysicsSystem}. After {@link PhysicsSystem#link}, the id is a packed
|
|
4
|
+
* `(index << 8) | generation` integer.
|
|
5
|
+
*
|
|
6
|
+
* @type {number}
|
|
7
|
+
*/
|
|
8
|
+
export const RIGID_BODY_UNALLOCATED: number;
|
|
9
|
+
/**
|
|
10
|
+
* Rigid-body component.
|
|
11
|
+
*
|
|
12
|
+
* Pose lives on {@link Transform}; this component owns the dynamic state that is not
|
|
13
|
+
* part of TRS: velocity, mass, inertia, damping, gravity scale, layer / mask
|
|
14
|
+
* filtering and a small set of bit-flags ({@link RigidBodyFlags}).
|
|
15
|
+
*
|
|
16
|
+
* Defaults are conservative: the body translates under forces but cannot rotate
|
|
17
|
+
* unless the user explicitly sets {@link inverseInertiaLocal} — forgetting to
|
|
18
|
+
* configure inertia results in a locked-rotation body, never a NaN tumble.
|
|
19
|
+
*
|
|
20
|
+
* @author Alex Goldring
|
|
21
|
+
* @copyright Company Named Limited (c) 2026
|
|
22
|
+
*/
|
|
23
|
+
export class RigidBody {
|
|
24
|
+
/**
|
|
25
|
+
* @type {BodyKind|number}
|
|
26
|
+
*/
|
|
27
|
+
kind: BodyKind | number;
|
|
28
|
+
/**
|
|
29
|
+
* Linear velocity in world space, m/s.
|
|
30
|
+
* @readonly
|
|
31
|
+
* @type {Vector3}
|
|
32
|
+
*/
|
|
33
|
+
readonly linearVelocity: Vector3;
|
|
34
|
+
/**
|
|
35
|
+
* Angular velocity in world space, rad/s.
|
|
36
|
+
* @readonly
|
|
37
|
+
* @type {Vector3}
|
|
38
|
+
*/
|
|
39
|
+
readonly angularVelocity: Vector3;
|
|
40
|
+
/**
|
|
41
|
+
* Accumulator for forces applied between fixed-update steps. Consumed and
|
|
42
|
+
* zeroed by the integrator. User code applies via
|
|
43
|
+
* {@link PhysicsSystem#applyForce}; do not write directly.
|
|
44
|
+
* @readonly
|
|
45
|
+
* @type {Vector3}
|
|
46
|
+
*/
|
|
47
|
+
readonly accumulatedForce: Vector3;
|
|
48
|
+
/**
|
|
49
|
+
* Accumulator for torques applied between fixed-update steps. Consumed and
|
|
50
|
+
* zeroed by the integrator.
|
|
51
|
+
* @readonly
|
|
52
|
+
* @type {Vector3}
|
|
53
|
+
*/
|
|
54
|
+
readonly accumulatedTorque: Vector3;
|
|
55
|
+
/**
|
|
56
|
+
* Total mass, kg. Must be positive for Dynamic bodies; Static / Kinematic
|
|
57
|
+
* bodies behave as if mass were infinite regardless of this value.
|
|
58
|
+
* @type {number}
|
|
59
|
+
*/
|
|
60
|
+
mass: number;
|
|
61
|
+
/**
|
|
62
|
+
* Inverse principal-frame inertia, diagonal. Components of zero lock the
|
|
63
|
+
* corresponding rotational degree of freedom. The default of (0,0,0) means
|
|
64
|
+
* rotation is locked until the user sets a value.
|
|
65
|
+
* @readonly
|
|
66
|
+
* @type {Vector3}
|
|
67
|
+
*/
|
|
68
|
+
readonly inverseInertiaLocal: Vector3;
|
|
69
|
+
/**
|
|
70
|
+
* @type {number}
|
|
71
|
+
*/
|
|
72
|
+
linearDamping: number;
|
|
73
|
+
/**
|
|
74
|
+
* @type {number}
|
|
75
|
+
*/
|
|
76
|
+
angularDamping: number;
|
|
77
|
+
/**
|
|
78
|
+
* Multiplier for the world gravity on this body. 1 = normal gravity,
|
|
79
|
+
* 0 = floating, negative values invert.
|
|
80
|
+
* @type {number}
|
|
81
|
+
*/
|
|
82
|
+
gravityScale: number;
|
|
83
|
+
/**
|
|
84
|
+
* Layer bitmask identifying this body's category.
|
|
85
|
+
* @type {number}
|
|
86
|
+
*/
|
|
87
|
+
layer: number;
|
|
88
|
+
/**
|
|
89
|
+
* Mask of layers this body collides with.
|
|
90
|
+
* @type {number}
|
|
91
|
+
*/
|
|
92
|
+
mask: number;
|
|
93
|
+
/**
|
|
94
|
+
* @type {RigidBodyFlags|number}
|
|
95
|
+
*/
|
|
96
|
+
flags: RigidBodyFlags | number;
|
|
97
|
+
/**
|
|
98
|
+
* Owned by the {@link PhysicsSystem}; user code must not write.
|
|
99
|
+
* @type {SleepState|number}
|
|
100
|
+
*/
|
|
101
|
+
sleepState: SleepState | number;
|
|
102
|
+
/**
|
|
103
|
+
* Seconds spent below the sleep-threshold velocity. The system increments
|
|
104
|
+
* this each step the body is essentially at rest; once it crosses
|
|
105
|
+
* {@link PhysicsSystem}'s sleep threshold, the body is moved out of the
|
|
106
|
+
* active set. Reset to 0 whenever the body moves above threshold.
|
|
107
|
+
*
|
|
108
|
+
* Transient runtime state — not serialised, not user-writable.
|
|
109
|
+
* @type {number}
|
|
110
|
+
*/
|
|
111
|
+
sleep_timer: number;
|
|
112
|
+
/**
|
|
113
|
+
* Next body in this body's atomic-sleep group, expressed as a body
|
|
114
|
+
* **index** (NOT a packed id). Sleep groups are circular doubly-linked
|
|
115
|
+
* lists threaded through every member when an island goes to sleep
|
|
116
|
+
* atomically; on wake, the physics system walks the chain to wake every
|
|
117
|
+
* member in the same step.
|
|
118
|
+
*
|
|
119
|
+
* `-1` when the body is awake or asleep as a singleton.
|
|
120
|
+
*
|
|
121
|
+
* Transient runtime state — not serialised, not user-writable.
|
|
122
|
+
* @type {number}
|
|
123
|
+
*/
|
|
124
|
+
sleep_group_next: number;
|
|
125
|
+
/**
|
|
126
|
+
* Previous body in this body's atomic-sleep group. See {@link sleep_group_next}.
|
|
127
|
+
* @type {number}
|
|
128
|
+
*/
|
|
129
|
+
sleep_group_prev: number;
|
|
130
|
+
/**
|
|
131
|
+
* Packed `(index << 8) | generation` body handle. {@link RIGID_BODY_UNALLOCATED}
|
|
132
|
+
* before the body is linked into a {@link PhysicsSystem}. System-private.
|
|
133
|
+
* @type {number}
|
|
134
|
+
*/
|
|
135
|
+
_bodyId: number;
|
|
136
|
+
/**
|
|
137
|
+
*
|
|
138
|
+
* @param {number|RigidBodyFlags} flag
|
|
139
|
+
*/
|
|
140
|
+
setFlag(flag: number | RigidBodyFlags): void;
|
|
141
|
+
/**
|
|
142
|
+
*
|
|
143
|
+
* @param {number|RigidBodyFlags} flag
|
|
144
|
+
*/
|
|
145
|
+
clearFlag(flag: number | RigidBodyFlags): void;
|
|
146
|
+
/**
|
|
147
|
+
*
|
|
148
|
+
* @param {number|RigidBodyFlags} flag
|
|
149
|
+
* @returns {boolean}
|
|
150
|
+
*/
|
|
151
|
+
getFlag(flag: number | RigidBodyFlags): boolean;
|
|
152
|
+
/**
|
|
153
|
+
*
|
|
154
|
+
* @param {number|RigidBodyFlags} flag
|
|
155
|
+
* @param {boolean} value
|
|
156
|
+
*/
|
|
157
|
+
writeFlag(flag: number | RigidBodyFlags, value: boolean): void;
|
|
158
|
+
toJSON(): {
|
|
159
|
+
kind: number;
|
|
160
|
+
linearVelocity: {
|
|
161
|
+
x: number;
|
|
162
|
+
y: number;
|
|
163
|
+
z: number;
|
|
164
|
+
};
|
|
165
|
+
angularVelocity: {
|
|
166
|
+
x: number;
|
|
167
|
+
y: number;
|
|
168
|
+
z: number;
|
|
169
|
+
};
|
|
170
|
+
mass: number;
|
|
171
|
+
inverseInertiaLocal: {
|
|
172
|
+
x: number;
|
|
173
|
+
y: number;
|
|
174
|
+
z: number;
|
|
175
|
+
};
|
|
176
|
+
linearDamping: number;
|
|
177
|
+
angularDamping: number;
|
|
178
|
+
gravityScale: number;
|
|
179
|
+
layer: number;
|
|
180
|
+
mask: number;
|
|
181
|
+
flags: number;
|
|
182
|
+
};
|
|
183
|
+
fromJSON(json: any): void;
|
|
184
|
+
/**
|
|
185
|
+
* @readonly
|
|
186
|
+
* @type {boolean}
|
|
187
|
+
*/
|
|
188
|
+
readonly isRigidBody: boolean;
|
|
189
|
+
}
|
|
190
|
+
export namespace RigidBody {
|
|
191
|
+
let typeName: string;
|
|
192
|
+
}
|
|
193
|
+
import { BodyKind } from "./BodyKind.js";
|
|
194
|
+
import Vector3 from "../../../core/geom/Vector3.js";
|
|
195
|
+
import { RigidBodyFlags } from "./RigidBodyFlags.js";
|
|
196
|
+
import { SleepState } from "./SleepState.js";
|
|
197
|
+
//# sourceMappingURL=RigidBody.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RigidBody.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/ecs/RigidBody.js"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,qCAFU,MAAM,CAEyB;AAEzC;;;;;;;;;;;;;GAaG;AACH;IAEI;;OAEG;IACH,MAFU,QAAQ,GAAC,MAAM,CAED;IAExB;;;;OAIG;IACH,yBAFU,OAAO,CAEqB;IAEtC;;;;OAIG;IACH,0BAFU,OAAO,CAEsB;IAEvC;;;;;;OAMG;IACH,2BAFU,OAAO,CAEuB;IAExC;;;;;OAKG;IACH,4BAFU,OAAO,CAEwB;IAEzC;;;;OAIG;IACH,MAFU,MAAM,CAEP;IAET;;;;;;OAMG;IACH,8BAFU,OAAO,CAE0B;IAE3C;;OAEG;IACH,eAFU,MAAM,CAEE;IAElB;;OAEG;IACH,gBAFU,MAAM,CAEG;IAEnB;;;;OAIG;IACH,cAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,OAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,MAFU,MAAM,CAEM;IAEtB;;OAEG;IACH,OAFU,cAAc,GAAC,MAAM,CAEH;IAE5B;;;OAGG;IACH,YAFU,UAAU,GAAC,MAAM,CAEG;IAE9B;;;;;;;;OAQG;IACH,aAFU,MAAM,CAEA;IAEhB;;;;;;;;;;;OAWG;IACH,kBAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,kBAFU,MAAM,CAEM;IAEtB;;;;OAIG;IACH,SAFU,MAAM,CAEiB;IAEjC;;;OAGG;IACH,cAFW,MAAM,GAAC,cAAc,QAI/B;IAED;;;OAGG;IACH,gBAFW,MAAM,GAAC,cAAc,QAI/B;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,cAAc,GACnB,OAAO,CAInB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,cAAc,SACrB,OAAO,QAQjB;IAED;;;;;;;;;;;;;;;;;;;;;;;;MAcC;IAED,0BAYC;IASL;;;OAGG;IACH,sBAFU,OAAO,CAEc;CAZ9B;;kBAIS,MAAM;;yBAtOS,eAAe;oBADpB,+BAA+B;+BAEpB,qBAAqB;2BACzB,iBAAiB"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import Vector3 from "../../../core/geom/Vector3.js";
|
|
2
|
+
import { BodyKind } from "./BodyKind.js";
|
|
3
|
+
import { RigidBodyFlags } from "./RigidBodyFlags.js";
|
|
4
|
+
import { SleepState } from "./SleepState.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Sentinel value for {@link RigidBody#_bodyId} prior to allocation by a
|
|
8
|
+
* {@link PhysicsSystem}. After {@link PhysicsSystem#link}, the id is a packed
|
|
9
|
+
* `(index << 8) | generation` integer.
|
|
10
|
+
*
|
|
11
|
+
* @type {number}
|
|
12
|
+
*/
|
|
13
|
+
export const RIGID_BODY_UNALLOCATED = -1;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Rigid-body component.
|
|
17
|
+
*
|
|
18
|
+
* Pose lives on {@link Transform}; this component owns the dynamic state that is not
|
|
19
|
+
* part of TRS: velocity, mass, inertia, damping, gravity scale, layer / mask
|
|
20
|
+
* filtering and a small set of bit-flags ({@link RigidBodyFlags}).
|
|
21
|
+
*
|
|
22
|
+
* Defaults are conservative: the body translates under forces but cannot rotate
|
|
23
|
+
* unless the user explicitly sets {@link inverseInertiaLocal} — forgetting to
|
|
24
|
+
* configure inertia results in a locked-rotation body, never a NaN tumble.
|
|
25
|
+
*
|
|
26
|
+
* @author Alex Goldring
|
|
27
|
+
* @copyright Company Named Limited (c) 2026
|
|
28
|
+
*/
|
|
29
|
+
export class RigidBody {
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @type {BodyKind|number}
|
|
33
|
+
*/
|
|
34
|
+
kind = BodyKind.Dynamic;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Linear velocity in world space, m/s.
|
|
38
|
+
* @readonly
|
|
39
|
+
* @type {Vector3}
|
|
40
|
+
*/
|
|
41
|
+
linearVelocity = new Vector3(0, 0, 0);
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Angular velocity in world space, rad/s.
|
|
45
|
+
* @readonly
|
|
46
|
+
* @type {Vector3}
|
|
47
|
+
*/
|
|
48
|
+
angularVelocity = new Vector3(0, 0, 0);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Accumulator for forces applied between fixed-update steps. Consumed and
|
|
52
|
+
* zeroed by the integrator. User code applies via
|
|
53
|
+
* {@link PhysicsSystem#applyForce}; do not write directly.
|
|
54
|
+
* @readonly
|
|
55
|
+
* @type {Vector3}
|
|
56
|
+
*/
|
|
57
|
+
accumulatedForce = new Vector3(0, 0, 0);
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Accumulator for torques applied between fixed-update steps. Consumed and
|
|
61
|
+
* zeroed by the integrator.
|
|
62
|
+
* @readonly
|
|
63
|
+
* @type {Vector3}
|
|
64
|
+
*/
|
|
65
|
+
accumulatedTorque = new Vector3(0, 0, 0);
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Total mass, kg. Must be positive for Dynamic bodies; Static / Kinematic
|
|
69
|
+
* bodies behave as if mass were infinite regardless of this value.
|
|
70
|
+
* @type {number}
|
|
71
|
+
*/
|
|
72
|
+
mass = 1;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Inverse principal-frame inertia, diagonal. Components of zero lock the
|
|
76
|
+
* corresponding rotational degree of freedom. The default of (0,0,0) means
|
|
77
|
+
* rotation is locked until the user sets a value.
|
|
78
|
+
* @readonly
|
|
79
|
+
* @type {Vector3}
|
|
80
|
+
*/
|
|
81
|
+
inverseInertiaLocal = new Vector3(0, 0, 0);
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @type {number}
|
|
85
|
+
*/
|
|
86
|
+
linearDamping = 0;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* @type {number}
|
|
90
|
+
*/
|
|
91
|
+
angularDamping = 0;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Multiplier for the world gravity on this body. 1 = normal gravity,
|
|
95
|
+
* 0 = floating, negative values invert.
|
|
96
|
+
* @type {number}
|
|
97
|
+
*/
|
|
98
|
+
gravityScale = 1;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Layer bitmask identifying this body's category.
|
|
102
|
+
* @type {number}
|
|
103
|
+
*/
|
|
104
|
+
layer = 1;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Mask of layers this body collides with.
|
|
108
|
+
* @type {number}
|
|
109
|
+
*/
|
|
110
|
+
mask = 0xFFFFFFFF | 0;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* @type {RigidBodyFlags|number}
|
|
114
|
+
*/
|
|
115
|
+
flags = RigidBodyFlags.None;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Owned by the {@link PhysicsSystem}; user code must not write.
|
|
119
|
+
* @type {SleepState|number}
|
|
120
|
+
*/
|
|
121
|
+
sleepState = SleepState.Awake;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Seconds spent below the sleep-threshold velocity. The system increments
|
|
125
|
+
* this each step the body is essentially at rest; once it crosses
|
|
126
|
+
* {@link PhysicsSystem}'s sleep threshold, the body is moved out of the
|
|
127
|
+
* active set. Reset to 0 whenever the body moves above threshold.
|
|
128
|
+
*
|
|
129
|
+
* Transient runtime state — not serialised, not user-writable.
|
|
130
|
+
* @type {number}
|
|
131
|
+
*/
|
|
132
|
+
sleep_timer = 0;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Next body in this body's atomic-sleep group, expressed as a body
|
|
136
|
+
* **index** (NOT a packed id). Sleep groups are circular doubly-linked
|
|
137
|
+
* lists threaded through every member when an island goes to sleep
|
|
138
|
+
* atomically; on wake, the physics system walks the chain to wake every
|
|
139
|
+
* member in the same step.
|
|
140
|
+
*
|
|
141
|
+
* `-1` when the body is awake or asleep as a singleton.
|
|
142
|
+
*
|
|
143
|
+
* Transient runtime state — not serialised, not user-writable.
|
|
144
|
+
* @type {number}
|
|
145
|
+
*/
|
|
146
|
+
sleep_group_next = -1;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Previous body in this body's atomic-sleep group. See {@link sleep_group_next}.
|
|
150
|
+
* @type {number}
|
|
151
|
+
*/
|
|
152
|
+
sleep_group_prev = -1;
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Packed `(index << 8) | generation` body handle. {@link RIGID_BODY_UNALLOCATED}
|
|
156
|
+
* before the body is linked into a {@link PhysicsSystem}. System-private.
|
|
157
|
+
* @type {number}
|
|
158
|
+
*/
|
|
159
|
+
_bodyId = RIGID_BODY_UNALLOCATED;
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
*
|
|
163
|
+
* @param {number|RigidBodyFlags} flag
|
|
164
|
+
*/
|
|
165
|
+
setFlag(flag) {
|
|
166
|
+
this.flags |= flag;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
*
|
|
171
|
+
* @param {number|RigidBodyFlags} flag
|
|
172
|
+
*/
|
|
173
|
+
clearFlag(flag) {
|
|
174
|
+
this.flags &= ~flag;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
*
|
|
179
|
+
* @param {number|RigidBodyFlags} flag
|
|
180
|
+
* @returns {boolean}
|
|
181
|
+
*/
|
|
182
|
+
getFlag(flag) {
|
|
183
|
+
return (this.flags & flag) === flag;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
*
|
|
188
|
+
* @param {number|RigidBodyFlags} flag
|
|
189
|
+
* @param {boolean} value
|
|
190
|
+
*/
|
|
191
|
+
writeFlag(flag, value) {
|
|
192
|
+
if (value) {
|
|
193
|
+
this.setFlag(flag);
|
|
194
|
+
} else {
|
|
195
|
+
this.clearFlag(flag);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
toJSON() {
|
|
200
|
+
return {
|
|
201
|
+
kind: this.kind,
|
|
202
|
+
linearVelocity: this.linearVelocity.toJSON(),
|
|
203
|
+
angularVelocity: this.angularVelocity.toJSON(),
|
|
204
|
+
mass: this.mass,
|
|
205
|
+
inverseInertiaLocal: this.inverseInertiaLocal.toJSON(),
|
|
206
|
+
linearDamping: this.linearDamping,
|
|
207
|
+
angularDamping: this.angularDamping,
|
|
208
|
+
gravityScale: this.gravityScale,
|
|
209
|
+
layer: this.layer,
|
|
210
|
+
mask: this.mask,
|
|
211
|
+
flags: this.flags,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
fromJSON(json) {
|
|
216
|
+
if (json.kind !== undefined) this.kind = json.kind;
|
|
217
|
+
if (json.linearVelocity !== undefined) this.linearVelocity.fromJSON(json.linearVelocity);
|
|
218
|
+
if (json.angularVelocity !== undefined) this.angularVelocity.fromJSON(json.angularVelocity);
|
|
219
|
+
if (json.mass !== undefined) this.mass = json.mass;
|
|
220
|
+
if (json.inverseInertiaLocal !== undefined) this.inverseInertiaLocal.fromJSON(json.inverseInertiaLocal);
|
|
221
|
+
if (json.linearDamping !== undefined) this.linearDamping = json.linearDamping;
|
|
222
|
+
if (json.angularDamping !== undefined) this.angularDamping = json.angularDamping;
|
|
223
|
+
if (json.gravityScale !== undefined) this.gravityScale = json.gravityScale;
|
|
224
|
+
if (json.layer !== undefined) this.layer = json.layer;
|
|
225
|
+
if (json.mask !== undefined) this.mask = json.mask;
|
|
226
|
+
if (json.flags !== undefined) this.flags = json.flags;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* @readonly
|
|
232
|
+
* @type {string}
|
|
233
|
+
*/
|
|
234
|
+
RigidBody.typeName = "RigidBody";
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* @readonly
|
|
238
|
+
* @type {boolean}
|
|
239
|
+
*/
|
|
240
|
+
RigidBody.prototype.isRigidBody = true;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bit-flags carried on {@link RigidBody }.
|
|
3
|
+
*
|
|
4
|
+
* - {@link IsSensor }: contacts are detected and events fired, but no impulses are
|
|
5
|
+
* applied. Useful for triggers.
|
|
6
|
+
* - {@link LockRotX }/{@link LockRotY }/{@link LockRotZ }: the corresponding angular
|
|
7
|
+
* degree of freedom is fixed. Implemented by zeroing the matching inverse-inertia
|
|
8
|
+
* component during solve.
|
|
9
|
+
* - {@link DisableSleep }: this body never enters the sleeping set. Bodies near it
|
|
10
|
+
* may still sleep when stable.
|
|
11
|
+
*/
|
|
12
|
+
export type RigidBodyFlags = number;
|
|
13
|
+
export namespace RigidBodyFlags {
|
|
14
|
+
let None: number;
|
|
15
|
+
let IsSensor: number;
|
|
16
|
+
let LockRotX: number;
|
|
17
|
+
let LockRotY: number;
|
|
18
|
+
let LockRotZ: number;
|
|
19
|
+
let DisableSleep: number;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=RigidBodyFlags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RigidBodyFlags.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/ecs/RigidBodyFlags.js"],"names":[],"mappings":";;;;;;;;;;;6BAYU,MAAM"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bit-flags carried on {@link RigidBody}.
|
|
3
|
+
*
|
|
4
|
+
* - {@link IsSensor}: contacts are detected and events fired, but no impulses are
|
|
5
|
+
* applied. Useful for triggers.
|
|
6
|
+
* - {@link LockRotX}/{@link LockRotY}/{@link LockRotZ}: the corresponding angular
|
|
7
|
+
* degree of freedom is fixed. Implemented by zeroing the matching inverse-inertia
|
|
8
|
+
* component during solve.
|
|
9
|
+
* - {@link DisableSleep}: this body never enters the sleeping set. Bodies near it
|
|
10
|
+
* may still sleep when stable.
|
|
11
|
+
*
|
|
12
|
+
* @readonly
|
|
13
|
+
* @enum {number}
|
|
14
|
+
*/
|
|
15
|
+
export const RigidBodyFlags = {
|
|
16
|
+
None: 0,
|
|
17
|
+
IsSensor: 1,
|
|
18
|
+
LockRotX: 2,
|
|
19
|
+
LockRotY: 4,
|
|
20
|
+
LockRotZ: 8,
|
|
21
|
+
DisableSleep: 16,
|
|
22
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binary serialization for {@link RigidBody}.
|
|
3
|
+
*
|
|
4
|
+
* Only the configurable / persistent fields are written. Transient runtime state
|
|
5
|
+
* (`_bodyId`, `sleepState`, accumulated force/torque) is owned by the
|
|
6
|
+
* {@link PhysicsSystem} and recomputed on link — serialising it would tie the
|
|
7
|
+
* stream to a particular world instance.
|
|
8
|
+
*/
|
|
9
|
+
export class RigidBodySerializationAdapter extends BinaryClassSerializationAdapter<any> {
|
|
10
|
+
constructor();
|
|
11
|
+
klass: typeof RigidBody;
|
|
12
|
+
version: number;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param {BinaryBuffer} buffer
|
|
16
|
+
* @param {RigidBody} value
|
|
17
|
+
*/
|
|
18
|
+
serialize(buffer: BinaryBuffer, value: RigidBody): void;
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param {BinaryBuffer} buffer
|
|
22
|
+
* @param {RigidBody} value
|
|
23
|
+
*/
|
|
24
|
+
deserialize(buffer: BinaryBuffer, value: RigidBody): void;
|
|
25
|
+
}
|
|
26
|
+
import { BinaryClassSerializationAdapter } from "../../ecs/storage/binary/BinaryClassSerializationAdapter.js";
|
|
27
|
+
import { RigidBody } from "./RigidBody.js";
|
|
28
|
+
//# sourceMappingURL=RigidBodySerializationAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RigidBodySerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/ecs/RigidBodySerializationAdapter.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH;;IAEI,wBAAkB;IAClB,gBAAY;IAEZ;;;;OAIG;IACH,uCAFW,SAAS,QA0BnB;IAED;;;;OAIG;IACH,yCAFW,SAAS,QA6BnB;CACJ;gDAhF+C,6DAA6D;0BACnF,gBAAgB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { BinaryClassSerializationAdapter } from "../../ecs/storage/binary/BinaryClassSerializationAdapter.js";
|
|
2
|
+
import { RigidBody } from "./RigidBody.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Binary serialization for {@link RigidBody}.
|
|
6
|
+
*
|
|
7
|
+
* Only the configurable / persistent fields are written. Transient runtime state
|
|
8
|
+
* (`_bodyId`, `sleepState`, accumulated force/torque) is owned by the
|
|
9
|
+
* {@link PhysicsSystem} and recomputed on link — serialising it would tie the
|
|
10
|
+
* stream to a particular world instance.
|
|
11
|
+
*/
|
|
12
|
+
export class RigidBodySerializationAdapter extends BinaryClassSerializationAdapter {
|
|
13
|
+
|
|
14
|
+
klass = RigidBody;
|
|
15
|
+
version = 0;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* @param {BinaryBuffer} buffer
|
|
20
|
+
* @param {RigidBody} value
|
|
21
|
+
*/
|
|
22
|
+
serialize(buffer, value) {
|
|
23
|
+
buffer.writeUint8(value.kind);
|
|
24
|
+
|
|
25
|
+
buffer.writeFloat64(value.linearVelocity.x);
|
|
26
|
+
buffer.writeFloat64(value.linearVelocity.y);
|
|
27
|
+
buffer.writeFloat64(value.linearVelocity.z);
|
|
28
|
+
|
|
29
|
+
buffer.writeFloat64(value.angularVelocity.x);
|
|
30
|
+
buffer.writeFloat64(value.angularVelocity.y);
|
|
31
|
+
buffer.writeFloat64(value.angularVelocity.z);
|
|
32
|
+
|
|
33
|
+
buffer.writeFloat64(value.mass);
|
|
34
|
+
|
|
35
|
+
buffer.writeFloat64(value.inverseInertiaLocal.x);
|
|
36
|
+
buffer.writeFloat64(value.inverseInertiaLocal.y);
|
|
37
|
+
buffer.writeFloat64(value.inverseInertiaLocal.z);
|
|
38
|
+
|
|
39
|
+
buffer.writeFloat64(value.linearDamping);
|
|
40
|
+
buffer.writeFloat64(value.angularDamping);
|
|
41
|
+
buffer.writeFloat64(value.gravityScale);
|
|
42
|
+
|
|
43
|
+
buffer.writeUint32(value.layer >>> 0);
|
|
44
|
+
buffer.writeUint32(value.mask >>> 0);
|
|
45
|
+
buffer.writeUint32(value.flags >>> 0);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
* @param {BinaryBuffer} buffer
|
|
51
|
+
* @param {RigidBody} value
|
|
52
|
+
*/
|
|
53
|
+
deserialize(buffer, value) {
|
|
54
|
+
value.kind = buffer.readUint8();
|
|
55
|
+
|
|
56
|
+
const lvx = buffer.readFloat64();
|
|
57
|
+
const lvy = buffer.readFloat64();
|
|
58
|
+
const lvz = buffer.readFloat64();
|
|
59
|
+
value.linearVelocity.set(lvx, lvy, lvz);
|
|
60
|
+
|
|
61
|
+
const avx = buffer.readFloat64();
|
|
62
|
+
const avy = buffer.readFloat64();
|
|
63
|
+
const avz = buffer.readFloat64();
|
|
64
|
+
value.angularVelocity.set(avx, avy, avz);
|
|
65
|
+
|
|
66
|
+
value.mass = buffer.readFloat64();
|
|
67
|
+
|
|
68
|
+
const iix = buffer.readFloat64();
|
|
69
|
+
const iiy = buffer.readFloat64();
|
|
70
|
+
const iiz = buffer.readFloat64();
|
|
71
|
+
value.inverseInertiaLocal.set(iix, iiy, iiz);
|
|
72
|
+
|
|
73
|
+
value.linearDamping = buffer.readFloat64();
|
|
74
|
+
value.angularDamping = buffer.readFloat64();
|
|
75
|
+
value.gravityScale = buffer.readFloat64();
|
|
76
|
+
|
|
77
|
+
value.layer = buffer.readUint32();
|
|
78
|
+
value.mask = buffer.readUint32();
|
|
79
|
+
value.flags = buffer.readUint32();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sleep state of a {@link RigidBody }. Owned by the {@link PhysicsSystem }; user code
|
|
3
|
+
* must not write this field directly — use {@link PhysicsSystemwake } /
|
|
4
|
+
* {@link PhysicsSystemsleep }.
|
|
5
|
+
*/
|
|
6
|
+
export type SleepState = number;
|
|
7
|
+
export namespace SleepState {
|
|
8
|
+
let Awake: number;
|
|
9
|
+
let Sleeping: number;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=SleepState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SleepState.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/ecs/SleepState.js"],"names":[],"mappings":";;;;;yBAMU,MAAM"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sleep state of a {@link RigidBody}. Owned by the {@link PhysicsSystem}; user code
|
|
3
|
+
* must not write this field directly — use {@link PhysicsSystem#wake} /
|
|
4
|
+
* {@link PhysicsSystem#sleep}.
|
|
5
|
+
*
|
|
6
|
+
* @readonly
|
|
7
|
+
* @enum {number}
|
|
8
|
+
*/
|
|
9
|
+
export const SleepState = {
|
|
10
|
+
Awake: 0,
|
|
11
|
+
Sleeping: 1,
|
|
12
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event kinds emitted by the manifold diff pass.
|
|
3
|
+
*/
|
|
4
|
+
export type ContactEventKind = number;
|
|
5
|
+
export namespace ContactEventKind {
|
|
6
|
+
let Begin: number;
|
|
7
|
+
let Stay: number;
|
|
8
|
+
let End: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Append-only buffer of contact events produced during one fixedUpdate, ready
|
|
12
|
+
* to be dispatched (and then cleared) at end-of-step.
|
|
13
|
+
*
|
|
14
|
+
* Storage is flat Uint32Array — keeping the metadata side allocation-free; the
|
|
15
|
+
* actual contact payload (normal, depth, world point) is read on demand from
|
|
16
|
+
* the {@link ManifoldStore} by the dispatch code.
|
|
17
|
+
*
|
|
18
|
+
* @author Alex Goldring
|
|
19
|
+
* @copyright Company Named Limited (c) 2026
|
|
20
|
+
*/
|
|
21
|
+
export class ContactEventBuffer {
|
|
22
|
+
/**
|
|
23
|
+
* @param {number} [initial_capacity] events
|
|
24
|
+
*/
|
|
25
|
+
constructor(initial_capacity?: number);
|
|
26
|
+
__capacity: number;
|
|
27
|
+
__count: number;
|
|
28
|
+
__data: Int32Array;
|
|
29
|
+
/**
|
|
30
|
+
* @returns {number}
|
|
31
|
+
*/
|
|
32
|
+
get count(): number;
|
|
33
|
+
clear(): void;
|
|
34
|
+
/**
|
|
35
|
+
* @param {ContactEventKind|number} kind
|
|
36
|
+
* @param {number} entityA
|
|
37
|
+
* @param {number} entityB
|
|
38
|
+
* @param {number} slot manifold slot id
|
|
39
|
+
*/
|
|
40
|
+
push(kind: ContactEventKind | number, entityA: number, entityB: number, slot: number): void;
|
|
41
|
+
kind_at(i: any): number;
|
|
42
|
+
entityA_at(i: any): number;
|
|
43
|
+
entityB_at(i: any): number;
|
|
44
|
+
slot_at(i: any): number;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=ContactEventBuffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContactEventBuffer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/events/ContactEventBuffer.js"],"names":[],"mappings":";;;+BAGU,MAAM;;;;;;AAoBhB;;;;;;;;;;GAUG;AACH;IACI;;OAEG;IACH,+BAFW,MAAM,EAOhB;IAJG,mBAA+C;IAC/C,gBAAgB;IAEhB,mBAA4D;IAGhE;;OAEG;IACH,oBAEC;IAED,cAEC;IAED;;;;;OAKG;IACH,WALW,gBAAgB,GAAC,MAAM,WACvB,MAAM,WACN,MAAM,QACN,MAAM,QAgBhB;IAED,wBAAoD;IACpD,2BAA2D;IAC3D,2BAA2D;IAC3D,wBAAwD;CAC3D"}
|