@woosh/meep-engine 3.44.0 → 3.46.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/build/bundle-worker-terrain.js +1 -1
- package/package.json +1 -1
- package/src/core/assert.d.ts.map +1 -1
- package/src/core/assert.js +5 -1
- package/src/core/binary/hash/XXH128Hash.d.ts +1 -37
- package/src/core/binary/hash/XXH128Hash.d.ts.map +1 -1
- package/src/core/binary/hash/XXH128Hash.js +4 -55
- package/src/core/binary/hash/XXH3_SECRET.d.ts +1 -12
- package/src/core/binary/hash/XXH3_SECRET.d.ts.map +1 -1
- package/src/core/binary/hash/XXH3_SECRET.js +4 -25
- package/src/core/binary/hash/crc32.d.ts +1 -15
- package/src/core/binary/hash/crc32.d.ts.map +1 -1
- package/src/core/binary/hash/crc32.js +4 -96
- package/src/core/binary/hash/xxh3_128.d.ts +1 -9
- package/src/core/binary/hash/xxh3_128.d.ts.map +1 -1
- package/src/core/binary/hash/xxh3_128.js +4 -341
- package/src/core/binary/hash/xxh3_64.d.ts +1 -8
- package/src/core/binary/hash/xxh3_64.d.ts.map +1 -1
- package/src/core/binary/hash/xxh3_64.js +4 -241
- package/src/core/binary/hash/xxh3_common.d.ts +1 -223
- package/src/core/binary/hash/xxh3_common.d.ts.map +1 -1
- package/src/core/binary/hash/xxh3_common.js +90 -476
- package/src/core/collection/array/array_sort_insertion_ascending.d.ts +19 -0
- package/src/core/collection/array/array_sort_insertion_ascending.d.ts.map +1 -0
- package/src/core/collection/array/array_sort_insertion_ascending.js +31 -0
- package/src/core/collection/array/combine_hash.d.ts +6 -0
- package/src/core/collection/array/combine_hash.d.ts.map +1 -1
- package/src/core/collection/array/combine_hash.js +6 -0
- package/src/core/function/FunctionCompiler.js +2 -2
- package/src/core/geom/3d/aabb/aabb3_array_round_outward_f32.d.ts +27 -0
- package/src/core/geom/3d/aabb/aabb3_array_round_outward_f32.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_array_round_outward_f32.js +39 -0
- package/src/core/geom/3d/aabb/aabb3_from_v3_array.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_from_v3_array.js +4 -1
- package/src/core/geom/3d/aabb/aabb3_transform_oriented.d.ts +2 -2
- package/src/core/geom/3d/aabb/aabb3_transform_oriented.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_transform_oriented.js +1 -1
- package/src/core/geom/3d/mat4/m4_multiply.d.ts +3 -0
- package/src/core/geom/3d/mat4/m4_multiply.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/m4_multiply.js +3 -0
- package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts +30 -0
- package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_multiply_f64.js +106 -0
- package/src/core/geom/3d/pose/pose3_apply_inverse_point_array.d.ts +21 -0
- package/src/core/geom/3d/pose/pose3_apply_inverse_point_array.d.ts.map +1 -0
- package/src/core/geom/3d/pose/pose3_apply_inverse_point_array.js +36 -0
- package/src/core/geom/3d/pose/pose3_apply_point_array.d.ts +25 -0
- package/src/core/geom/3d/pose/pose3_apply_point_array.d.ts.map +1 -0
- package/src/core/geom/3d/pose/pose3_apply_point_array.js +40 -0
- package/src/core/geom/3d/pose/pose3_compose_array.d.ts +28 -0
- package/src/core/geom/3d/pose/pose3_compose_array.d.ts.map +1 -0
- package/src/core/geom/3d/pose/pose3_compose_array.js +41 -0
- package/src/core/geom/3d/pose/pose3_to_local_array.d.ts +29 -0
- package/src/core/geom/3d/pose/pose3_to_local_array.d.ts.map +1 -0
- package/src/core/geom/3d/pose/pose3_to_local_array.js +42 -0
- package/src/core/geom/3d/quaternion/quat3_clamp_angle_array.d.ts +28 -0
- package/src/core/geom/3d/quaternion/quat3_clamp_angle_array.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/quat3_clamp_angle_array.js +66 -0
- package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_left_array.d.ts +22 -0
- package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_left_array.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_left_array.js +30 -0
- package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_right_array.d.ts +23 -0
- package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_right_array.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_right_array.js +31 -0
- package/src/core/geom/3d/triangle/tri3_compute_normal_area_weighted_array.d.ts +26 -0
- package/src/core/geom/3d/triangle/tri3_compute_normal_area_weighted_array.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_compute_normal_area_weighted_array.js +46 -0
- package/src/core/geom/ConicRay.js +2 -2
- package/src/core/geom/Vector4.d.ts.map +1 -1
- package/src/core/geom/Vector4.js +8 -5
- package/src/core/geom/vec3/v3_distance_array.d.ts +11 -0
- package/src/core/geom/vec3/v3_distance_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_distance_array.js +19 -0
- package/src/core/geom/vec3/v3_normalize_array_checked.d.ts +23 -0
- package/src/core/geom/vec3/v3_normalize_array_checked.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_normalize_array_checked.js +49 -0
- package/src/core/geom/vec3/v3_reject_array.d.ts +15 -0
- package/src/core/geom/vec3/v3_reject_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_reject_array.js +32 -0
- package/src/core/graph/csr/csr_build_incidence.d.ts +26 -0
- package/src/core/graph/csr/csr_build_incidence.d.ts.map +1 -0
- package/src/core/graph/csr/csr_build_incidence.js +71 -0
- package/src/core/graph/csr/csr_graph_color_greedy.d.ts +25 -0
- package/src/core/graph/csr/csr_graph_color_greedy.d.ts.map +1 -0
- package/src/core/graph/csr/csr_graph_color_greedy.js +83 -0
- package/src/core/graph/csr/csr_graph_validate_coloring.d.ts +15 -0
- package/src/core/graph/csr/csr_graph_validate_coloring.d.ts.map +1 -0
- package/src/core/graph/csr/csr_graph_validate_coloring.js +33 -0
- package/src/core/math/hash/XXH128Hash.d.ts +38 -0
- package/src/core/math/hash/XXH128Hash.d.ts.map +1 -0
- package/src/core/math/hash/XXH128Hash.js +55 -0
- package/src/core/math/hash/XXH3_SECRET.d.ts +13 -0
- package/src/core/math/hash/XXH3_SECRET.d.ts.map +1 -0
- package/src/core/math/hash/XXH3_SECRET.js +25 -0
- package/src/core/math/hash/crc32.d.ts +16 -0
- package/src/core/math/hash/crc32.d.ts.map +1 -0
- package/src/core/math/hash/crc32.js +96 -0
- package/src/core/math/hash/xxh3_128.d.ts +10 -0
- package/src/core/math/hash/xxh3_128.d.ts.map +1 -0
- package/src/core/math/hash/xxh3_128.js +341 -0
- package/src/core/math/hash/xxh3_64.d.ts +9 -0
- package/src/core/math/hash/xxh3_64.d.ts.map +1 -0
- package/src/core/math/hash/xxh3_64.js +241 -0
- package/src/core/math/hash/xxh3_common.d.ts +224 -0
- package/src/core/math/hash/xxh3_common.d.ts.map +1 -0
- package/src/core/math/hash/xxh3_common.js +476 -0
- package/src/core/math/linalg/matrix_symmetric_3x3_solve_ldlt.d.ts +26 -0
- package/src/core/math/linalg/matrix_symmetric_3x3_solve_ldlt.d.ts.map +1 -0
- package/src/core/math/linalg/matrix_symmetric_3x3_solve_ldlt.js +71 -0
- package/src/core/math/lookup/ParameterLookupTable.js +2 -2
- package/src/core/math/max2_exact.d.ts +15 -0
- package/src/core/math/max2_exact.d.ts.map +1 -0
- package/src/core/math/max2_exact.js +30 -0
- package/src/core/math/min2_exact.d.ts +20 -0
- package/src/core/math/min2_exact.d.ts.map +1 -0
- package/src/core/math/min2_exact.js +35 -0
- package/src/core/model/node-graph/node/NodeInstancePortReference.js +2 -2
- package/src/core/model/reactive/model/ReactiveBinaryExpression.js +2 -2
- package/src/core/model/reactive/model/terminal/ReactiveReference.js +2 -2
- package/src/engine/asset/AssetDescription.js +2 -2
- package/src/engine/ecs/animation/Animation.js +2 -2
- package/src/engine/ecs/animation/AnimationClip.d.ts.map +1 -1
- package/src/engine/ecs/animation/AnimationClip.js +7 -5
- package/src/engine/ecs/gui/GUIElement.d.ts.map +1 -1
- package/src/engine/ecs/gui/GUIElement.js +7 -5
- package/src/engine/ecs/gui/hud/HeadsUpDisplay.js +2 -2
- package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
- package/src/engine/ecs/gui/position/ViewportPosition.js +11 -7
- package/src/engine/ecs/ik/IKGoalSystem.d.ts.map +1 -1
- package/src/engine/ecs/ik/IKGoalSystem.js +3 -19
- package/src/engine/ecs/parent/parent_entity_model_of.d.ts +17 -0
- package/src/engine/ecs/parent/parent_entity_model_of.d.ts.map +1 -0
- package/src/engine/ecs/parent/parent_entity_model_of.js +26 -0
- package/src/engine/ecs/transform/Transform64.d.ts +1 -1
- package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
- package/src/engine/ecs/transform/Transform64.js +5 -4
- package/src/engine/ecs/transform/t64_read_pose_array.d.ts +15 -0
- package/src/engine/ecs/transform/t64_read_pose_array.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_read_pose_array.js +24 -0
- package/src/engine/graphics/ecs/animation/animator/AnimationClip.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/animator/AnimationClip.js +8 -5
- package/src/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +2 -2
- package/src/engine/graphics/ecs/animation/animator/AnimationNotification.js +2 -2
- package/src/engine/graphics/ecs/animation/animator/AnimationNotificationDefinition.js +2 -2
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.js +2 -2
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationStateDefinition.js +2 -2
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js +8 -5
- package/src/engine/graphics/ecs/decal/v2/Decal.d.ts.map +1 -1
- package/src/engine/graphics/ecs/decal/v2/Decal.js +9 -8
- package/src/engine/graphics/geometry/geometry_construct_triangle_normal_area_weighted.d.ts +2 -0
- package/src/engine/graphics/geometry/geometry_construct_triangle_normal_area_weighted.d.ts.map +1 -1
- package/src/engine/graphics/geometry/geometry_construct_triangle_normal_area_weighted.js +10 -21
- package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.js +9 -6
- package/src/engine/graphics3/AnimationGraphSystem.d.ts +5 -0
- package/src/engine/graphics3/AnimationGraphSystem.d.ts.map +1 -1
- package/src/engine/graphics3/AnimationGraphSystem.js +48 -2
- package/src/engine/graphics3/AnimationSystem.d.ts +5 -0
- package/src/engine/graphics3/AnimationSystem.d.ts.map +1 -1
- package/src/engine/graphics3/AnimationSystem.js +47 -2
- package/src/engine/graphics3/ParticipatingMedia.js +204 -204
- package/src/engine/graphics3/animation/AnimationClips.d.ts +5 -0
- package/src/engine/graphics3/animation/AnimationClips.d.ts.map +1 -1
- package/src/engine/graphics3/animation/AnimationClips.js +5 -0
- package/src/engine/graphics3/register_clips.d.ts +29 -0
- package/src/engine/graphics3/register_clips.d.ts.map +1 -1
- package/src/engine/graphics3/register_clips.js +52 -0
- package/src/engine/grid/obstacle/GridObstacle.js +2 -2
- package/src/engine/intelligence/behavior/selector/WeightedElement.js +2 -2
- package/src/engine/interpolation/Interpolated.js +2 -2
- package/src/engine/physics/broadphase/compute_fat_world_aabb.d.ts +9 -0
- package/src/engine/physics/broadphase/compute_fat_world_aabb.d.ts.map +1 -1
- package/src/engine/physics/broadphase/compute_fat_world_aabb.js +3 -1
- package/src/engine/physics/cloth/PLAN.md +10 -8
- package/src/engine/physics/cloth/build/cloth_bind_in_frame.d.ts +22 -0
- package/src/engine/physics/cloth/build/cloth_bind_in_frame.d.ts.map +1 -1
- package/src/engine/physics/cloth/build/cloth_bind_in_frame.js +51 -19
- package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts.map +1 -1
- package/src/engine/physics/cloth/build/cloth_proxy_from_joints.js +16 -2
- package/src/engine/physics/cloth/build/cloth_proxy_from_mesh.d.ts.map +1 -1
- package/src/engine/physics/cloth/build/cloth_proxy_from_mesh.js +19 -24
- package/src/engine/physics/cloth/collider/ClothColliderIndex.d.ts +7 -0
- package/src/engine/physics/cloth/collider/ClothColliderIndex.d.ts.map +1 -1
- package/src/engine/physics/cloth/collider/ClothColliderIndex.js +85 -67
- package/src/engine/physics/cloth/collider/cloth_collider_bounds.d.ts.map +1 -1
- package/src/engine/physics/cloth/collider/cloth_collider_bounds.js +19 -101
- package/src/engine/physics/cloth/collider/cloth_collider_pack.d.ts +2 -5
- package/src/engine/physics/cloth/collider/cloth_collider_pack.d.ts.map +1 -1
- package/src/engine/physics/cloth/collider/cloth_collider_pack.js +7 -15
- package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts.map +1 -1
- package/src/engine/physics/cloth/collider/cloth_collider_sdf.js +16 -61
- package/src/engine/physics/cloth/ecs/Cloth.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/Cloth.js +7 -5
- package/src/engine/physics/cloth/ecs/ClothCollider.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothCollider.js +7 -5
- package/src/engine/physics/cloth/ecs/ClothColliderFlags.d.ts +0 -1
- package/src/engine/physics/cloth/ecs/ClothColliderFlags.js +6 -19
- package/src/engine/physics/cloth/ecs/ClothColliderSystem.d.ts +1 -2
- package/src/engine/physics/cloth/ecs/ClothColliderSystem.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothColliderSystem.js +3 -12
- package/src/engine/physics/cloth/ecs/ClothDynamics.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothDynamics.js +20 -11
- package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothWorld.js +40 -130
- package/src/engine/physics/cloth/ecs/cloth_build_rows.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_build_rows.js +17 -58
- package/src/engine/physics/cloth/ecs/cloth_dynamics_map.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_dynamics_map.js +3 -3
- package/src/engine/physics/cloth/ecs/cloth_gather_colliders.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_gather_colliders.js +44 -104
- package/src/engine/physics/cloth/ecs/cloth_geodesic.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_geodesic.js +6 -13
- package/src/engine/physics/cloth/ecs/cloth_holds.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_holds.js +15 -40
- package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.js +45 -79
- package/src/engine/physics/cloth/ecs/cloth_seed_subtree.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_seed_subtree.js +7 -27
- package/src/engine/physics/cloth/ecs/cloth_write_back.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_write_back.js +30 -62
- package/src/engine/physics/cloth/playground/cloth_playground_build.d.ts.map +1 -1
- package/src/engine/physics/cloth/playground/cloth_playground_build.js +2 -3
- package/src/engine/physics/cloth/playground/collide_main.js +2 -28
- package/src/engine/physics/cloth/playground/garment_main.js +4 -19
- package/src/engine/physics/cloth/playground/main.js +6 -48
- package/src/engine/physics/cloth/playground/rig_main.js +947 -955
- package/src/engine/physics/cloth/playground/wind_main.js +8 -7
- package/src/engine/physics/cloth/solver/ClothState.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/ClothState.js +16 -76
- package/src/engine/physics/cloth/solver/cloth_color_particles.d.ts +10 -8
- package/src/engine/physics/cloth/solver/cloth_color_particles.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_color_particles.js +30 -102
- package/src/engine/physics/cloth/solver/cloth_contact_find.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_contact_find.js +3 -2
- package/src/engine/physics/cloth/solver/cloth_hold_line.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_hold_line.js +2 -14
- package/src/engine/physics/cloth/solver/cloth_kinetic_energy.d.ts +21 -0
- package/src/engine/physics/cloth/solver/cloth_kinetic_energy.d.ts.map +1 -0
- package/src/engine/physics/cloth/solver/cloth_kinetic_energy.js +45 -0
- package/src/engine/physics/cloth/solver/cloth_particle_coupling.d.ts +32 -0
- package/src/engine/physics/cloth/solver/cloth_particle_coupling.d.ts.map +1 -0
- package/src/engine/physics/cloth/solver/cloth_particle_coupling.js +133 -0
- package/src/engine/physics/cloth/solver/cloth_particle_of_source.d.ts +16 -0
- package/src/engine/physics/cloth/solver/cloth_particle_of_source.d.ts.map +1 -0
- package/src/engine/physics/cloth/solver/cloth_particle_of_source.js +19 -0
- package/src/engine/physics/cloth/solver/cloth_self_find.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_self_find.js +6 -55
- package/src/engine/physics/cloth/solver/cloth_solve_vertex.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_solve_vertex.js +30 -65
- package/src/engine/physics/cloth/solver/cloth_step.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_step.js +6 -28
- package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_step_instance.js +2 -3
- package/src/engine/physics/cloth/solver/cloth_stretch_residual.d.ts +21 -0
- package/src/engine/physics/cloth/solver/cloth_stretch_residual.d.ts.map +1 -0
- package/src/engine/physics/cloth/solver/cloth_stretch_residual.js +54 -0
- package/src/engine/physics/cloth/solver/cloth_vertex_accumulator.d.ts +15 -0
- package/src/engine/physics/cloth/solver/cloth_vertex_accumulator.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_vertex_accumulator.js +28 -0
- package/src/engine/physics/cloth/solver/cloth_worst_tether_ratio.d.ts +30 -0
- package/src/engine/physics/cloth/solver/cloth_worst_tether_ratio.d.ts.map +1 -0
- package/src/engine/physics/cloth/solver/cloth_worst_tether_ratio.js +56 -0
- package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.js +3 -17
- package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts +2 -1
- package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts.map +1 -1
- package/src/engine/physics/cloth/wind/ClothFluidWind.js +7 -25
- package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts +3 -1
- package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts.map +1 -1
- package/src/engine/physics/cloth/wind/cloth_sample_air.js +40 -62
- package/src/engine/physics/ecs/ContactProbeSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/ContactProbeSystem.js +2 -18
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +9 -50
- package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
- package/src/engine/physics/fluid/FluidField.js +7 -5
- package/src/engine/physics/fluid/ecs/FluidComponent.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidComponent.js +19 -11
- package/src/engine/physics/fluid/ecs/fluid_sample_domain_bounds.d.ts +24 -0
- package/src/engine/physics/fluid/ecs/fluid_sample_domain_bounds.d.ts.map +1 -0
- package/src/engine/physics/fluid/ecs/fluid_sample_domain_bounds.js +42 -0
- package/src/engine/physics/fluid/ecs/fluid_sample_velocity_world_mps.d.ts +25 -0
- package/src/engine/physics/fluid/ecs/fluid_sample_velocity_world_mps.d.ts.map +1 -0
- package/src/engine/physics/fluid/ecs/fluid_sample_velocity_world_mps.js +40 -0
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +2 -2
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +2 -2
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.js +11 -7
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +11 -7
- package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/WakeFluidEffector.js +16 -9
- package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.d.ts.map +1 -1
- package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.js +40 -90
- package/src/engine/physics/narrowphase/capsule_contacts.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/capsule_contacts.js +3 -5
- package/src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.js +2 -14
- package/src/engine/physics/narrowphase/hull_sphere_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/hull_sphere_contact.js +2 -5
- package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/narrowphase_step.js +13 -32
- package/src/engine/physics/narrowphase/sphere_box_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/sphere_box_contact.js +2 -5
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitter.js +12 -7
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -1
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.js +192 -191
- package/src/engine/sound/simulation/core/AcousticMedium.js +2 -2
- package/src/engine/sound/simulation/definition/AcousticDirectivity.js +2 -2
- package/src/engine/sound/simulation/definition/AcousticMaterial.d.ts.map +1 -1
- package/src/engine/sound/simulation/definition/AcousticMaterial.js +11 -7
- package/src/engine/sound/sopra/definition/BusDefinition.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/BusDefinition.js +5 -4
- package/src/engine/sound/sopra/definition/DuckingRule.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/DuckingRule.js +7 -5
- package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/EventDescription.js +23 -13
- package/src/engine/sound/sopra/definition/MixerSnapshot.js +2 -2
- package/src/engine/sound/sopra/definition/ParameterDefinition.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/ParameterDefinition.js +7 -5
- package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.js +2 -2
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.js +4 -3
- package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.js +2 -2
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.js +3 -3
- package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SampleAudioClip.js +16 -9
- package/src/engine/sound/sopra/definition/clip/SilenceAudioClip.js +2 -2
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts +1 -1
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.js +2 -2
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.js +7 -5
- package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/EqEffect.js +8 -5
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +2 -2
- package/src/engine/sound/sopra/legacy/SoundEmitter.d.ts.map +1 -1
- package/src/engine/sound/sopra/legacy/SoundEmitter.js +357 -352
- package/src/engine/sound/sopra/legacy/SoundTrack.d.ts.map +1 -1
- package/src/engine/sound/sopra/legacy/SoundTrack.js +281 -278
- package/src/format/image/png/PNGReader.js +644 -644
- package/src/format/image/png/crc32.d.ts +1 -1
- package/src/format/image/png/crc32.js +7 -8
- package/src/format/texture/basis/transcode/etc1s_to_astc.d.ts.map +1 -1
- package/src/format/texture/basis/transcode/etc1s_to_astc.js +2 -1
- package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.js +2 -2
- package/src/shade/descriptor/binding/BindGroupLayoutEntry.d.ts.map +1 -1
- package/src/shade/descriptor/binding/BindGroupLayoutEntry.js +12 -8
- package/src/shade/descriptor/binding/StorageTextureBindingLayout.js +2 -2
- package/src/shade/descriptor/binding/TextureBindingLayout.js +2 -2
- package/src/shade/descriptor/blend/BlendComponent.js +2 -2
- package/src/shade/descriptor/pipeline/PipelineDescriptorBase.js +2 -2
- package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.js +2 -2
- package/src/shade/descriptor/pipeline/ProgrammableStage.js +2 -2
- package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js +2 -2
- package/src/shade/descriptor/pipeline/render/ColorTargetState.js +2 -2
- package/src/shade/descriptor/pipeline/render/FragmentState.js +2 -2
- package/src/shade/descriptor/pipeline/render/PrimitiveState.js +2 -2
- package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.d.ts.map +1 -1
- package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.js +8 -5
- package/src/shade/descriptor/pipeline/render/VertexAttribute.js +2 -2
- package/src/shade/descriptor/texture/SamplerDescriptor.d.ts.map +1 -1
- package/src/shade/descriptor/texture/SamplerDescriptor.js +20 -12
- package/src/shade/descriptor/texture/TextureDescriptor.d.ts.map +1 -1
- package/src/shade/descriptor/texture/TextureDescriptor.js +11 -7
- package/src/shade/device/graph/BufferResourceDescriptor.d.ts.map +1 -1
- package/src/shade/device/graph/BufferResourceDescriptor.js +196 -193
- package/src/shade/device/graph/TextureResourceDescriptor.d.ts.map +1 -1
- package/src/shade/device/graph/TextureResourceDescriptor.js +178 -173
- package/src/shade/device/timing/profile/sgpt_read_header.js +1 -1
- package/src/shade/device/timing/profile/sgpt_read_records.js +1 -1
- package/src/shade/device/timing/profile/sgpt_write_header.js +1 -1
- package/src/shade/device/timing/profile/sgpt_write_record.js +1 -1
- package/src/shade/playground/image_decode_bench/main.js +2 -1
- package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.js +2 -1
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts.map +1 -1
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.js +2 -1
- package/src/shade/playground/ssr_variance/statistics.d.ts.map +1 -1
- package/src/shade/playground/ssr_variance/statistics.js +2 -1
- package/src/shade/playground/texture_encode/main.d.ts.map +1 -1
- package/src/shade/playground/texture_encode/main.js +2 -1
- package/src/shade/playground/volumetrics_froxel/measure.d.ts.map +1 -1
- package/src/shade/playground/volumetrics_froxel/measure.js +2 -1
- package/src/shade/renderer/binding/BufferBinding.js +2 -2
- package/src/shade/renderer/buffer/table/gpu_database_check_links.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/gpu_database_check_links.js +2 -1
- package/src/shade/renderer/camera/Camera.js +2 -2
- package/src/shade/renderer/geometry/Attribute.js +2 -2
- package/src/shade/renderer/geometry/Geometry.js +2 -2
- package/src/shade/renderer/geometry/geometry_deduplicate_vertices.js +2 -2
- package/src/shade/renderer/geometry/meshlet/MeshletBatch.js +2 -2
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_group_step.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_group_step.js +3 -2
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_leaf_frontier.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_leaf_frontier.js +2 -1
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_partition_into_groups.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_partition_into_groups.js +2 -1
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_run_round.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_run_round.js +2 -1
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_try_repack.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_try_repack.js +3 -2
- package/src/shade/renderer/geometry/virtual/build/partition/vgeo_graph_components.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/partition/vgeo_graph_components.js +2 -1
- package/src/shade/renderer/geometry/virtual/build/partition/vgeo_split_face_set_packed.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/partition/vgeo_split_face_set_packed.js +2 -1
- package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_asset_id.js +13 -13
- package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_directory_block_checksum.js +41 -41
- package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_frame_checksum.js +41 -41
- package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_header_checksum.js +25 -25
- package/src/shade/renderer/geometry/virtual/format/vgeo_write_container.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/vgeo_write_container.js +3 -2
- package/src/shade/renderer/material/StandardShadeMaterial.d.ts.map +1 -1
- package/src/shade/renderer/material/StandardShadeMaterial.js +13 -8
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_extract.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_extract.js +3 -2
- package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.js +14 -5
- package/src/shade/renderer/scene/optimization/sampler2d_from_image_bitmap.js +1 -1
- package/src/shade/renderer/shader/type/WGSLStructField.js +2 -2
- package/src/shade/renderer/shader/type/WebGPUArray.js +2 -2
- package/src/shade/renderer/shader/type/WebGPUStruct.d.ts.map +1 -1
- package/src/shade/renderer/shader/type/WebGPUStruct.js +9 -6
- package/src/shade/renderer/texture/ShadeTexture.d.ts.map +1 -1
- package/src/shade/renderer/texture/ShadeTexture.js +17 -10
- package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +2 -2
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +4 -4
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +6 -6
- package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/GPUWaterParticles.js +46 -55
- package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts +3 -3
- package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.js +14 -4
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts +10 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.js +82 -40
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts +4 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.js +8 -4
- package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts +98 -86
- package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/shader_water_particles.js +440 -298
- package/src/view/common/HTMLElementCacheKey.d.ts.map +1 -1
- package/src/view/common/HTMLElementCacheKey.js +4 -3
- package/src/view/minimap/MinimapMarker.js +2 -2
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The world-space box a {@link FluidComponent}'s cells occupy, written as `[min_x, min_y, min_z, max_x,
|
|
3
|
+
* max_y, max_z]` into `out` at `out_offset`.
|
|
4
|
+
*
|
|
5
|
+
* Inside it, each velocity component is read from the simulation along its own axis; across the other
|
|
6
|
+
* two, and for the scalars, the outer half-cell shell already reads the clamped edge cell, since those
|
|
7
|
+
* live at the cell centres. The box is the cells, not the region free of clamping.
|
|
8
|
+
*
|
|
9
|
+
* `origin` is cell `(0,0,0)`'s CENTRE, so the cells run from `origin - cell_size/2` to
|
|
10
|
+
* `origin + (res - 1/2)·cell_size` on each axis. A point outside this box still gets an answer from
|
|
11
|
+
* {@link fluid_sample_velocity_world_mps} - the nearest edge's - and a consumer deciding whether a point
|
|
12
|
+
* is in the field or out in the world beyond it asks this box.
|
|
13
|
+
*
|
|
14
|
+
* Not {@link FluidComponent#getBoundingBox}: that box is the splat broad phase, deliberately one more
|
|
15
|
+
* cell wider on every side so a sub-cell effector near a face is not dropped. It answers "can a source
|
|
16
|
+
* here write into the field", this answers "does the field describe this point".
|
|
17
|
+
*
|
|
18
|
+
* @param {Float32Array|Float64Array|number[]} out
|
|
19
|
+
* @param {number} out_offset
|
|
20
|
+
* @param {FluidComponent} component
|
|
21
|
+
* @returns {void}
|
|
22
|
+
*/
|
|
23
|
+
export function fluid_sample_domain_bounds(out, out_offset, component) {
|
|
24
|
+
const resolution = component.field.getResolution();
|
|
25
|
+
|
|
26
|
+
const cell_size = component.cell_size;
|
|
27
|
+
const half = cell_size * 0.5;
|
|
28
|
+
|
|
29
|
+
const origin = component.origin;
|
|
30
|
+
|
|
31
|
+
const ox = origin[0];
|
|
32
|
+
const oy = origin[1];
|
|
33
|
+
const oz = origin[2];
|
|
34
|
+
|
|
35
|
+
out[out_offset] = ox - half;
|
|
36
|
+
out[out_offset + 1] = oy - half;
|
|
37
|
+
out[out_offset + 2] = oz - half;
|
|
38
|
+
|
|
39
|
+
out[out_offset + 3] = ox + resolution[0] * cell_size - half;
|
|
40
|
+
out[out_offset + 4] = oy + resolution[1] * cell_size - half;
|
|
41
|
+
out[out_offset + 5] = oz + resolution[2] * cell_size - half;
|
|
42
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sample a {@link FluidComponent}'s velocity at a world-space point, in **world units per second**,
|
|
3
|
+
* into `out` at `out_offset`.
|
|
4
|
+
*
|
|
5
|
+
* {@link FluidComponent#sampleVelocityAtWorld} answers in grid cells per second and says so: it
|
|
6
|
+
* leaves the field unscaled for callers that read it as a direction-times-strength wind and want the
|
|
7
|
+
* same strength at any cell size. A caller that treats the answer as a velocity - a drag that relaxes
|
|
8
|
+
* toward it, a particle carried by it - needs it multiplied by `cell_size`, or the same wind voxelised
|
|
9
|
+
* at a quarter of the cell size blows four times as hard. This is that multiply, in one place.
|
|
10
|
+
*
|
|
11
|
+
* The point is clamped to the grid exactly as the field's own sample is; see
|
|
12
|
+
* {@link fluid_sample_domain_bounds} for the box inside which it is not.
|
|
13
|
+
*
|
|
14
|
+
* The field must be built.
|
|
15
|
+
*
|
|
16
|
+
* @param {Float32Array|Float64Array|number[]} out
|
|
17
|
+
* @param {number} out_offset
|
|
18
|
+
* @param {FluidComponent} component
|
|
19
|
+
* @param {number} x world
|
|
20
|
+
* @param {number} y world
|
|
21
|
+
* @param {number} z world
|
|
22
|
+
* @returns {void}
|
|
23
|
+
*/
|
|
24
|
+
export function fluid_sample_velocity_world_mps(out: Float32Array | Float64Array | number[], out_offset: number, component: FluidComponent, x: number, y: number, z: number): void;
|
|
25
|
+
//# sourceMappingURL=fluid_sample_velocity_world_mps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fluid_sample_velocity_world_mps.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/ecs/fluid_sample_velocity_world_mps.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qDARW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,cAClC,MAAM,gCAEN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAUhB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scratch for the field's own answer, in cells per second. Module-level: the
|
|
3
|
+
* sample allocates nothing.
|
|
4
|
+
* @type {Float64Array}
|
|
5
|
+
* @private
|
|
6
|
+
*/
|
|
7
|
+
const CELLS_PER_SECOND = new Float64Array(3);
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Sample a {@link FluidComponent}'s velocity at a world-space point, in **world units per second**,
|
|
11
|
+
* into `out` at `out_offset`.
|
|
12
|
+
*
|
|
13
|
+
* {@link FluidComponent#sampleVelocityAtWorld} answers in grid cells per second and says so: it
|
|
14
|
+
* leaves the field unscaled for callers that read it as a direction-times-strength wind and want the
|
|
15
|
+
* same strength at any cell size. A caller that treats the answer as a velocity - a drag that relaxes
|
|
16
|
+
* toward it, a particle carried by it - needs it multiplied by `cell_size`, or the same wind voxelised
|
|
17
|
+
* at a quarter of the cell size blows four times as hard. This is that multiply, in one place.
|
|
18
|
+
*
|
|
19
|
+
* The point is clamped to the grid exactly as the field's own sample is; see
|
|
20
|
+
* {@link fluid_sample_domain_bounds} for the box inside which it is not.
|
|
21
|
+
*
|
|
22
|
+
* The field must be built.
|
|
23
|
+
*
|
|
24
|
+
* @param {Float32Array|Float64Array|number[]} out
|
|
25
|
+
* @param {number} out_offset
|
|
26
|
+
* @param {FluidComponent} component
|
|
27
|
+
* @param {number} x world
|
|
28
|
+
* @param {number} y world
|
|
29
|
+
* @param {number} z world
|
|
30
|
+
* @returns {void}
|
|
31
|
+
*/
|
|
32
|
+
export function fluid_sample_velocity_world_mps(out, out_offset, component, x, y, z) {
|
|
33
|
+
component.sampleVelocityAtWorld(CELLS_PER_SECOND, x, y, z);
|
|
34
|
+
|
|
35
|
+
const cell_size = component.cell_size;
|
|
36
|
+
|
|
37
|
+
out[out_offset] = CELLS_PER_SECOND[0] * cell_size;
|
|
38
|
+
out[out_offset + 1] = CELLS_PER_SECOND[1] * cell_size;
|
|
39
|
+
out[out_offset + 2] = CELLS_PER_SECOND[2] * cell_size;
|
|
40
|
+
}
|
|
@@ -53,8 +53,8 @@ export class AbstractFluidEffector {
|
|
|
53
53
|
equals(other: AbstractFluidEffector): boolean;
|
|
54
54
|
/**
|
|
55
55
|
* Fast hash. The base implementation returns a constant — concrete effectors
|
|
56
|
-
* override to hash their own state. Should stay cheap (a few `
|
|
57
|
-
* over scalar fields).
|
|
56
|
+
* override to hash their own state. Should stay cheap (a few `hash_mix2` / `hash_mix3`
|
|
57
|
+
* calls over scalar fields).
|
|
58
58
|
* @return {number}
|
|
59
59
|
*/
|
|
60
60
|
hash(): number;
|
|
@@ -63,8 +63,8 @@ export class AbstractFluidEffector {
|
|
|
63
63
|
|
|
64
64
|
/**
|
|
65
65
|
* Fast hash. The base implementation returns a constant — concrete effectors
|
|
66
|
-
* override to hash their own state. Should stay cheap (a few `
|
|
67
|
-
* over scalar fields).
|
|
66
|
+
* override to hash their own state. Should stay cheap (a few `hash_mix2` / `hash_mix3`
|
|
67
|
+
* calls over scalar fields).
|
|
68
68
|
* @return {number}
|
|
69
69
|
*/
|
|
70
70
|
hash() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalFluidEffector.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/effector/GlobalFluidEffector.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH;IAEI;;;;;OAKG;IACH,OAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEhB;IAElB;;;;;OAKG;IACH,MAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEjB;IAEjB;;;;;;;OAOG;IACH,MAFU,MAAM,CAEP;
|
|
1
|
+
{"version":3,"file":"GlobalFluidEffector.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/effector/GlobalFluidEffector.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH;IAEI;;;;;OAKG;IACH,OAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEhB;IAElB;;;;;OAKG;IACH,MAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEjB;IAEjB;;;;;;;OAOG;IACH,MAFU,MAAM,CAEP;CA+HZ;sCA3MqC,4BAA4B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
|
|
2
2
|
import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
|
|
3
3
|
import { AbstractFluidEffector } from "./AbstractFluidEffector.js";
|
|
4
4
|
|
|
@@ -180,12 +180,16 @@ export class GlobalFluidEffector extends AbstractFluidEffector {
|
|
|
180
180
|
* @return {number}
|
|
181
181
|
*/
|
|
182
182
|
hash() {
|
|
183
|
-
return
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
183
|
+
return hash_mix3(
|
|
184
|
+
hash_mix3(
|
|
185
|
+
hash_mix3(
|
|
186
|
+
computeHashFloat(this.force[0]),
|
|
187
|
+
computeHashFloat(this.force[1]),
|
|
188
|
+
computeHashFloat(this.force[2])
|
|
189
|
+
),
|
|
190
|
+
computeHashFloat(this.wind[0]),
|
|
191
|
+
computeHashFloat(this.wind[1])
|
|
192
|
+
),
|
|
189
193
|
computeHashFloat(this.wind[2]),
|
|
190
194
|
computeHashFloat(this.drag)
|
|
191
195
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImpulseFluidEffector.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/effector/ImpulseFluidEffector.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;GAiBG;AACH;IAEI;;;OAGG;IACH,UAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEb;IAErB;;;;;;OAMG;IACH,OAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEhB;IAElB;;;;;;OAMG;IACH,QAFU,MAAM,CAEL;
|
|
1
|
+
{"version":3,"file":"ImpulseFluidEffector.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/effector/ImpulseFluidEffector.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;GAiBG;AACH;IAEI;;;OAGG;IACH,UAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEb;IAErB;;;;;;OAMG;IACH,OAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEhB;IAElB;;;;;;OAMG;IACH,QAFU,MAAM,CAEL;CAkNd;sCAhQqC,4BAA4B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
|
|
2
2
|
import { v3_matrix4_multiply } from "../../../../core/geom/vec3/v3_matrix4_multiply.js";
|
|
3
3
|
import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
|
|
4
4
|
import { AbstractFluidEffector } from "./AbstractFluidEffector.js";
|
|
@@ -225,12 +225,16 @@ export class ImpulseFluidEffector extends AbstractFluidEffector {
|
|
|
225
225
|
* @return {number}
|
|
226
226
|
*/
|
|
227
227
|
hash() {
|
|
228
|
-
return
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
228
|
+
return hash_mix3(
|
|
229
|
+
hash_mix3(
|
|
230
|
+
hash_mix3(
|
|
231
|
+
computeHashFloat(this.position[0]),
|
|
232
|
+
computeHashFloat(this.position[1]),
|
|
233
|
+
computeHashFloat(this.position[2])
|
|
234
|
+
),
|
|
235
|
+
computeHashFloat(this.force[0]),
|
|
236
|
+
computeHashFloat(this.force[1])
|
|
237
|
+
),
|
|
234
238
|
computeHashFloat(this.force[2]),
|
|
235
239
|
computeHashFloat(this.radius)
|
|
236
240
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WakeFluidEffector.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/effector/WakeFluidEffector.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WakeFluidEffector.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/effector/WakeFluidEffector.js"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH;IAEI;;;;;OAKG;IACH,UAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEb;IAErB;;;;;;OAMG;IACH,mBAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEJ;IAE9B;;;;;OAKG;IACH,QAFU,MAAM,CAEL;IAEX;;;;;OAKG;IACH,UAFU,MAAM,CAEH;IAoBb;;;;;OAKG;IACH,oBAKC;;CAsSJ;sCAzZqC,4BAA4B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { hash_mix2 } from "../../../../core/math/hash/hash_mix2.js";
|
|
2
|
+
import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
|
|
2
3
|
import { v3_matrix4_multiply } from "../../../../core/geom/vec3/v3_matrix4_multiply.js";
|
|
3
4
|
import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
|
|
4
5
|
import { AbstractFluidEffector } from "./AbstractFluidEffector.js";
|
|
@@ -368,14 +369,20 @@ export class WakeFluidEffector extends AbstractFluidEffector {
|
|
|
368
369
|
* @return {number}
|
|
369
370
|
*/
|
|
370
371
|
hash() {
|
|
371
|
-
return
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
372
|
+
return hash_mix2(
|
|
373
|
+
hash_mix3(
|
|
374
|
+
hash_mix3(
|
|
375
|
+
hash_mix3(
|
|
376
|
+
computeHashFloat(this.position[0]),
|
|
377
|
+
computeHashFloat(this.position[1]),
|
|
378
|
+
computeHashFloat(this.position[2])
|
|
379
|
+
),
|
|
380
|
+
computeHashFloat(this.previous_position[0]),
|
|
381
|
+
computeHashFloat(this.previous_position[1])
|
|
382
|
+
),
|
|
383
|
+
computeHashFloat(this.previous_position[2]),
|
|
384
|
+
computeHashFloat(this.radius)
|
|
385
|
+
),
|
|
379
386
|
computeHashFloat(this.strength)
|
|
380
387
|
);
|
|
381
388
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame_fabrik_solve.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"frame_fabrik_solve.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.js"],"names":[],"mappings":"AAmqBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,gFAJW,MAAM,aACN,MAAM,GACJ,MAAM,CA4DlB"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { assert } from "../../../../core/assert.js";
|
|
2
|
+
import { pose3_apply_inverse_point_array } from "../../../../core/geom/3d/pose/pose3_apply_inverse_point_array.js";
|
|
3
|
+
import { pose3_apply_point_array } from "../../../../core/geom/3d/pose/pose3_apply_point_array.js";
|
|
2
4
|
import { quat3_multiply_array } from "../../../../core/geom/3d/quaternion/quat3_multiply.js";
|
|
5
|
+
import {
|
|
6
|
+
quat3_multiply_conjugate_left_array
|
|
7
|
+
} from "../../../../core/geom/3d/quaternion/quat3_multiply_conjugate_left_array.js";
|
|
8
|
+
import {
|
|
9
|
+
quat3_multiply_conjugate_right_array
|
|
10
|
+
} from "../../../../core/geom/3d/quaternion/quat3_multiply_conjugate_right_array.js";
|
|
3
11
|
import { quat3_shortest_arc } from "../../../../core/geom/3d/quaternion/quat3_shortest_arc.js";
|
|
4
12
|
import { swing_twist_clamp_array } from "../../../../core/geom/3d/quaternion/swing_twist_clamp.js";
|
|
5
13
|
import { v3_quaternion_apply_array } from "../../../../core/geom/vec3/v3_quaternion_apply.js";
|
|
@@ -235,14 +243,7 @@ function limit_rotation(problem, i) {
|
|
|
235
243
|
|
|
236
244
|
if (parent < 0) {
|
|
237
245
|
// the parent's fixed frame: R_i = above * L_i, as animated
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
turn[0] = -local[i4];
|
|
241
|
-
turn[1] = -local[i4 + 1];
|
|
242
|
-
turn[2] = -local[i4 + 2];
|
|
243
|
-
turn[3] = local[i4 + 3];
|
|
244
|
-
|
|
245
|
-
quat3_multiply_array(above, 0, problem.base_rotation, i4, turn, 0);
|
|
246
|
+
quat3_multiply_conjugate_right_array(above, 0, problem.base_rotation, i4, problem.base_local_rotation, i4);
|
|
246
247
|
} else {
|
|
247
248
|
const p4 = parent * 4;
|
|
248
249
|
|
|
@@ -253,20 +254,9 @@ function limit_rotation(problem, i) {
|
|
|
253
254
|
}
|
|
254
255
|
|
|
255
256
|
// relative = conj(basis_a) * conj(above) * R_i * basis_b
|
|
256
|
-
|
|
257
|
-
turn[1] = -above[1];
|
|
258
|
-
turn[2] = -above[2];
|
|
259
|
-
turn[3] = above[3];
|
|
260
|
-
|
|
261
|
-
quat3_multiply_array(relative, 0, turn, 0, rotation, i4);
|
|
257
|
+
quat3_multiply_conjugate_left_array(relative, 0, above, 0, rotation, i4);
|
|
262
258
|
quat3_multiply_array(relative, 0, relative, 0, basis_b, i4);
|
|
263
|
-
|
|
264
|
-
turn[0] = -basis_a[i4];
|
|
265
|
-
turn[1] = -basis_a[i4 + 1];
|
|
266
|
-
turn[2] = -basis_a[i4 + 2];
|
|
267
|
-
turn[3] = basis_a[i4 + 3];
|
|
268
|
-
|
|
269
|
-
quat3_multiply_array(relative, 0, turn, 0, relative, 0);
|
|
259
|
+
quat3_multiply_conjugate_left_array(relative, 0, basis_a, i4, relative, 0);
|
|
270
260
|
|
|
271
261
|
if (!swing_twist_clamp_array(relative, 0, relative, 0, problem.limit_lower, problem.limit_upper, i * 3)) {
|
|
272
262
|
return;
|
|
@@ -274,13 +264,7 @@ function limit_rotation(problem, i) {
|
|
|
274
264
|
|
|
275
265
|
// R_i = above * basis_a * relative * conj(basis_b)
|
|
276
266
|
quat3_multiply_array(relative, 0, basis_a, i4, relative, 0);
|
|
277
|
-
|
|
278
|
-
turn[0] = -basis_b[i4];
|
|
279
|
-
turn[1] = -basis_b[i4 + 1];
|
|
280
|
-
turn[2] = -basis_b[i4 + 2];
|
|
281
|
-
turn[3] = basis_b[i4 + 3];
|
|
282
|
-
|
|
283
|
-
quat3_multiply_array(relative, 0, relative, 0, turn, 0);
|
|
267
|
+
quat3_multiply_conjugate_right_array(relative, 0, relative, 0, basis_b, i4);
|
|
284
268
|
|
|
285
269
|
quat3_multiply_array(rotation, i4, above, 0, relative, 0);
|
|
286
270
|
}
|
|
@@ -361,17 +345,8 @@ function prepare(problem) {
|
|
|
361
345
|
const p3 = p * 3;
|
|
362
346
|
const p4 = p * 4;
|
|
363
347
|
|
|
364
|
-
//
|
|
365
|
-
|
|
366
|
-
v3[1] = base_position[i3 + 1] - base_position[p3 + 1];
|
|
367
|
-
v3[2] = base_position[i3 + 2] - base_position[p3 + 2];
|
|
368
|
-
|
|
369
|
-
turn[0] = -base_rotation[p4];
|
|
370
|
-
turn[1] = -base_rotation[p4 + 1];
|
|
371
|
-
turn[2] = -base_rotation[p4 + 2];
|
|
372
|
-
turn[3] = base_rotation[p4 + 3];
|
|
373
|
-
|
|
374
|
-
v3_quaternion_apply_array(offset, i3, v3, 0, turn, 0);
|
|
348
|
+
// the joint's position in its parent's frame
|
|
349
|
+
pose3_apply_inverse_point_array(offset, i3, base_position, p3, base_rotation, p4, base_position, i3);
|
|
375
350
|
}
|
|
376
351
|
|
|
377
352
|
// children, compressed: counted one slot up, summed into starts, filled with the start as a
|
|
@@ -465,65 +440,29 @@ function prepare(problem) {
|
|
|
465
440
|
|
|
466
441
|
problem._goal_anchor[g] = anchor;
|
|
467
442
|
|
|
443
|
+
// both in the frame of their joint as animated: conj(R_j) (point - P_j)
|
|
468
444
|
if (anchor >= 0) {
|
|
469
|
-
|
|
445
|
+
pose3_apply_inverse_point_array(
|
|
446
|
+
problem._goal_anchor_offset, g * 3,
|
|
447
|
+
base_position, anchor * 3,
|
|
448
|
+
base_rotation, anchor * 4,
|
|
449
|
+
base_position, effector * 3
|
|
450
|
+
);
|
|
470
451
|
}
|
|
471
452
|
|
|
472
453
|
const target_joint = problem.goal_target_joint[g];
|
|
473
454
|
|
|
474
455
|
if (target_joint >= 0) {
|
|
475
|
-
|
|
456
|
+
pose3_apply_inverse_point_array(
|
|
457
|
+
problem._goal_target_local, g * 3,
|
|
458
|
+
base_position, target_joint * 3,
|
|
459
|
+
base_rotation, target_joint * 4,
|
|
460
|
+
problem.goal_target, g * 3
|
|
461
|
+
);
|
|
476
462
|
}
|
|
477
463
|
}
|
|
478
464
|
}
|
|
479
465
|
|
|
480
|
-
/**
|
|
481
|
-
* `out = conj(R_j) (point - P_j)` with the frame of joint `j` as animated.
|
|
482
|
-
*
|
|
483
|
-
* @param {Float64Array} out
|
|
484
|
-
* @param {number} out_offset
|
|
485
|
-
* @param {Float64Array} point
|
|
486
|
-
* @param {number} point_offset
|
|
487
|
-
* @param {Float64Array} base_position
|
|
488
|
-
* @param {Float64Array} base_rotation
|
|
489
|
-
* @param {number} j
|
|
490
|
-
*/
|
|
491
|
-
function to_frame(out, out_offset, point, point_offset, base_position, base_rotation, j) {
|
|
492
|
-
const j3 = j * 3;
|
|
493
|
-
const j4 = j * 4;
|
|
494
|
-
|
|
495
|
-
v3[0] = point[point_offset] - base_position[j3];
|
|
496
|
-
v3[1] = point[point_offset + 1] - base_position[j3 + 1];
|
|
497
|
-
v3[2] = point[point_offset + 2] - base_position[j3 + 2];
|
|
498
|
-
|
|
499
|
-
turn[0] = -base_rotation[j4];
|
|
500
|
-
turn[1] = -base_rotation[j4 + 1];
|
|
501
|
-
turn[2] = -base_rotation[j4 + 2];
|
|
502
|
-
turn[3] = base_rotation[j4 + 3];
|
|
503
|
-
|
|
504
|
-
v3_quaternion_apply_array(out, out_offset, v3, 0, turn, 0);
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
/**
|
|
508
|
-
* `out = P_j + R_j local` with the frame of joint `j` as solved so far.
|
|
509
|
-
*
|
|
510
|
-
* @param {Float64Array} out
|
|
511
|
-
* @param {number} out_offset
|
|
512
|
-
* @param {FrameFabrikProblem} problem
|
|
513
|
-
* @param {Float64Array} local
|
|
514
|
-
* @param {number} local_offset
|
|
515
|
-
* @param {number} j
|
|
516
|
-
*/
|
|
517
|
-
function from_frame(out, out_offset, problem, local, local_offset, j) {
|
|
518
|
-
const j3 = j * 3;
|
|
519
|
-
|
|
520
|
-
v3_quaternion_apply_array(v3, 0, local, local_offset, problem.solved_rotation, j * 4);
|
|
521
|
-
|
|
522
|
-
out[out_offset] = problem.solved_position[j3] + v3[0];
|
|
523
|
-
out[out_offset + 1] = problem.solved_position[j3 + 1] + v3[1];
|
|
524
|
-
out[out_offset + 2] = problem.solved_position[j3 + 2] + v3[2];
|
|
525
|
-
}
|
|
526
|
-
|
|
527
466
|
/**
|
|
528
467
|
* This iteration's target for every effector: `lerp(carried, goal, w)`.
|
|
529
468
|
*
|
|
@@ -551,7 +490,13 @@ function load_targets(problem) {
|
|
|
551
490
|
cy = problem.base_position[e3 + 1];
|
|
552
491
|
cz = problem.base_position[e3 + 2];
|
|
553
492
|
} else {
|
|
554
|
-
|
|
493
|
+
// out of the anchor's frame as solved so far: P_j + R_j local
|
|
494
|
+
pose3_apply_point_array(
|
|
495
|
+
target, g3,
|
|
496
|
+
problem.solved_position, anchor * 3,
|
|
497
|
+
problem.solved_rotation, anchor * 4,
|
|
498
|
+
problem._goal_anchor_offset, g3
|
|
499
|
+
);
|
|
555
500
|
|
|
556
501
|
cx = target[g3];
|
|
557
502
|
cy = target[g3 + 1];
|
|
@@ -567,7 +512,12 @@ function load_targets(problem) {
|
|
|
567
512
|
gy = problem.goal_target[g3 + 1];
|
|
568
513
|
gz = problem.goal_target[g3 + 2];
|
|
569
514
|
} else {
|
|
570
|
-
|
|
515
|
+
pose3_apply_point_array(
|
|
516
|
+
target, g3,
|
|
517
|
+
problem.solved_position, target_joint * 3,
|
|
518
|
+
problem.solved_rotation, target_joint * 4,
|
|
519
|
+
problem._goal_target_local, g3
|
|
520
|
+
);
|
|
571
521
|
|
|
572
522
|
gx = target[g3];
|
|
573
523
|
gy = target[g3 + 1];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capsule_contacts.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/narrowphase/capsule_contacts.js"],"names":[],"mappings":"AAkEA;;;;;;;;;;;;;;;GAeG;AACH,2CAVW,MAAM,EAAE,GAAC,YAAY,MACrB,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,eACN,MAAM,QAMhB;AAED;;;;;;GAMG;AACH,iDAJW,MAAM,EAAE,GAAC,YAAY,WACrB,YAAY,kBACZ,MAAM,QAehB;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,4CAhBW,MAAM,EAAE,GAAC,YAAY,QACrB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,YACN,MAAM,YACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,YACN,MAAM,GACJ,OAAO,CAYnB;AAED;;;;;;;;;GASG;AACH,kDAPW,MAAM,EAAE,GAAC,YAAY,WACrB,YAAY,kBACZ,MAAM,UACN,YAAY,iBACZ,MAAM,GACJ,OAAO,CA6CnB;AAMD;;;;;GAKG;AACH,6CAHW,MAAM,EAAE,GAAC,YAAY,yNACnB,OAAO,CAYnB;AAED;;;;;;;;;GASG;AACH,mDAPW,MAAM,EAAE,GAAC,YAAY,aACrB,YAAY,oBACZ,MAAM,aACN,YAAY,oBACZ,MAAM,GACJ,OAAO,CAmEnB;AA8BD;;;;;;;;;GASG;AACH,oDAHW,MAAM,EAAE,GAAC,YAAY,yNACnB,MAAM,CAYlB;AAED;;;;;;;;;GASG;AACH,0DAPW,MAAM,EAAE,GAAC,YAAY,aACrB,YAAY,oBACZ,MAAM,aACN,YAAY,oBACZ,MAAM,GACJ,MAAM,CAsHlB;AAeD;;;;;;;;;;;;;GAaG;AACH,yCAHW,MAAM,EAAE,GAAC,YAAY,4NACnB,OAAO,CAYnB;AAsBD;;;;;;;;;GASG;AACH,+CAPW,MAAM,EAAE,GAAC,YAAY,WACrB,YAAY,kBACZ,MAAM,OACN,YAAY,cACZ,MAAM,GACJ,OAAO,
|
|
1
|
+
{"version":3,"file":"capsule_contacts.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/narrowphase/capsule_contacts.js"],"names":[],"mappings":"AAkEA;;;;;;;;;;;;;;;GAeG;AACH,2CAVW,MAAM,EAAE,GAAC,YAAY,MACrB,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,eACN,MAAM,QAMhB;AAED;;;;;;GAMG;AACH,iDAJW,MAAM,EAAE,GAAC,YAAY,WACrB,YAAY,kBACZ,MAAM,QAehB;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,4CAhBW,MAAM,EAAE,GAAC,YAAY,QACrB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,YACN,MAAM,YACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,YACN,MAAM,GACJ,OAAO,CAYnB;AAED;;;;;;;;;GASG;AACH,kDAPW,MAAM,EAAE,GAAC,YAAY,WACrB,YAAY,kBACZ,MAAM,UACN,YAAY,iBACZ,MAAM,GACJ,OAAO,CA6CnB;AAMD;;;;;GAKG;AACH,6CAHW,MAAM,EAAE,GAAC,YAAY,yNACnB,OAAO,CAYnB;AAED;;;;;;;;;GASG;AACH,mDAPW,MAAM,EAAE,GAAC,YAAY,aACrB,YAAY,oBACZ,MAAM,aACN,YAAY,oBACZ,MAAM,GACJ,OAAO,CAmEnB;AA8BD;;;;;;;;;GASG;AACH,oDAHW,MAAM,EAAE,GAAC,YAAY,yNACnB,MAAM,CAYlB;AAED;;;;;;;;;GASG;AACH,0DAPW,MAAM,EAAE,GAAC,YAAY,aACrB,YAAY,oBACZ,MAAM,aACN,YAAY,oBACZ,MAAM,GACJ,MAAM,CAsHlB;AAeD;;;;;;;;;;;;;GAaG;AACH,yCAHW,MAAM,EAAE,GAAC,YAAY,4NACnB,OAAO,CAYnB;AAsBD;;;;;;;;;GASG;AACH,+CAPW,MAAM,EAAE,GAAC,YAAY,WACrB,YAAY,kBACZ,MAAM,OACN,YAAY,cACZ,MAAM,GACJ,OAAO,CAkGnB;AAyCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,gDAtBW,YAAY,QACZ,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,YACN,MAAM,YACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,GACJ,MAAM,CAYlB;AAKD;;;;;;;;;GASG;AACH,sDAPW,YAAY,WACZ,YAAY,kBACZ,MAAM,OACN,YAAY,cACZ,MAAM,GACJ,MAAM,CA4DlB;AA7fD;;;;;;;;GAQG;AACH,6CAFU,MAAM,CAEiC;AAEjD;;;;GAIG;AACH,2CAFU,MAAM,CAE8B;AA2U9C;;;;;;;;;;GAUG;AACH,yCAFU,MAAM,CAE6B;AAE7C;;;;;GAKG;AACH,uCAFU,MAAM,CAE0B"}
|
|
@@ -4,7 +4,7 @@ import { line3_compute_segment_segment_closest_points } from "../../../core/geom
|
|
|
4
4
|
import { line3_compute_segment_closest_point_t } from "../../../core/geom/3d/line/line3_compute_segment_closest_point_t.js";
|
|
5
5
|
import { line3_compute_segment_closest_point_to_aabb3_t_array } from "../../../core/geom/3d/line/line3_compute_segment_closest_point_to_aabb3_t.js";
|
|
6
6
|
import { v3_quaternion_apply_array } from "../../../core/geom/vec3/v3_quaternion_apply.js";
|
|
7
|
-
import {
|
|
7
|
+
import { pose3_apply_inverse_point_array } from "../../../core/geom/3d/pose/pose3_apply_inverse_point_array.js";
|
|
8
8
|
import { sphere_box_contact_array } from "./sphere_box_contact.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -554,10 +554,8 @@ export function capsule_box_contact_array(out, capsule, capsule_offset, box, box
|
|
|
554
554
|
capsule_world_segment_array(scratch_seg, capsule, capsule_offset);
|
|
555
555
|
// World → box-local: subtract box centre, then rotate by conjugate of box quat.
|
|
556
556
|
const local = scratch_seg_local;
|
|
557
|
-
local
|
|
558
|
-
local
|
|
559
|
-
v3_quaternion_apply_inverse_array(local, 0, local, 0, box, rotation);
|
|
560
|
-
v3_quaternion_apply_inverse_array(local, 3, local, 3, box, rotation);
|
|
557
|
+
pose3_apply_inverse_point_array(local, 0, box, box_offset, box, rotation, scratch_seg, 0);
|
|
558
|
+
pose3_apply_inverse_point_array(local, 3, box, box_offset, box, rotation, scratch_seg, 3);
|
|
561
559
|
|
|
562
560
|
const a0lx = local[0], a0ly = local[1], a0lz = local[2];
|
|
563
561
|
const a1lx = local[3], a1ly = local[4], a1lz = local[5];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh_enumerate_triangles.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mesh_enumerate_triangles.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.js"],"names":[],"mappings":"AA0FA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,iDAXW,YAAY,UACZ,MAAM,kCAEN,MAAM,cACN,MAAM,cACN,MAAM,cACN,MAAM,cACN,MAAM,cACN,MAAM,GACJ,MAAM,CAalB;AAKD;;;;;;;;;;;GAWG;AACH,uDAPW,YAAY,UACZ,MAAM,4BAEN,YAAY,eACZ,MAAM,GACJ,MAAM,CAqElB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { COLUMN_CHILD_1, COLUMN_CHILD_2, COLUMN_USER_DATA, ELEMENT_WORD_COUNT, NULL_NODE } from "../../../../core/bvh2/bvh3/BVH.js";
|
|
2
|
+
import { array_sort_insertion_ascending } from "../../../../core/collection/array/array_sort_insertion_ascending.js";
|
|
2
3
|
import { TRIANGLE_FEATURE_ID_OFFSET, TRIANGLE_FLOAT_STRIDE } from "./triangle_buffer_layout.js";
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -359,18 +360,5 @@ function sort_found_triangles(count, max_value) {
|
|
|
359
360
|
return;
|
|
360
361
|
}
|
|
361
362
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
for (let i = 1; i < count; i++) {
|
|
365
|
-
const v = a[i];
|
|
366
|
-
|
|
367
|
-
let j = i - 1;
|
|
368
|
-
|
|
369
|
-
while (j >= 0 && a[j] > v) {
|
|
370
|
-
a[j + 1] = a[j];
|
|
371
|
-
j--;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
a[j + 1] = v;
|
|
375
|
-
}
|
|
363
|
+
array_sort_insertion_ascending(found_triangles, 0, count);
|
|
376
364
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hull_sphere_contact.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/narrowphase/hull_sphere_contact.js"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,yCAfW,MAAM,EAAE,GAAC,YAAY,+BAErB,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,UACN,MAAM,GACJ,OAAO,CAkBnB;AASD;;;;;;;;;;;;;GAaG;AACH,+CARW,MAAM,EAAE,GAAC,YAAY,iCAErB,YAAY,eACZ,MAAM,UACN,YAAY,iBACZ,MAAM,GACJ,OAAO,
|
|
1
|
+
{"version":3,"file":"hull_sphere_contact.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/narrowphase/hull_sphere_contact.js"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,yCAfW,MAAM,EAAE,GAAC,YAAY,+BAErB,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,UACN,MAAM,GACJ,OAAO,CAkBnB;AASD;;;;;;;;;;;;;GAaG;AACH,+CARW,MAAM,EAAE,GAAC,YAAY,iCAErB,YAAY,eACZ,MAAM,UACN,YAAY,iBACZ,MAAM,GACJ,OAAO,CAmHnB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { v3_quaternion_apply_array } from "../../../core/geom/vec3/v3_quaternion_apply.js";
|
|
2
|
-
import {
|
|
2
|
+
import { pose3_apply_inverse_point_array } from "../../../core/geom/3d/pose/pose3_apply_inverse_point_array.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Below this distance from the hull's surface the direction from the closest surface point to the
|
|
@@ -96,10 +96,7 @@ export function hull_sphere_contact_array(out, hull, pose, pose_offset, sphere,
|
|
|
96
96
|
const sx = sphere[sphere_offset], sy = sphere[sphere_offset + 1], sz = sphere[sphere_offset + 2];
|
|
97
97
|
const radius = sphere[sphere_offset + 3];
|
|
98
98
|
|
|
99
|
-
scratch_centre
|
|
100
|
-
scratch_centre[1] = sy - py;
|
|
101
|
-
scratch_centre[2] = sz - pz;
|
|
102
|
-
v3_quaternion_apply_inverse_array(scratch_centre, 0, scratch_centre, 0, pose, rotation);
|
|
99
|
+
pose3_apply_inverse_point_array(scratch_centre, 0, pose, pose_offset, pose, rotation, sphere, sphere_offset);
|
|
103
100
|
|
|
104
101
|
const cx = scratch_centre[0];
|
|
105
102
|
const cy = scratch_centre[1];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"narrowphase_step.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/narrowphase/narrowphase_step.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"narrowphase_step.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/narrowphase/narrowphase_step.js"],"names":[],"mappings":"AAo1FA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qDAZW,YAAY,GAAC,MAAM,EAAE,iCAGrB,UAAU,MAAM,CAAC,QACjB,UAAU,MAAM,CAAC,iCAGjB,UAAU,MAAM,CAAC,QACjB,UAAU,MAAM,CAAC,GAEf,MAAM,CA2ClB;AA2JD;;;;;;;;;;;GAWG;AACH,uFALW,MAAM,MAAM;IAAC,QAAQ,WAAW;IAAC,SAAS,EAAE,WAAW,CAAA;CAAC,CAAC,CAAC,QAmMpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,uEAJW,MAAM,UACN,MAAM;IAAC,QAAQ,WAAW;IAAC,SAAS,EAAE,WAAW,CAAA;CAAC,CAAC,UACnD,MAAM;IAAC,QAAQ,WAAW;IAAC,SAAS,EAAE,WAAW,CAAA;CAAC,CAAC,QA0K7D;4BAv5GM,oCAAoC"}
|