@woosh/meep-engine 3.40.0 → 3.42.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-image-decoder.js +1 -1
- package/build/bundle-worker-terrain.js +1 -1
- package/editor/selection/editor_pick.d.ts.map +1 -1
- package/editor/selection/editor_pick.js +2 -1
- package/editor/tools/TransformToolV2.d.ts.map +1 -1
- package/editor/tools/TransformToolV2.js +7 -1
- package/editor/tools/engine/ToolEngine.d.ts.map +1 -1
- package/editor/tools/engine/ToolEngine.js +10 -0
- package/editor/tools/v2/TransformControls.d.ts.map +1 -1
- package/editor/tools/v2/TransformControls.js +7 -20
- package/editor/tools/v2/handle/gizmo_drag_plane.d.ts.map +1 -1
- package/editor/tools/v2/handle/gizmo_drag_plane.js +4 -0
- package/editor/view/ecs/EntityEditor.d.ts.map +1 -1
- package/editor/view/ecs/EntityEditor.js +3 -1
- package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphView.js +28 -12
- package/package.json +1 -1
- package/samples/engine/first-scene/index.html +4 -1
- package/samples/engine/first-scene/main.js +14 -9
- package/src/core/binary/utf8/utf8_decode.js +3 -3
- package/src/core/bvh2/binary/2/bvh32_query_user_data_ray.d.ts.map +1 -1
- package/src/core/bvh2/binary/2/bvh32_query_user_data_ray.js +112 -113
- package/src/core/bvh2/bvh3/ebvh_nodes_sort_sah_local4.js +2 -2
- package/src/core/cache/wtinylfu/benchmark/CacheWTinylfu.bench.md +14 -14
- package/src/core/collection/RingBuffer.d.ts.map +1 -1
- package/src/core/collection/RingBuffer.js +4 -0
- package/src/core/collection/array/array_contains_duplicates.d.ts.map +1 -1
- package/src/core/collection/array/array_contains_duplicates.js +2 -1
- package/src/core/collection/array/array_copy.d.ts.map +1 -1
- package/src/core/collection/array/array_copy.js +23 -0
- package/src/core/collection/array/typed/sparse_typed_array_hash.d.ts +2 -2
- package/src/core/collection/array/typed/sparse_typed_array_hash.d.ts.map +1 -1
- package/src/core/collection/array/typed/sparse_typed_array_hash.js +9 -8
- package/src/core/collection/array/typed/uint16_array_hash.d.ts +2 -2
- package/src/core/collection/array/typed/uint16_array_hash.js +4 -4
- package/src/core/collection/array/typed/uint8_array_hash.d.ts +2 -2
- package/src/core/collection/array/typed/uint8_array_hash.js +4 -4
- package/src/core/collection/array/weightedRandomFromArray.d.ts +1 -0
- package/src/core/collection/array/weightedRandomFromArray.d.ts.map +1 -1
- package/src/core/collection/array/weightedRandomFromArray.js +9 -1
- package/src/core/collection/heap/BinaryHeap.d.ts.map +1 -1
- package/src/core/collection/heap/BinaryHeap.js +4 -0
- package/src/core/collection/list/List.d.ts.map +1 -1
- package/src/core/collection/list/List.js +4 -2
- package/src/core/collection/set/ArraySet.js +1 -1
- package/src/core/collection/set/HashSet.d.ts +1 -1
- package/src/core/collection/set/HashSet.d.ts.map +1 -1
- package/src/core/collection/set/HashSet.js +4 -2
- package/src/core/debug/matchers/IsEqual.js +1 -1
- package/src/core/debug/matchers/IsIterableContaining.d.ts.map +1 -1
- package/src/core/debug/matchers/IsIterableContaining.js +61 -74
- package/src/core/events/signal/SignalBinding.js +101 -101
- package/src/core/function/extractFunctionBody.js +13 -13
- package/src/core/function/objectsEqual.d.ts.map +1 -1
- package/src/core/function/objectsEqual.js +15 -14
- package/src/core/geom/3d/frustum/frustum3_compute_closest_point.d.ts.map +1 -1
- package/src/core/geom/3d/frustum/frustum3_compute_closest_point.js +207 -172
- package/src/core/geom/3d/gjk/gjk_epa_penetration.d.ts.map +1 -1
- package/src/core/geom/3d/gjk/gjk_epa_penetration.js +5 -4
- package/src/core/geom/3d/line/line3_compute_segment_point_distance_eikonal.d.ts.map +1 -1
- package/src/core/geom/3d/line/line3_compute_segment_point_distance_eikonal.js +8 -2
- package/src/core/geom/3d/quaternion/swing_twist_clamp.d.ts +24 -0
- package/src/core/geom/3d/quaternion/swing_twist_clamp.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/swing_twist_clamp.js +62 -0
- package/src/core/geom/3d/quaternion/swing_twist_compose.d.ts +15 -0
- package/src/core/geom/3d/quaternion/swing_twist_compose.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/swing_twist_compose.js +36 -0
- package/src/core/geom/3d/quaternion/swing_twist_error.d.ts +39 -0
- package/src/core/geom/3d/quaternion/swing_twist_error.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/swing_twist_error.js +85 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection.d.ts +20 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/tri3_ray_intersection.js +182 -0
- package/src/core/geom/vec3/v3_rigid_align_paired_unit_vectors.d.ts +11 -6
- package/src/core/geom/vec3/v3_rigid_align_paired_unit_vectors.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_rigid_align_paired_unit_vectors.js +27 -13
- package/src/core/math/linalg/eigen/matrix_symmetric_4x4_eigen.d.ts +25 -0
- package/src/core/math/linalg/eigen/matrix_symmetric_4x4_eigen.d.ts.map +1 -0
- package/src/core/math/linalg/eigen/matrix_symmetric_4x4_eigen.js +166 -0
- package/src/core/math/linalg/eigen/matrix_top_eigenvector_power_iteration.d.ts +5 -3
- package/src/core/math/linalg/eigen/matrix_top_eigenvector_power_iteration.d.ts.map +1 -1
- package/src/core/math/linalg/eigen/matrix_top_eigenvector_power_iteration.js +5 -3
- package/src/core/math/noise/curl_noise_3dt.d.ts.map +1 -1
- package/src/core/math/noise/curl_noise_3dt.js +20 -10
- package/src/core/math/noise/sdnoise.d.ts +16 -5
- package/src/core/math/noise/sdnoise.d.ts.map +1 -1
- package/src/core/math/noise/sdnoise.js +43 -9
- package/src/core/math/spline/spline3_hermite_nearest_point.d.ts +16 -1
- package/src/core/math/spline/spline3_hermite_nearest_point.d.ts.map +1 -1
- package/src/core/math/spline/spline3_hermite_nearest_point.js +44 -3
- package/src/engine/Engine.d.ts.map +1 -1
- package/src/engine/Engine.js +6 -2
- package/src/engine/animation/curve/AnimationCurve.d.ts +3 -0
- package/src/engine/animation/curve/AnimationCurve.d.ts.map +1 -1
- package/src/engine/animation/curve/AnimationCurve.js +6 -1
- package/src/engine/control/first-person/FirstPersonPlayerController.d.ts +9 -0
- package/src/engine/control/first-person/FirstPersonPlayerController.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts +26 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.js +2 -0
- package/src/engine/control/first-person/abilities/AbilitySet.d.ts.map +1 -1
- package/src/engine/control/first-person/abilities/AbilitySet.js +9 -0
- package/src/engine/control/first-person/abilities/LedgeGrab.d.ts.map +1 -1
- package/src/engine/control/first-person/abilities/LedgeGrab.js +6 -0
- package/src/engine/control/first-person/abilities/Slide.d.ts.map +1 -1
- package/src/engine/control/first-person/abilities/Slide.js +1 -0
- package/src/engine/control/first-person/abilities/WallRun.d.ts +4 -1
- package/src/engine/control/first-person/abilities/WallRun.d.ts.map +1 -1
- package/src/engine/control/first-person/abilities/WallRun.js +13 -1
- package/src/engine/control/first-person/mastery/SlideInitiationTimingEvaluator.d.ts +1 -1
- package/src/engine/control/first-person/mastery/SlideInitiationTimingEvaluator.d.ts.map +1 -1
- package/src/engine/control/first-person/mastery/SlideInitiationTimingEvaluator.js +6 -5
- package/src/engine/control/first-person/mastery/StrideTimingJumpEvaluator.d.ts +3 -3
- package/src/engine/control/first-person/mastery/StrideTimingJumpEvaluator.d.ts.map +1 -1
- package/src/engine/control/first-person/mastery/StrideTimingJumpEvaluator.js +9 -8
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js +13 -4
- package/src/engine/ecs/EntityManager.d.ts +9 -1
- package/src/engine/ecs/EntityManager.d.ts.map +1 -1
- package/src/engine/ecs/EntityManager.js +44 -42
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.d.ts.map +1 -1
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.js +2 -1
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescriptionTable.d.ts.map +1 -1
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescriptionTable.js +1 -0
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts.map +1 -1
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.js +3 -0
- package/src/engine/ecs/gpu/GPUStateAuthority.d.ts +20 -0
- package/src/engine/ecs/gpu/GPUStateAuthority.d.ts.map +1 -1
- package/src/engine/ecs/gpu/GPUStateAuthority.js +21 -0
- package/src/engine/ecs/gpu/GPU_AUTHORITY_EVENT_HOLD_CHANGE.d.ts +13 -0
- package/src/engine/ecs/gpu/GPU_AUTHORITY_EVENT_HOLD_CHANGE.d.ts.map +1 -0
- package/src/engine/ecs/gpu/GPU_AUTHORITY_EVENT_HOLD_CHANGE.js +12 -0
- package/src/engine/ecs/gpu/gpu_authority_grant.d.ts +6 -0
- package/src/engine/ecs/gpu/gpu_authority_grant.d.ts.map +1 -1
- package/src/engine/ecs/gpu/gpu_authority_grant.js +7 -1
- package/src/engine/ecs/gpu/gpu_authority_held.d.ts +14 -0
- package/src/engine/ecs/gpu/gpu_authority_held.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_held.js +23 -0
- package/src/engine/ecs/gpu/gpu_authority_hold.d.ts +23 -0
- package/src/engine/ecs/gpu/gpu_authority_hold.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_hold.js +41 -0
- package/src/engine/ecs/gpu/gpu_authority_unhold.d.ts +14 -0
- package/src/engine/ecs/gpu/gpu_authority_unhold.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_unhold.js +32 -0
- package/src/engine/ecs/ik/IKGoal.d.ts +59 -0
- package/src/engine/ecs/ik/IKGoal.d.ts.map +1 -0
- package/src/engine/ecs/ik/IKGoal.js +83 -0
- package/src/engine/ecs/ik/IKGoalSystem.d.ts +75 -0
- package/src/engine/ecs/ik/IKGoalSystem.d.ts.map +1 -0
- package/src/engine/ecs/ik/IKGoalSystem.js +1456 -0
- package/src/engine/ecs/ik/PLAN.md +179 -0
- package/src/engine/ecs/parent/EntityNode.js +3 -3
- package/src/engine/ecs/speaker/VoiceSystem.d.ts +2 -2
- package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
- package/src/engine/ecs/speaker/VoiceSystem.js +4 -0
- package/src/engine/ecs/storage/BinaryBufferDeSerializer.js +5 -5
- package/src/engine/ecs/storage/BinaryBufferSerializer.d.ts.map +1 -1
- package/src/engine/ecs/storage/BinaryBufferSerializer.js +4 -5
- package/src/engine/ecs/storage/binary/BinarySerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/binary/BinarySerializationRegistry.js +3 -2
- package/src/engine/ecs/storage/binary/SERIALIZATION_COVERAGE.md +7 -3
- package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter2.js +1 -1
- package/src/engine/ecs/storage/binary/object-v2/BinaryObjectDeSerializer.d.ts.map +1 -1
- package/src/engine/ecs/storage/binary/object-v2/BinaryObjectDeSerializer.js +8 -1
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +9 -2
- package/src/engine/ecs/system/orderSystemsByDeclaredAccess.d.ts +33 -0
- package/src/engine/ecs/system/orderSystemsByDeclaredAccess.d.ts.map +1 -0
- package/src/engine/ecs/system/orderSystemsByDeclaredAccess.js +282 -0
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +5 -2
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.js +3 -0
- package/src/engine/ecs/terrain/ecs/splat/SplatMapping.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/splat/SplatMapping.js +1 -0
- package/src/engine/ecs/terrain/overlay/TerrainOverlay.js +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts.map +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTile.js +13 -1
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +1 -0
- package/src/engine/ecs/transform/T64WorldCache.js +139 -139
- package/src/engine/ecs/transform/t64_evaluate_local.d.ts +25 -0
- package/src/engine/ecs/transform/t64_evaluate_local.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_evaluate_local.js +35 -0
- package/src/engine/ecs/transform/t64_evaluate_world.d.ts +5 -3
- package/src/engine/ecs/transform/t64_evaluate_world.d.ts.map +1 -1
- package/src/engine/ecs/transform/t64_evaluate_world.js +128 -126
- package/src/engine/graphics/ecs/light/LightSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/LightSerializationAdapter.js +13 -1
- package/src/engine/graphics/ecs/light/LightSerializationUpgrader_0_1.d.ts +5 -0
- package/src/engine/graphics/ecs/light/LightSerializationUpgrader_0_1.d.ts.map +1 -0
- package/src/engine/graphics/ecs/light/LightSerializationUpgrader_0_1.js +27 -0
- package/src/engine/graphics/ecs/water/Water.d.ts +11 -0
- package/src/engine/graphics/ecs/water/Water.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/Water.js +17 -0
- package/src/engine/graphics/ecs/water/WaterSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterSerializationAdapter.js +3 -1
- package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_4_5.d.ts +9 -0
- package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_4_5.d.ts.map +1 -0
- package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_4_5.js +24 -0
- package/src/engine/graphics/ecs/water/WaterWaves.d.ts +30 -9
- package/src/engine/graphics/ecs/water/WaterWaves.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterWaves.js +41 -9
- package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.js +30 -26
- package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_0_1.d.ts +6 -0
- package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_0_1.d.ts.map +1 -0
- package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_0_1.js +22 -0
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_raycast.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_raycast.js +3 -5
- package/src/engine/graphics/texture/3d/scs3d_sample_linear3.d.ts +20 -0
- package/src/engine/graphics/texture/3d/scs3d_sample_linear3.d.ts.map +1 -1
- package/src/engine/graphics/texture/3d/scs3d_sample_linear3.js +36 -0
- package/src/engine/graphics3/AnimationGraphSystem.d.ts +2 -0
- package/src/engine/graphics3/AnimationGraphSystem.d.ts.map +1 -1
- package/src/engine/graphics3/AnimationGraphSystem.js +337 -329
- package/src/engine/graphics3/AnimationSystem.d.ts +2 -0
- package/src/engine/graphics3/AnimationSystem.d.ts.map +1 -1
- package/src/engine/graphics3/AnimationSystem.js +360 -352
- package/src/engine/graphics3/WaterSystem.d.ts +12 -3
- package/src/engine/graphics3/WaterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/WaterSystem.js +78 -46
- package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
- package/src/engine/input/devices/PointerDevice.js +29 -4
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts +1 -0
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.js +14 -3
- package/src/engine/physics/cloth/MEASUREMENTS.md +130 -0
- package/src/engine/physics/cloth/PLAN.md +16 -1
- package/src/engine/physics/cloth/ecs/ClothColliderSystem.d.ts +5 -6
- package/src/engine/physics/cloth/ecs/ClothColliderSystem.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothColliderSystem.js +5 -6
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +4 -7
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothInstance.js +4 -7
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +4 -3
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothSystem.js +4 -3
- package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothWorld.js +10 -0
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts +24 -24
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.js +46 -43
- package/src/engine/physics/cloth/ecs/cloth_write_back.d.ts +1 -1
- package/src/engine/physics/cloth/ecs/cloth_write_back.js +1 -1
- package/src/engine/physics/constraint/solve_constraints.d.ts +0 -35
- package/src/engine/physics/constraint/solve_constraints.d.ts.map +1 -1
- package/src/engine/physics/constraint/solve_constraints.js +1 -83
- package/src/engine/physics/ecs/ContactProbe.d.ts +73 -0
- package/src/engine/physics/ecs/ContactProbe.d.ts.map +1 -0
- package/src/engine/physics/ecs/ContactProbe.js +103 -0
- package/src/engine/physics/ecs/ContactProbeSystem.d.ts +44 -0
- package/src/engine/physics/ecs/ContactProbeSystem.d.ts.map +1 -0
- package/src/engine/physics/ecs/ContactProbeSystem.js +397 -0
- package/src/engine/physics/fluid/ecs/FluidComponent.d.ts +1 -1
- package/src/engine/physics/fluid/ecs/FluidComponent.js +1 -1
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_velocity.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_velocity.js +12 -3
- package/src/engine/physics/fluid/solver/v3_grid_advect_sl_velocity.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_grid_advect_sl_velocity.js +8 -2
- package/src/engine/physics/fluid/solver/v3_grid_sample_scalar_masked.d.ts +19 -0
- package/src/engine/physics/fluid/solver/v3_grid_sample_scalar_masked.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_grid_sample_scalar_masked.js +41 -2
- package/src/engine/physics/fluid/solver/v3_mac_advect_scalar.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_mac_advect_scalar.js +9 -3
- package/src/engine/physics/fluid/solver/v3_mac_advect_sl_velocity.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_mac_advect_sl_velocity.js +26 -10
- package/src/engine/physics/inverse_kinematics/frame_fabrik/FrameFabrikProblem.d.ts +205 -0
- package/src/engine/physics/inverse_kinematics/frame_fabrik/FrameFabrikProblem.d.ts.map +1 -0
- package/src/engine/physics/inverse_kinematics/frame_fabrik/FrameFabrikProblem.js +245 -0
- package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_limit_from_joint.d.ts +21 -0
- package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_limit_from_joint.d.ts.map +1 -0
- package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_limit_from_joint.js +63 -0
- package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.d.ts +33 -0
- package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.d.ts.map +1 -0
- package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.js +874 -0
- package/src/engine/physics/inverse_kinematics/joint_hinge_mid_axis.d.ts +27 -0
- package/src/engine/physics/inverse_kinematics/joint_hinge_mid_axis.d.ts.map +1 -0
- package/src/engine/physics/inverse_kinematics/joint_hinge_mid_axis.js +77 -0
- package/src/engine/physics/inverse_kinematics/two_bone_path_solve.d.ts +36 -0
- package/src/engine/physics/inverse_kinematics/two_bone_path_solve.d.ts.map +1 -0
- package/src/engine/physics/inverse_kinematics/two_bone_path_solve.js +97 -0
- package/src/engine/physics/inverse_kinematics/two_joint_ik.d.ts +33 -11
- package/src/engine/physics/inverse_kinematics/two_joint_ik.d.ts.map +1 -1
- package/src/engine/physics/inverse_kinematics/two_joint_ik.js +158 -67
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.d.ts +3 -6
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.js +22 -9
- package/src/engine/ui/DraggableAspect.d.ts +5 -1
- package/src/engine/ui/DraggableAspect.d.ts.map +1 -1
- package/src/engine/ui/DraggableAspect.js +61 -4
- package/src/format/image/avif/heif/ItemProperty.d.ts +1 -1
- package/src/format/image/avif/heif/ItemProperty.js +1 -1
- package/src/format/image/png/chunk/png_chunk_decode_iTXt.d.ts.map +1 -1
- package/src/format/image/png/chunk/png_chunk_decode_iTXt.js +17 -6
- package/src/shade/device/mock/SoftwareGPUDevice.d.ts +2 -4
- package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUDevice.js +20 -13
- package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/sweep_views.js +2 -1
- package/src/shade/playground/water_refraction/README.md +10 -11
- package/src/shade/playground/water_refraction/main.js +9 -8
- package/src/shade/playground/water_refraction/world.js +1 -1
- package/src/shade/playground/water_surface/README.md +43 -0
- package/src/shade/playground/water_surface/index.html +30 -0
- package/src/shade/playground/water_surface/main.d.ts +2 -0
- package/src/shade/playground/water_surface/main.d.ts.map +1 -0
- package/src/shade/playground/water_surface/main.js +154 -0
- package/src/shade/playground/water_surface/world.d.ts +44 -0
- package/src/shade/playground/water_surface/world.d.ts.map +1 -0
- package/src/shade/playground/water_surface/world.js +160 -0
- package/src/shade/renderer/animation/ANIMATION_TRACK_BINDING_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/animation/ANIMATION_TRACK_BINDING_STRUCT.js +10 -1
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts +10 -4
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +251 -23
- package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.d.ts +12 -4
- package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.d.ts.map +1 -1
- package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.js +12 -4
- package/src/shade/renderer/animation/chunk_pose_accumulator.d.ts.map +1 -1
- package/src/shade/renderer/animation/chunk_pose_accumulator.js +14 -1
- package/src/shade/renderer/animation/pose/PoseChannelIndex.d.ts +78 -0
- package/src/shade/renderer/animation/pose/PoseChannelIndex.d.ts.map +1 -0
- package/src/shade/renderer/animation/pose/PoseChannelIndex.js +274 -0
- package/src/shade/renderer/animation/pose/PosePlayback.d.ts +40 -3
- package/src/shade/renderer/animation/pose/PosePlayback.d.ts.map +1 -1
- package/src/shade/renderer/animation/pose/PosePlayback.js +77 -3
- package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts +21 -3
- package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts.map +1 -1
- package/src/shade/renderer/animation/pose/pose_evaluate_local.js +79 -11
- package/src/shade/renderer/animation/shader_animation_apply.js +1 -1
- package/src/shade/renderer/animation/shader_animation_pose_resolve.d.ts +3 -2
- package/src/shade/renderer/animation/shader_animation_pose_resolve.d.ts.map +1 -1
- package/src/shade/renderer/animation/shader_animation_pose_resolve.js +187 -176
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +5 -0
- package/src/shade/renderer/binding/BufferBinding.js +2 -2
- package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTable.js +5 -3
- package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts +10 -3
- package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.js +17 -9
- package/src/shade/renderer/camera/orbital/OrbitalCameraInput.d.ts +3 -0
- package/src/shade/renderer/camera/orbital/OrbitalCameraInput.d.ts.map +1 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraInput.js +16 -0
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts +2 -0
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts.map +1 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.js +11 -0
- package/src/shade/renderer/geometry/meshlet/build/meshoptimizer/geometry_to_meshlets_meshoptimizer.d.ts +1 -1
- package/src/shade/renderer/geometry/meshlet/build/meshoptimizer/geometry_to_meshlets_meshoptimizer.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/build/meshoptimizer/geometry_to_meshlets_meshoptimizer.js +9 -3
- package/src/shade/renderer/geometry/util/geometry_simplify_redundant_topology.d.ts.map +1 -1
- package/src/shade/renderer/geometry/util/geometry_simplify_redundant_topology.js +2 -2
- package/src/shade/renderer/geometry/virtual/format/vgeo_validate_container.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/vgeo_validate_container.js +85 -0
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.js +12 -6
- package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.js +7 -0
- package/src/shade/renderer/geometry/virtual/runtime/VGeoRuntimeTables.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/VGeoRuntimeTables.js +3 -1
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/object_property/chunk_write_object_property.d.ts +3 -1
- package/src/shade/renderer/object_property/chunk_write_object_property.d.ts.map +1 -1
- package/src/shade/renderer/object_property/chunk_write_object_property.js +5 -2
- package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts +4 -0
- package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts.map +1 -1
- package/src/shade/renderer/object_property/chunk_write_object_property_node3d.js +6 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/scene/SCENE_DATABASE_SPEC.js +2 -1
- package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts +1 -1
- package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.js +135 -73
- package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts +7 -0
- package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.js +29 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/face_neighbourhood_hash.d.ts +19 -0
- package/src/shade/renderer/scene/optimization/geometry/internal/face_neighbourhood_hash.d.ts.map +1 -0
- package/src/shade/renderer/scene/optimization/geometry/internal/face_neighbourhood_hash.js +167 -0
- package/src/shade/renderer/scene/optimization/geometry/internal/neighbourhood_anchor_index.d.ts +25 -0
- package/src/shade/renderer/scene/optimization/geometry/internal/neighbourhood_anchor_index.d.ts.map +1 -0
- package/src/shade/renderer/scene/optimization/geometry/internal/neighbourhood_anchor_index.js +124 -0
- package/src/shade/renderer/scene/optimization/geometry/internal/seed_correspondence_from_face_pair.d.ts +19 -0
- package/src/shade/renderer/scene/optimization/geometry/internal/seed_correspondence_from_face_pair.d.ts.map +1 -0
- package/src/shade/renderer/scene/optimization/geometry/internal/seed_correspondence_from_face_pair.js +48 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +17 -1
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -1
- package/src/shade/renderer/scene/rows/GPUSceneRows.js +29 -3
- package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128_inverse.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128_inverse.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128_inverse.js +42 -0
- package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128x4_inverse_workgroup.d.ts +15 -0
- package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128x4_inverse_workgroup.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128x4_inverse_workgroup.js +39 -0
- package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.js +2 -0
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts +15 -0
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
- package/src/shade/renderer/water/GPUWaterRenderer.js +110 -30
- package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts +16 -8
- package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts.map +1 -1
- package/src/shade/renderer/water/medium/GPUWaterBodies.js +31 -26
- package/src/shade/renderer/water/medium/shader_water_meshlets.d.ts +0 -1
- package/src/shade/renderer/water/medium/shader_water_meshlets.d.ts.map +1 -1
- package/src/shade/renderer/water/medium/shader_water_meshlets.js +1 -39
- package/src/shade/renderer/water/shader_water.d.ts +0 -1
- package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
- package/src/shade/renderer/water/shader_water.js +201 -72
- package/src/shade/renderer/water/surface/GPUWaterSurface.d.ts +70 -0
- package/src/shade/renderer/water/surface/GPUWaterSurface.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/GPUWaterSurface.js +199 -0
- package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.d.ts +5 -2
- package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.js +32 -12
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +22 -0
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +217 -0
- package/src/shade/renderer/water/surface/graph_water_tessellation.d.ts +65 -11
- package/src/shade/renderer/water/surface/graph_water_tessellation.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/graph_water_tessellation.js +163 -28
- package/src/shade/renderer/water/surface/lod/WATER_LOD.d.ts +51 -0
- package/src/shade/renderer/water/surface/lod/WATER_LOD.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/lod/WATER_LOD.js +95 -0
- package/src/shade/renderer/water/surface/lod/chunk_water_lod.d.ts +10 -0
- package/src/shade/renderer/water/surface/lod/chunk_water_lod.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/lod/chunk_water_lod.js +127 -0
- package/src/shade/renderer/water/surface/lod/chunk_water_lod_cell.d.ts +17 -0
- package/src/shade/renderer/water/surface/lod/chunk_water_lod_cell.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/lod/chunk_water_lod_cell.js +246 -0
- package/src/shade/renderer/water/surface/lod/shader_water_lod.d.ts +118 -0
- package/src/shade/renderer/water/surface/lod/shader_water_lod.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/lod/shader_water_lod.js +727 -0
- package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts +60 -0
- package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/particles/GPUWaterParticles.js +228 -0
- package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts +17 -0
- package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.js +49 -0
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts +22 -0
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.js +143 -0
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts +15 -0
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.js +121 -0
- package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts +83 -0
- package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/particles/shader_water_particles.js +502 -0
- package/src/shade/renderer/water/surface/shader_water_cull.d.ts +42 -0
- package/src/shade/renderer/water/surface/shader_water_cull.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/shader_water_cull.js +269 -0
- package/src/shade/renderer/water/surface/shader_water_waves_combine.d.ts +15 -0
- package/src/shade/renderer/water/surface/shader_water_waves_combine.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/shader_water_waves_combine.js +73 -0
- package/src/shade/renderer/water/surface/shader_water_waves_derive.d.ts +11 -0
- package/src/shade/renderer/water/surface/shader_water_waves_derive.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/shader_water_waves_derive.js +78 -0
- package/src/shade/renderer/water/surface/spectrum/GPUWaterSpectrum.d.ts +35 -0
- package/src/shade/renderer/water/surface/spectrum/GPUWaterSpectrum.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/spectrum/GPUWaterSpectrum.js +103 -0
- package/src/shade/renderer/water/surface/spectrum/WATER_BAND_STATE.d.ts +22 -0
- package/src/shade/renderer/water/surface/spectrum/WATER_BAND_STATE.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/spectrum/WATER_BAND_STATE.js +57 -0
- package/src/shade/renderer/water/surface/spectrum/WATER_SPECTRUM.d.ts +22 -0
- package/src/shade/renderer/water/surface/spectrum/WATER_SPECTRUM.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/spectrum/WATER_SPECTRUM.js +25 -0
- package/src/shade/renderer/water/surface/spectrum/chunk_water_jonswap.d.ts +14 -0
- package/src/shade/renderer/water/surface/spectrum/chunk_water_jonswap.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/spectrum/chunk_water_jonswap.js +48 -0
- package/src/shade/renderer/water/surface/spectrum/chunk_water_spectrum.d.ts +23 -0
- package/src/shade/renderer/water/surface/spectrum/chunk_water_spectrum.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/spectrum/chunk_water_spectrum.js +169 -0
- package/src/shade/renderer/water/surface/spectrum/shader_water_spectrum.d.ts +26 -0
- package/src/shade/renderer/water/surface/spectrum/shader_water_spectrum.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/spectrum/shader_water_spectrum.js +161 -0
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +18 -6
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +11 -3
- package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.d.ts +0 -28
- package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.d.ts.map +0 -1
- package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.js +0 -86
- package/src/engine/ecs/ik/IKConstraint.d.ts +0 -52
- package/src/engine/ecs/ik/IKConstraint.d.ts.map +0 -1
- package/src/engine/ecs/ik/IKConstraint.js +0 -95
- package/src/engine/ecs/ik/IKProblem.d.ts +0 -45
- package/src/engine/ecs/ik/IKProblem.d.ts.map +0 -1
- package/src/engine/ecs/ik/IKProblem.js +0 -58
- package/src/engine/ecs/ik/IKSolver.d.ts +0 -8
- package/src/engine/ecs/ik/IKSolver.d.ts.map +0 -1
- package/src/engine/ecs/ik/IKSolver.js +0 -9
- package/src/engine/ecs/ik/InverseKinematics.d.ts +0 -48
- package/src/engine/ecs/ik/InverseKinematics.d.ts.map +0 -1
- package/src/engine/ecs/ik/InverseKinematics.js +0 -119
- package/src/engine/ecs/ik/InverseKinematicsSerializationAdapter.d.ts +0 -19
- package/src/engine/ecs/ik/InverseKinematicsSerializationAdapter.d.ts.map +0 -1
- package/src/engine/ecs/ik/InverseKinematicsSerializationAdapter.js +0 -72
- package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts +0 -54
- package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts.map +0 -1
- package/src/engine/ecs/ik/InverseKinematicsSystem.js +0 -212
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.d.ts +0 -8
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.d.ts.map +0 -1
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +0 -153
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.d.ts +0 -5
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.d.ts.map +0 -1
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +0 -120
- package/src/engine/ecs/ik/ik_bone_chain.d.ts +0 -64
- package/src/engine/ecs/ik/ik_bone_chain.d.ts.map +0 -1
- package/src/engine/ecs/ik/ik_bone_chain.js +0 -142
- package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts +0 -42
- package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts.map +0 -1
- package/src/engine/ecs/ik/ik_probe_terrain_contact.js +0 -123
- package/src/engine/ecs/ik/ik_write_local_rotation.d.ts +0 -18
- package/src/engine/ecs/ik/ik_write_local_rotation.d.ts.map +0 -1
- package/src/engine/ecs/ik/ik_write_local_rotation.js +0 -32
- package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.d.ts +0 -29
- package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.d.ts.map +0 -1
- package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.js +0 -44
- package/src/shade/renderer/water/medium/shader_water_bodies_derive.d.ts +0 -4
- package/src/shade/renderer/water/medium/shader_water_bodies_derive.d.ts.map +0 -1
- package/src/shade/renderer/water/medium/shader_water_bodies_derive.js +0 -32
- package/src/shade/renderer/water/surface/GPUWaterWaveSimulation.d.ts +0 -25
- package/src/shade/renderer/water/surface/GPUWaterWaveSimulation.d.ts.map +0 -1
- package/src/shade/renderer/water/surface/GPUWaterWaveSimulation.js +0 -128
- package/src/shade/renderer/water/surface/chunk_water_tessellation.d.ts +0 -9
- package/src/shade/renderer/water/surface/chunk_water_tessellation.d.ts.map +0 -1
- package/src/shade/renderer/water/surface/chunk_water_tessellation.js +0 -144
- package/src/shade/renderer/water/surface/chunk_water_wave.d.ts +0 -13
- package/src/shade/renderer/water/surface/chunk_water_wave.d.ts.map +0 -1
- package/src/shade/renderer/water/surface/chunk_water_wave.js +0 -40
- package/src/shade/renderer/water/surface/shader_water_tiles.d.ts +0 -4
- package/src/shade/renderer/water/surface/shader_water_tiles.d.ts.map +0 -1
- package/src/shade/renderer/water/surface/shader_water_tiles.js +0 -123
- package/src/shade/renderer/water/surface/shader_water_wave_batch.d.ts +0 -6
- package/src/shade/renderer/water/surface/shader_water_wave_batch.d.ts.map +0 -1
- package/src/shade/renderer/water/surface/shader_water_wave_batch.js +0 -85
- package/src/shade/renderer/water/surface/shader_water_wave_domain.d.ts +0 -6
- package/src/shade/renderer/water/surface/shader_water_wave_domain.d.ts.map +0 -1
- package/src/shade/renderer/water/surface/shader_water_wave_domain.js +0 -83
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { v3_grid_limit8_at_indices } from "./v3_grid_limit8_at_indices.js";
|
|
2
2
|
import { assert } from "../../../../core/assert.js";
|
|
3
3
|
import { clamp } from "../../../../core/math/clamp.js";
|
|
4
|
-
import {
|
|
4
|
+
import { scs3d_sample_linear3_array } from "../../../graphics/texture/3d/scs3d_sample_linear3.js";
|
|
5
5
|
|
|
6
6
|
/*
|
|
7
7
|
* COLLOCATED VARIANT. FluidSimulator transports through the MAC (staggered-grid) kernels in the sibling
|
|
@@ -76,6 +76,7 @@ export function v3_grid_advect_maccormack_velocity(outputs, sources, carrier_x,
|
|
|
76
76
|
const last_y = res_y - 1;
|
|
77
77
|
const last_z = res_z - 1;
|
|
78
78
|
const sample = scratch_sample;
|
|
79
|
+
const position = scratch_position;
|
|
79
80
|
|
|
80
81
|
// ─── pass 1: forward SL step into the scratch trio ──────────────────────
|
|
81
82
|
for (let z = 0; z < res_z; z++) {
|
|
@@ -93,7 +94,10 @@ export function v3_grid_advect_maccormack_velocity(outputs, sources, carrier_x,
|
|
|
93
94
|
const s_x = x - carrier_x[c] * time_delta;
|
|
94
95
|
const s_y = y - carrier_y[c] * time_delta;
|
|
95
96
|
const s_z = z - carrier_z[c] * time_delta;
|
|
96
|
-
|
|
97
|
+
position[0] = s_x;
|
|
98
|
+
position[1] = s_y;
|
|
99
|
+
position[2] = s_z;
|
|
100
|
+
scs3d_sample_linear3_array(sample, src_x, src_y, src_z, res_x, res_y, res_z, position, 0);
|
|
97
101
|
fwd_x[c] = sample[0];
|
|
98
102
|
fwd_y[c] = sample[1];
|
|
99
103
|
fwd_z[c] = sample[2];
|
|
@@ -119,7 +123,10 @@ export function v3_grid_advect_maccormack_velocity(outputs, sources, carrier_x,
|
|
|
119
123
|
const vy = carrier_y[c] * time_delta;
|
|
120
124
|
const vz = carrier_z[c] * time_delta;
|
|
121
125
|
|
|
122
|
-
|
|
126
|
+
position[0] = x + vx;
|
|
127
|
+
position[1] = y + vy;
|
|
128
|
+
position[2] = z + vz;
|
|
129
|
+
scs3d_sample_linear3_array(sample, fwd_x, fwd_y, fwd_z, res_x, res_y, res_z, position, 0);
|
|
123
130
|
const corr_x = fwd_x[c] + 0.5 * (src_x[c] - sample[0]);
|
|
124
131
|
const corr_y = fwd_y[c] + 0.5 * (src_y[c] - sample[1]);
|
|
125
132
|
const corr_z = fwd_z[c] + 0.5 * (src_z[c] - sample[2]);
|
|
@@ -160,3 +167,5 @@ export function v3_grid_advect_maccormack_velocity(outputs, sources, carrier_x,
|
|
|
160
167
|
|
|
161
168
|
/** Module-static sample destination — avoids per-cell allocation. */
|
|
162
169
|
const scratch_sample = new Float32Array(3);
|
|
170
|
+
/** Continuous coordinates passed to the sampler during this synchronous typed-array sweep. */
|
|
171
|
+
const scratch_position = new Float64Array(3);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v3_grid_advect_sl_velocity.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/solver/v3_grid_advect_sl_velocity.js"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,oDAdW,YAAY,EAAE,WACd,YAAY,EAAE,aAEd,YAAY,aACZ,YAAY,aACZ,YAAY,SACZ,MAAM,SACN,MAAM,SACN,MAAM,cACN,MAAM,SACN,UAAU,
|
|
1
|
+
{"version":3,"file":"v3_grid_advect_sl_velocity.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/solver/v3_grid_advect_sl_velocity.js"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,oDAdW,YAAY,EAAE,WACd,YAAY,EAAE,aAEd,YAAY,aACZ,YAAY,aACZ,YAAY,SACZ,MAAM,SACN,MAAM,SACN,MAAM,cACN,MAAM,SACN,UAAU,QAmEpB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assert } from "../../../../core/assert.js";
|
|
2
|
-
import {
|
|
2
|
+
import { scs3d_sample_linear3_array } from "../../../graphics/texture/3d/scs3d_sample_linear3.js";
|
|
3
3
|
|
|
4
4
|
/*
|
|
5
5
|
* COLLOCATED VARIANT. FluidSimulator transports through the MAC (staggered-grid) kernels in the sibling
|
|
@@ -72,6 +72,7 @@ export function v3_grid_advect_sl_velocity(outputs, sources, carrier_x, carrier_
|
|
|
72
72
|
|
|
73
73
|
const slice_size = res_x * res_y;
|
|
74
74
|
const sample = scratch_sample;
|
|
75
|
+
const position = scratch_position;
|
|
75
76
|
|
|
76
77
|
for (let z = 0; z < res_z; z++) {
|
|
77
78
|
const z_off = z * slice_size;
|
|
@@ -94,7 +95,10 @@ export function v3_grid_advect_sl_velocity(outputs, sources, carrier_x, carrier_
|
|
|
94
95
|
const s_y = y - carrier_y[c] * time_delta;
|
|
95
96
|
const s_z = z - carrier_z[c] * time_delta;
|
|
96
97
|
|
|
97
|
-
|
|
98
|
+
position[0] = s_x;
|
|
99
|
+
position[1] = s_y;
|
|
100
|
+
position[2] = s_z;
|
|
101
|
+
scs3d_sample_linear3_array(sample, src_x, src_y, src_z, res_x, res_y, res_z, position, 0);
|
|
98
102
|
out_x[c] = sample[0];
|
|
99
103
|
out_y[c] = sample[1];
|
|
100
104
|
out_z[c] = sample[2];
|
|
@@ -105,3 +109,5 @@ export function v3_grid_advect_sl_velocity(outputs, sources, carrier_x, carrier_
|
|
|
105
109
|
|
|
106
110
|
/** Module-static sample destination — avoids per-cell allocation. */
|
|
107
111
|
const scratch_sample = new Float32Array(3);
|
|
112
|
+
/** Continuous coordinates passed to the sampler during this synchronous typed-array sweep. */
|
|
113
|
+
const scratch_position = new Float64Array(3);
|
|
@@ -27,4 +27,23 @@
|
|
|
27
27
|
* @return {number}
|
|
28
28
|
*/
|
|
29
29
|
export function v3_grid_sample_scalar_masked(data: Float32Array, solid: Uint8Array, res_x: number, res_y: number, res_z: number, x: number, y: number, z: number, fallback: number): number;
|
|
30
|
+
/**
|
|
31
|
+
* {@link v3_grid_sample_scalar_masked} with `[x, y, z, fallback]` read from a reusable operand record
|
|
32
|
+
* and the sample written into `out`. No continuous number crosses the call boundary, including the
|
|
33
|
+
* result, so a per-cell caller does not need this sampler to be inlined to avoid numeric boxes.
|
|
34
|
+
*
|
|
35
|
+
* The operands are read before any output write; `out` may overlap `operands` or `data`. Float64
|
|
36
|
+
* operands preserve the scalar form's coordinate and fallback precision.
|
|
37
|
+
*
|
|
38
|
+
* @param {Float32Array|Float64Array|number[]} out
|
|
39
|
+
* @param {number} out_offset
|
|
40
|
+
* @param {Float32Array} data
|
|
41
|
+
* @param {Uint8Array} solid
|
|
42
|
+
* @param {number} res_x
|
|
43
|
+
* @param {number} res_y
|
|
44
|
+
* @param {number} res_z
|
|
45
|
+
* @param {Float64Array} operands `[x, y, z, fallback]`
|
|
46
|
+
* @param {number} operands_offset
|
|
47
|
+
*/
|
|
48
|
+
export function v3_grid_sample_scalar_masked_array(out: Float32Array | Float64Array | number[], out_offset: number, data: Float32Array, solid: Uint8Array, res_x: number, res_y: number, res_z: number, operands: Float64Array, operands_offset: number): void;
|
|
30
49
|
//# sourceMappingURL=v3_grid_sample_scalar_masked.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v3_grid_sample_scalar_masked.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/solver/v3_grid_sample_scalar_masked.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"v3_grid_sample_scalar_masked.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/solver/v3_grid_sample_scalar_masked.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,mDAXW,YAAY,SACZ,UAAU,SACV,MAAM,SACN,MAAM,SACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,YACN,MAAM,GACL,MAAM,CAYjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wDAVW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,cAClC,MAAM,QACN,YAAY,SACZ,UAAU,SACV,MAAM,SACN,MAAM,SACN,MAAM,YACN,YAAY,mBACZ,MAAM,QAqEhB"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { clamp } from "../../../../core/math/clamp.js";
|
|
2
2
|
|
|
3
|
+
const scratch_operands = new Float64Array(4);
|
|
4
|
+
const scratch_sample = new Float64Array(1);
|
|
5
|
+
|
|
3
6
|
/**
|
|
4
7
|
* Trilinearly sample a cell-centered scalar at a fractional position,
|
|
5
8
|
* EXCLUDING solid cells from the interpolation: solid taps contribute zero
|
|
@@ -29,6 +32,41 @@ import { clamp } from "../../../../core/math/clamp.js";
|
|
|
29
32
|
* @return {number}
|
|
30
33
|
*/
|
|
31
34
|
export function v3_grid_sample_scalar_masked(data, solid, res_x, res_y, res_z, x, y, z, fallback) {
|
|
35
|
+
const operands = scratch_operands;
|
|
36
|
+
operands[0] = x;
|
|
37
|
+
operands[1] = y;
|
|
38
|
+
operands[2] = z;
|
|
39
|
+
operands[3] = fallback;
|
|
40
|
+
|
|
41
|
+
v3_grid_sample_scalar_masked_array(scratch_sample, 0, data, solid, res_x, res_y, res_z, operands, 0);
|
|
42
|
+
|
|
43
|
+
return scratch_sample[0];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* {@link v3_grid_sample_scalar_masked} with `[x, y, z, fallback]` read from a reusable operand record
|
|
48
|
+
* and the sample written into `out`. No continuous number crosses the call boundary, including the
|
|
49
|
+
* result, so a per-cell caller does not need this sampler to be inlined to avoid numeric boxes.
|
|
50
|
+
*
|
|
51
|
+
* The operands are read before any output write; `out` may overlap `operands` or `data`. Float64
|
|
52
|
+
* operands preserve the scalar form's coordinate and fallback precision.
|
|
53
|
+
*
|
|
54
|
+
* @param {Float32Array|Float64Array|number[]} out
|
|
55
|
+
* @param {number} out_offset
|
|
56
|
+
* @param {Float32Array} data
|
|
57
|
+
* @param {Uint8Array} solid
|
|
58
|
+
* @param {number} res_x
|
|
59
|
+
* @param {number} res_y
|
|
60
|
+
* @param {number} res_z
|
|
61
|
+
* @param {Float64Array} operands `[x, y, z, fallback]`
|
|
62
|
+
* @param {number} operands_offset
|
|
63
|
+
*/
|
|
64
|
+
export function v3_grid_sample_scalar_masked_array(out, out_offset, data, solid, res_x, res_y, res_z, operands, operands_offset) {
|
|
65
|
+
const x = operands[operands_offset];
|
|
66
|
+
const y = operands[operands_offset + 1];
|
|
67
|
+
const z = operands[operands_offset + 2];
|
|
68
|
+
const fallback = operands[operands_offset + 3];
|
|
69
|
+
|
|
32
70
|
const x_max = res_x - 1;
|
|
33
71
|
const y_max = res_y - 1;
|
|
34
72
|
const z_max = res_z - 1;
|
|
@@ -80,7 +118,8 @@ export function v3_grid_sample_scalar_masked(data, solid, res_x, res_y, res_z, x
|
|
|
80
118
|
|
|
81
119
|
const total = w000 + w100 + w010 + w110 + w001 + w101 + w011 + w111;
|
|
82
120
|
if (total <= 0) {
|
|
83
|
-
|
|
121
|
+
out[out_offset] = fallback;
|
|
122
|
+
return;
|
|
84
123
|
}
|
|
85
124
|
|
|
86
125
|
const sum = w000 * data[c000] + w100 * data[c100]
|
|
@@ -88,5 +127,5 @@ export function v3_grid_sample_scalar_masked(data, solid, res_x, res_y, res_z, x
|
|
|
88
127
|
+ w001 * data[c001] + w101 * data[c101]
|
|
89
128
|
+ w011 * data[c011] + w111 * data[c111];
|
|
90
129
|
|
|
91
|
-
|
|
130
|
+
out[out_offset] = sum / total;
|
|
92
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v3_mac_advect_scalar.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/solver/v3_mac_advect_scalar.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"v3_mac_advect_scalar.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/solver/v3_mac_advect_scalar.js"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,gDAXW,YAAY,SACZ,YAAY,SACZ,YAAY,SACZ,YAAY,SACZ,YAAY,SACZ,MAAM,SACN,MAAM,SACN,MAAM,cACN,MAAM,SACN,UAAU,QAgDpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wDAZW,YAAY,SACZ,YAAY,mBACZ,YAAY,SACZ,YAAY,SACZ,YAAY,SACZ,YAAY,SACZ,MAAM,SACN,MAAM,SACN,MAAM,cACN,MAAM,SACN,UAAU,QA8GpB"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { assert } from "../../../../core/assert.js";
|
|
2
2
|
import { clamp } from "../../../../core/math/clamp.js";
|
|
3
|
-
import { v3_grid_sample_scalar_masked } from "./v3_grid_sample_scalar_masked.js";
|
|
3
|
+
import { v3_grid_sample_scalar_masked, v3_grid_sample_scalar_masked_array } from "./v3_grid_sample_scalar_masked.js";
|
|
4
4
|
import { v3_mac_clip_trace } from "./v3_mac_clip_trace.js";
|
|
5
5
|
|
|
6
6
|
const scratch_clip = new Float32Array(3);
|
|
7
|
+
// This synchronous typed-array kernel has no callbacks while a sample is in progress.
|
|
8
|
+
const scratch_sample_operands = new Float64Array(4);
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* Straight-line (loop-free, inlinable) test: is the cell containing the
|
|
@@ -66,6 +68,7 @@ export function v3_mac_advect_sl_scalar(output, input, vel_u, vel_v, vel_w, res_
|
|
|
66
68
|
assert.greaterThanOrEqual(input.length, cell_count, "input covers grid");
|
|
67
69
|
|
|
68
70
|
const cell_slice = res_x * res_y;
|
|
71
|
+
const operands = scratch_sample_operands;
|
|
69
72
|
const sx = res_x + 1;
|
|
70
73
|
const v_slice = res_x * (res_y + 1);
|
|
71
74
|
|
|
@@ -96,8 +99,11 @@ export function v3_mac_advect_sl_scalar(output, input, vel_u, vel_v, vel_w, res_
|
|
|
96
99
|
bx = scratch_clip[0]; by = scratch_clip[1]; bz = scratch_clip[2];
|
|
97
100
|
}
|
|
98
101
|
|
|
99
|
-
|
|
100
|
-
|
|
102
|
+
operands[0] = bx;
|
|
103
|
+
operands[1] = by;
|
|
104
|
+
operands[2] = bz;
|
|
105
|
+
operands[3] = input[c];
|
|
106
|
+
v3_grid_sample_scalar_masked_array(output, c, input, solid, res_x, res_y, res_z, operands, 0);
|
|
101
107
|
}
|
|
102
108
|
}
|
|
103
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v3_mac_advect_sl_velocity.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/solver/v3_mac_advect_sl_velocity.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"v3_mac_advect_sl_velocity.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/solver/v3_mac_advect_sl_velocity.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,mDAZW,YAAY,EAAE,WACd,YAAY,EAAE,WACd,YAAY,EAAE,SACd,MAAM,SACN,MAAM,SACN,MAAM,cACN,MAAM,gBACN,UAAU,gBACV,UAAU,gBACV,UAAU,SACV,UAAU,QAuLpB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { assert } from "../../../../core/assert.js";
|
|
2
|
-
import {
|
|
2
|
+
import { scs3d_sample_linear_array } from "../../../graphics/texture/3d/scs3d_sample_linear.js";
|
|
3
3
|
import { v3_mac_clip_trace } from "./v3_mac_clip_trace.js";
|
|
4
4
|
|
|
5
5
|
const scratch_clip = new Float32Array(3);
|
|
6
|
+
const scratch_position = new Float64Array(3);
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Semi-Lagrangian advection of a MAC (face-centered) velocity field along a
|
|
@@ -116,12 +117,17 @@ export function v3_mac_advect_sl_velocity(outputs, sources, carrier, res_x, res_
|
|
|
116
117
|
if (ecy < 0) ecy = 0; else if (ecy >= res_y) ecy = last_cy;
|
|
117
118
|
if (ecz < 0) ecz = 0; else if (ecz >= res_z) ecz = last_cz;
|
|
118
119
|
if (solid[ecz * cell_slice + ecy * res_x + ecx] === 0) {
|
|
119
|
-
|
|
120
|
+
scratch_position[0] = ex + 0.5;
|
|
121
|
+
scratch_position[1] = ey;
|
|
122
|
+
scratch_position[2] = ez;
|
|
123
|
+
scs3d_sample_linear_array(out_u, f, src_u, sx, res_y, res_z, scratch_position, 0);
|
|
120
124
|
} else {
|
|
121
125
|
v3_mac_clip_trace(scratch_clip, solid, res_x, res_y, res_z,
|
|
122
126
|
x - 0.5, y, z, ex, ey, ez);
|
|
123
|
-
|
|
124
|
-
|
|
127
|
+
scratch_position[0] = scratch_clip[0] + 0.5;
|
|
128
|
+
scratch_position[1] = scratch_clip[1];
|
|
129
|
+
scratch_position[2] = scratch_clip[2];
|
|
130
|
+
scs3d_sample_linear_array(out_u, f, src_u, sx, res_y, res_z, scratch_position, 0);
|
|
125
131
|
}
|
|
126
132
|
}
|
|
127
133
|
}
|
|
@@ -159,12 +165,17 @@ export function v3_mac_advect_sl_velocity(outputs, sources, carrier, res_x, res_
|
|
|
159
165
|
if (ecy < 0) ecy = 0; else if (ecy >= res_y) ecy = last_cy;
|
|
160
166
|
if (ecz < 0) ecz = 0; else if (ecz >= res_z) ecz = last_cz;
|
|
161
167
|
if (solid[ecz * cell_slice + ecy * res_x + ecx] === 0) {
|
|
162
|
-
|
|
168
|
+
scratch_position[0] = ex;
|
|
169
|
+
scratch_position[1] = ey + 0.5;
|
|
170
|
+
scratch_position[2] = ez;
|
|
171
|
+
scs3d_sample_linear_array(out_v, f, src_v, res_x, sy, res_z, scratch_position, 0);
|
|
163
172
|
} else {
|
|
164
173
|
v3_mac_clip_trace(scratch_clip, solid, res_x, res_y, res_z,
|
|
165
174
|
x, y - 0.5, z, ex, ey, ez);
|
|
166
|
-
|
|
167
|
-
|
|
175
|
+
scratch_position[0] = scratch_clip[0];
|
|
176
|
+
scratch_position[1] = scratch_clip[1] + 0.5;
|
|
177
|
+
scratch_position[2] = scratch_clip[2];
|
|
178
|
+
scs3d_sample_linear_array(out_v, f, src_v, res_x, sy, res_z, scratch_position, 0);
|
|
168
179
|
}
|
|
169
180
|
}
|
|
170
181
|
}
|
|
@@ -204,12 +215,17 @@ export function v3_mac_advect_sl_velocity(outputs, sources, carrier, res_x, res_
|
|
|
204
215
|
if (ecy < 0) ecy = 0; else if (ecy >= res_y) ecy = last_cy;
|
|
205
216
|
if (ecz < 0) ecz = 0; else if (ecz >= res_z) ecz = last_cz;
|
|
206
217
|
if (solid[ecz * cell_slice + ecy * res_x + ecx] === 0) {
|
|
207
|
-
|
|
218
|
+
scratch_position[0] = ex;
|
|
219
|
+
scratch_position[1] = ey;
|
|
220
|
+
scratch_position[2] = ez + 0.5;
|
|
221
|
+
scs3d_sample_linear_array(out_w, f, src_w, res_x, res_y, sz, scratch_position, 0);
|
|
208
222
|
} else {
|
|
209
223
|
v3_mac_clip_trace(scratch_clip, solid, res_x, res_y, res_z,
|
|
210
224
|
x, y, z - 0.5, ex, ey, ez);
|
|
211
|
-
|
|
212
|
-
|
|
225
|
+
scratch_position[0] = scratch_clip[0];
|
|
226
|
+
scratch_position[1] = scratch_clip[1];
|
|
227
|
+
scratch_position[2] = scratch_clip[2] + 0.5;
|
|
228
|
+
scs3d_sample_linear_array(out_w, f, src_w, res_x, res_y, sz, scratch_position, 0);
|
|
213
229
|
}
|
|
214
230
|
}
|
|
215
231
|
}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One tree for {@link frame_fabrik_solve} to pose: its joints, as the animation left them, the goals
|
|
3
|
+
* pulling on them, and, once solved, where they went.
|
|
4
|
+
*
|
|
5
|
+
* Every array is sized once, at construction, for the most joints and goals the problem will ever
|
|
6
|
+
* hold; a solve allocates nothing. Joints are indices into the problem, not entities: the problem
|
|
7
|
+
* knows nothing about where its tree came from.
|
|
8
|
+
*
|
|
9
|
+
* The caller fills the inputs and {@link joint_count} / {@link goal_count}; the fields under "solver
|
|
10
|
+
* state" belong to the solver, which overwrites them on every solve.
|
|
11
|
+
*
|
|
12
|
+
* @author Alex Goldring
|
|
13
|
+
* @copyright Company Named Limited (c) 2026
|
|
14
|
+
*/
|
|
15
|
+
export class FrameFabrikProblem {
|
|
16
|
+
/**
|
|
17
|
+
* @param {number} joint_capacity the most joints a solve will be given
|
|
18
|
+
* @param {number} goal_capacity the most goals a solve will be given
|
|
19
|
+
*/
|
|
20
|
+
constructor(joint_capacity: number, goal_capacity: number);
|
|
21
|
+
/**
|
|
22
|
+
* @readonly
|
|
23
|
+
* @type {number}
|
|
24
|
+
*/
|
|
25
|
+
readonly joint_capacity: number;
|
|
26
|
+
/**
|
|
27
|
+
* @readonly
|
|
28
|
+
* @type {number}
|
|
29
|
+
*/
|
|
30
|
+
readonly goal_capacity: number;
|
|
31
|
+
/**
|
|
32
|
+
* How many joints this solve poses.
|
|
33
|
+
* @type {number}
|
|
34
|
+
*/
|
|
35
|
+
joint_count: number;
|
|
36
|
+
/**
|
|
37
|
+
* How many goals pull on them.
|
|
38
|
+
* @type {number}
|
|
39
|
+
*/
|
|
40
|
+
goal_count: number;
|
|
41
|
+
/**
|
|
42
|
+
* Each joint's parent, as an index into this problem, or -1 for a joint whose parent the solve
|
|
43
|
+
* does not pose: its parent's frame is fixed, as animated. Every parent comes before its
|
|
44
|
+
* children, `joint_parent[i] < i`.
|
|
45
|
+
* @type {Int32Array}
|
|
46
|
+
*/
|
|
47
|
+
joint_parent: Int32Array;
|
|
48
|
+
/**
|
|
49
|
+
* Where each joint is as animated, in world. Packed `[x, y, z]` per joint.
|
|
50
|
+
* @type {Float64Array}
|
|
51
|
+
*/
|
|
52
|
+
base_position: Float64Array;
|
|
53
|
+
/**
|
|
54
|
+
* How each joint is turned as animated, in world, a unit quaternion. Packed `[x, y, z, w]` per
|
|
55
|
+
* joint.
|
|
56
|
+
* @type {Float64Array}
|
|
57
|
+
*/
|
|
58
|
+
base_rotation: Float64Array;
|
|
59
|
+
/**
|
|
60
|
+
* How each joint is turned relative to its parent as animated, a unit quaternion: the parent's
|
|
61
|
+
* {@link base_rotation} composed with it is the joint's. For a joint whose parent is not posed,
|
|
62
|
+
* relative to that parent, whose frame it gives the solve. Packed `[x, y, z, w]` per joint.
|
|
63
|
+
* @type {Float64Array}
|
|
64
|
+
*/
|
|
65
|
+
base_local_rotation: Float64Array;
|
|
66
|
+
/**
|
|
67
|
+
* 1 for a joint whose turn relative to its parent is limited, by {@link limit_basis_a},
|
|
68
|
+
* {@link limit_basis_b}, {@link limit_lower} and {@link limit_upper}; 0 for one that turns
|
|
69
|
+
* freely.
|
|
70
|
+
* @type {Uint8Array}
|
|
71
|
+
*/
|
|
72
|
+
joint_limited: Uint8Array;
|
|
73
|
+
/**
|
|
74
|
+
* The limit's frame in the parent's, a unit quaternion: a physics `Joint`'s `localBasisA`.
|
|
75
|
+
* Packed `[x, y, z, w]` per joint.
|
|
76
|
+
* @type {Float64Array}
|
|
77
|
+
*/
|
|
78
|
+
limit_basis_a: Float64Array;
|
|
79
|
+
/**
|
|
80
|
+
* The limit's frame in the joint's own, a unit quaternion: a physics `Joint`'s `localBasisB`.
|
|
81
|
+
* Packed `[x, y, z, w]` per joint.
|
|
82
|
+
* @type {Float64Array}
|
|
83
|
+
*/
|
|
84
|
+
limit_basis_b: Float64Array;
|
|
85
|
+
/**
|
|
86
|
+
* Lower bounds of the turn of frame B relative to frame A, as `swing_twist_error_array`
|
|
87
|
+
* measures it: `[twist about X, swing Y, swing Z]` per joint, radians. `-Infinity` for an
|
|
88
|
+
* axis that turns freely, 0 for a locked one.
|
|
89
|
+
* @type {Float64Array}
|
|
90
|
+
*/
|
|
91
|
+
limit_lower: Float64Array;
|
|
92
|
+
/**
|
|
93
|
+
* Upper bounds, as {@link limit_lower}.
|
|
94
|
+
* @type {Float64Array}
|
|
95
|
+
*/
|
|
96
|
+
limit_upper: Float64Array;
|
|
97
|
+
/**
|
|
98
|
+
* The joint each goal pulls on.
|
|
99
|
+
* @type {Int32Array}
|
|
100
|
+
*/
|
|
101
|
+
goal_effector: Int32Array;
|
|
102
|
+
/**
|
|
103
|
+
* The highest joint each goal turns: its effector or an ancestor of it. The goal's path runs
|
|
104
|
+
* from the effector up to here. This joint turns and never moves.
|
|
105
|
+
* @type {Int32Array}
|
|
106
|
+
*/
|
|
107
|
+
goal_root: Int32Array;
|
|
108
|
+
/**
|
|
109
|
+
* How hard each goal pulls, 0..1. 0 gives the pose the solve gives without the goal, and the
|
|
110
|
+
* pose is continuous in it.
|
|
111
|
+
* @type {Float64Array}
|
|
112
|
+
*/
|
|
113
|
+
goal_weight: Float64Array;
|
|
114
|
+
/**
|
|
115
|
+
* The joint each goal's target hangs below, or -1 for a target the solve does not move. A
|
|
116
|
+
* target hanging below a joint is carried by that joint's frame as the solve turns it, read
|
|
117
|
+
* afresh on every iteration.
|
|
118
|
+
* @type {Int32Array}
|
|
119
|
+
*/
|
|
120
|
+
goal_target_joint: Int32Array;
|
|
121
|
+
/**
|
|
122
|
+
* Where each goal wants its effector, in world, as animated: the frame of
|
|
123
|
+
* {@link goal_target_joint} carries it from there. Packed `[x, y, z]` per goal.
|
|
124
|
+
* @type {Float64Array}
|
|
125
|
+
*/
|
|
126
|
+
goal_target: Float64Array;
|
|
127
|
+
/**
|
|
128
|
+
* The solved pose: where each joint went, in world. Packed `[x, y, z]` per joint.
|
|
129
|
+
* @type {Float64Array}
|
|
130
|
+
*/
|
|
131
|
+
solved_position: Float64Array;
|
|
132
|
+
/**
|
|
133
|
+
* The solved pose: how each joint is turned, in world. Packed `[x, y, z, w]` per joint.
|
|
134
|
+
* @type {Float64Array}
|
|
135
|
+
*/
|
|
136
|
+
solved_rotation: Float64Array;
|
|
137
|
+
/**
|
|
138
|
+
* Each joint's place in its parent's frame, as animated: the rigid offset the solve keeps.
|
|
139
|
+
* @type {Float64Array}
|
|
140
|
+
*/
|
|
141
|
+
_offset: Float64Array;
|
|
142
|
+
/**
|
|
143
|
+
* The weight of the link from each joint's parent to it: the heaviest goal whose path holds
|
|
144
|
+
* both ends. 0 for a link no path holds.
|
|
145
|
+
* @type {Float64Array}
|
|
146
|
+
*/
|
|
147
|
+
_link_weight: Float64Array;
|
|
148
|
+
/**
|
|
149
|
+
* Children of joint `i` are `_child[_child_start[i] .. _child_start[i + 1]]`.
|
|
150
|
+
* @type {Int32Array}
|
|
151
|
+
*/
|
|
152
|
+
_child_start: Int32Array;
|
|
153
|
+
/**
|
|
154
|
+
* @type {Int32Array}
|
|
155
|
+
*/
|
|
156
|
+
_child: Int32Array;
|
|
157
|
+
/**
|
|
158
|
+
* How many goals of non-zero weight have the joint on their path.
|
|
159
|
+
* @type {Int32Array}
|
|
160
|
+
*/
|
|
161
|
+
_path_count: Int32Array;
|
|
162
|
+
/**
|
|
163
|
+
* 1 for a joint some goal's path holds below that goal's root.
|
|
164
|
+
* @type {Uint8Array}
|
|
165
|
+
*/
|
|
166
|
+
_interior: Uint8Array;
|
|
167
|
+
/**
|
|
168
|
+
* 1 for a joint that turns and never moves: a goal's root no path holds below its own root.
|
|
169
|
+
* @type {Uint8Array}
|
|
170
|
+
*/
|
|
171
|
+
_root_only: Uint8Array;
|
|
172
|
+
/**
|
|
173
|
+
* The goal whose effector the joint is, or -1.
|
|
174
|
+
* @type {Int32Array}
|
|
175
|
+
*/
|
|
176
|
+
_effector_goal: Int32Array;
|
|
177
|
+
/**
|
|
178
|
+
* The joint whose frame carries each goal's effector when the goal does not pull: the deepest
|
|
179
|
+
* joint of its path another goal's path holds too, else its root's parent (-1 when that is
|
|
180
|
+
* not posed).
|
|
181
|
+
* @type {Int32Array}
|
|
182
|
+
*/
|
|
183
|
+
_goal_anchor: Int32Array;
|
|
184
|
+
/**
|
|
185
|
+
* The effector in its anchor's frame, as animated. Packed `[x, y, z]` per goal.
|
|
186
|
+
* @type {Float64Array}
|
|
187
|
+
*/
|
|
188
|
+
_goal_anchor_offset: Float64Array;
|
|
189
|
+
/**
|
|
190
|
+
* Each target in its target joint's frame, as animated. Packed `[x, y, z]` per goal.
|
|
191
|
+
* @type {Float64Array}
|
|
192
|
+
*/
|
|
193
|
+
_goal_target_local: Float64Array;
|
|
194
|
+
/**
|
|
195
|
+
* This iteration's target for each effector. Packed `[x, y, z]` per goal.
|
|
196
|
+
* @type {Float64Array}
|
|
197
|
+
*/
|
|
198
|
+
_target: Float64Array;
|
|
199
|
+
/**
|
|
200
|
+
* Where each joint was before this iteration, to measure how far the iteration moved it.
|
|
201
|
+
* @type {Float64Array}
|
|
202
|
+
*/
|
|
203
|
+
_previous: Float64Array;
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=FrameFabrikProblem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameFabrikProblem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/inverse_kinematics/frame_fabrik/FrameFabrikProblem.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH;IAEI;;;OAGG;IACH,4BAHW,MAAM,iBACN,MAAM,EA+NhB;IAzNG;;;OAGG;IACH,yBAFU,MAAM,CAEoB;IAEpC;;;OAGG;IACH,wBAFU,MAAM,CAEkB;IAElC;;;OAGG;IACH,aAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,YAFU,MAAM,CAEG;IAEnB;;;;;OAKG;IACH,cAFU,UAAU,CAE8B;IAElD;;;OAGG;IACH,eAFU,YAAY,CAEmC;IAEzD;;;;OAIG;IACH,eAFU,YAAY,CAEmC;IAEzD;;;;;OAKG;IACH,qBAFU,YAAY,CAEyC;IAE/D;;;;;OAKG;IACH,eAFU,UAAU,CAE+B;IAEnD;;;;OAIG;IACH,eAFU,YAAY,CAEmC;IAEzD;;;;OAIG;IACH,eAFU,YAAY,CAEmC;IAEzD;;;;;OAKG;IACH,aAFU,YAAY,CAEiC;IAEvD;;;OAGG;IACH,aAFU,YAAY,CAEiC;IAEvD;;;OAGG;IACH,eAFU,UAAU,CAE8B;IAElD;;;;OAIG;IACH,WAFU,UAAU,CAE0B;IAE9C;;;;OAIG;IACH,aAFU,YAAY,CAE4B;IAElD;;;;;OAKG;IACH,mBAFU,UAAU,CAEkC;IAEtD;;;;OAIG;IACH,aAFU,YAAY,CAEgC;IAEtD;;;OAGG;IACH,iBAFU,YAAY,CAEqC;IAE3D;;;OAGG;IACH,iBAFU,YAAY,CAEqC;IAI3D;;;OAGG;IACH,SAFU,YAAY,CAE6B;IAEnD;;;;OAIG;IACH,cAFU,YAAY,CAE8B;IAEpD;;;OAGG;IACH,cAFU,UAAU,CAEkC;IAEtD;;OAEG;IACH,QAFU,UAAU,CAEwB;IAE5C;;;OAGG;IACH,aAFU,UAAU,CAE6B;IAEjD;;;OAGG;IACH,WAFU,UAAU,CAE2B;IAE/C;;;OAGG;IACH,YAFU,UAAU,CAE4B;IAEhD;;;OAGG;IACH,gBAFU,UAAU,CAEgC;IAEpD;;;;;OAKG;IACH,cAFU,UAAU,CAE6B;IAEjD;;;OAGG;IACH,qBAFU,YAAY,CAEwC;IAE9D;;;OAGG;IACH,oBAFU,YAAY,CAEuC;IAE7D;;;OAGG;IACH,SAFU,YAAY,CAE4B;IAElD;;;OAGG;IACH,WAFU,YAAY,CAE+B;CAE5D"}
|