@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
|
@@ -1265,17 +1265,25 @@ export const WGSLLanguageCore = {
|
|
|
1265
1265
|
* silently dropped (WGSL semantics). `coords` length matches the
|
|
1266
1266
|
* texture dimensionality.
|
|
1267
1267
|
*
|
|
1268
|
+
* Four arguments is the `texture_storage_2d_array` form — `(t, coords, array_index, value)` —
|
|
1269
|
+
* where the third argument selects the slice, stored along z as the sampling side reads it.
|
|
1270
|
+
*
|
|
1268
1271
|
* @param {import("./CPUBitmapData.js").CPUBitmapData} t
|
|
1269
1272
|
* @param {Int32Array | Uint32Array | number[] | number} coords
|
|
1270
|
-
* @param {Float32Array | Int32Array | Uint32Array | number[]}
|
|
1273
|
+
* @param {Float32Array | Int32Array | Uint32Array | number[] | number} value_or_index
|
|
1274
|
+
* @param {Float32Array | Int32Array | Uint32Array | number[]} [array_value]
|
|
1271
1275
|
*/
|
|
1272
|
-
textureStore(t, coords,
|
|
1276
|
+
textureStore(t, coords, value_or_index, array_value = undefined) {
|
|
1273
1277
|
assert.defined(t, 'texture');
|
|
1278
|
+
if (array_value !== undefined) {
|
|
1279
|
+
t.write(coords[0] | 0, coords[1] | 0, value_or_index | 0, array_value);
|
|
1280
|
+
return;
|
|
1281
|
+
}
|
|
1274
1282
|
const dim = t.dimensionality;
|
|
1275
1283
|
const x = (dim >= 1 ? (typeof coords === 'number' ? coords : coords[0]) : 0) | 0;
|
|
1276
1284
|
const y = (dim >= 2 ? coords[1] : 0) | 0;
|
|
1277
1285
|
const z = (dim >= 3 ? coords[2] : 0) | 0;
|
|
1278
|
-
t.write(x, y, z,
|
|
1286
|
+
t.write(x, y, z, value_or_index);
|
|
1279
1287
|
},
|
|
1280
1288
|
|
|
1281
1289
|
// CPUBitmapData models one stored mip level.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Inputs that have actually broken {@link polygon2_triangulate}, kept so they can
|
|
3
|
-
* never break it again.
|
|
4
|
-
*
|
|
5
|
-
* This file only ever grows, and only from real failures -- a case someone
|
|
6
|
-
* *imagines* might be hard belongs in the ordinary spec, not here. Every entry
|
|
7
|
-
* records what went wrong when it was added, because that is the part that stops
|
|
8
|
-
* a future change from quietly reintroducing the same class of bug. The practice
|
|
9
|
-
* is borrowed from manifold, whose triangulator carries ~3 MB of recorded failing
|
|
10
|
-
* polygons replayed as tests.
|
|
11
|
-
*
|
|
12
|
-
* `expect_full` says whether the polygon is well-formed enough that the whole of
|
|
13
|
-
* its area must be covered. `false` means the input is genuinely invalid
|
|
14
|
-
* (self-intersecting) and the only requirements are the universal ones: no throw,
|
|
15
|
-
* no hang, no out-of-range index.
|
|
16
|
-
*
|
|
17
|
-
* @author Alex Goldring
|
|
18
|
-
* @copyright Company Named Limited (c) 2026
|
|
19
|
-
*/
|
|
20
|
-
export const POLYGON2_TRIANGULATE_CORPUS: {
|
|
21
|
-
name: string;
|
|
22
|
-
why: string;
|
|
23
|
-
points: number[];
|
|
24
|
-
contour_ends: number[];
|
|
25
|
-
contour_count: number;
|
|
26
|
-
expect_full: boolean;
|
|
27
|
-
}[];
|
|
28
|
-
//# sourceMappingURL=polygon2_triangulate.corpus.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"polygon2_triangulate.corpus.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/polygon/polygon2_triangulate.corpus.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH;;;;;;;IAkEE"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Inputs that have actually broken {@link polygon2_triangulate}, kept so they can
|
|
3
|
-
* never break it again.
|
|
4
|
-
*
|
|
5
|
-
* This file only ever grows, and only from real failures -- a case someone
|
|
6
|
-
* *imagines* might be hard belongs in the ordinary spec, not here. Every entry
|
|
7
|
-
* records what went wrong when it was added, because that is the part that stops
|
|
8
|
-
* a future change from quietly reintroducing the same class of bug. The practice
|
|
9
|
-
* is borrowed from manifold, whose triangulator carries ~3 MB of recorded failing
|
|
10
|
-
* polygons replayed as tests.
|
|
11
|
-
*
|
|
12
|
-
* `expect_full` says whether the polygon is well-formed enough that the whole of
|
|
13
|
-
* its area must be covered. `false` means the input is genuinely invalid
|
|
14
|
-
* (self-intersecting) and the only requirements are the universal ones: no throw,
|
|
15
|
-
* no hang, no out-of-range index.
|
|
16
|
-
*
|
|
17
|
-
* @author Alex Goldring
|
|
18
|
-
* @copyright Company Named Limited (c) 2026
|
|
19
|
-
*/
|
|
20
|
-
export const POLYGON2_TRIANGULATE_CORPUS = [
|
|
21
|
-
{
|
|
22
|
-
name: "unit-offset micro square",
|
|
23
|
-
why: "Winding was decided by the shoelace sum, whose sign here is pure "
|
|
24
|
-
+ "rounding noise: the true area is 1e-18 against ~1e-16 per-term error. "
|
|
25
|
-
+ "The ring came out backwards, every corner looked reflex, and the "
|
|
26
|
-
+ "result was zero triangles. Fixed by deciding winding with one exact "
|
|
27
|
-
+ "orientation predicate at a hull vertex (polygon2_is_counter_clockwise).",
|
|
28
|
-
points: [
|
|
29
|
-
1, 1,
|
|
30
|
-
1 + 1e-9, 1,
|
|
31
|
-
1 + 1e-9, 1 + 1e-9,
|
|
32
|
-
1, 1 + 1e-9,
|
|
33
|
-
],
|
|
34
|
-
contour_ends: [4],
|
|
35
|
-
contour_count: 1,
|
|
36
|
-
expect_full: true,
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: "coarse-grid point soup (fuzz seed 24)",
|
|
40
|
-
why: "Twenty points on a 7x7 integer grid, with duplicates and collinear "
|
|
41
|
-
+ "runs. The ear search exhausted itself, fell through to the "
|
|
42
|
-
+ "cure-local-intersections pass, and that pass walked the "
|
|
43
|
-
+ "collapsed-ring sentinel as if it were a node -- an infinite loop. "
|
|
44
|
-
+ "Fixed by making the recovery pass accept and propagate the sentinel, "
|
|
45
|
-
+ "and by stopping it once the ring holds fewer than three nodes.",
|
|
46
|
-
points: [
|
|
47
|
-
2, 3, 3, 6, 1, 5, 0, 4, 5, 0,
|
|
48
|
-
4, 2, 3, 3, 3, 6, 2, 3, 6, 1,
|
|
49
|
-
4, 4, 2, 6, 3, 2, 6, 4, 1, 1,
|
|
50
|
-
3, 0, 5, 0, 3, 2, 6, 4, 3, 3,
|
|
51
|
-
],
|
|
52
|
-
contour_ends: [20],
|
|
53
|
-
contour_count: 1,
|
|
54
|
-
expect_full: false,
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
name: "two rectangular holes bridged through a shared edge",
|
|
58
|
-
why: "Produced 12 triangles where the Euler bound allows 14, which looked "
|
|
59
|
-
+ "like dropped geometry. It was not: the bridges left collinear corners "
|
|
60
|
-
+ "that were correctly absorbed rather than emitted as zero-area "
|
|
61
|
-
+ "triangles. Kept as the standing reminder that V + 2H - 2 is an upper "
|
|
62
|
-
+ "bound, not an equality -- area conservation is the real invariant.",
|
|
63
|
-
points: [
|
|
64
|
-
0, 0, 20, 0, 20, 10, 0, 10,
|
|
65
|
-
2, 8, 6, 8, 6, 2, 2, 2,
|
|
66
|
-
12, 8, 18, 8, 18, 2, 12, 2,
|
|
67
|
-
],
|
|
68
|
-
contour_ends: [4, 8, 12],
|
|
69
|
-
contour_count: 3,
|
|
70
|
-
expect_full: true,
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
name: "hole touching the outer boundary at a vertex",
|
|
74
|
-
why: "Same class as above -- 6 triangles against a bound of 7. The hole's "
|
|
75
|
-
+ "corner lands exactly on the outer edge, so the bridge is degenerate "
|
|
76
|
-
+ "and one corner becomes collinear. Area is still exact and every input "
|
|
77
|
-
+ "vertex is still used.",
|
|
78
|
-
points: [
|
|
79
|
-
0, 0, 10, 0, 10, 10, 0, 10,
|
|
80
|
-
4, 7, 4, 3, 0, 5,
|
|
81
|
-
],
|
|
82
|
-
contour_ends: [4, 7],
|
|
83
|
-
contour_count: 2,
|
|
84
|
-
expect_full: true,
|
|
85
|
-
},
|
|
86
|
-
];
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
export class IKConstraint {
|
|
2
|
-
/**
|
|
3
|
-
* End bone that is going to be placed
|
|
4
|
-
* @type {String}
|
|
5
|
-
*/
|
|
6
|
-
effector: string;
|
|
7
|
-
/**
|
|
8
|
-
* How far should effector be from the contact, positive values result in effector not reaching the surface, and negative result in penetration
|
|
9
|
-
* @example For a foot effector this would be distance above the ground
|
|
10
|
-
* @type {number}
|
|
11
|
-
*/
|
|
12
|
-
offset: number;
|
|
13
|
-
/**
|
|
14
|
-
* Positive distance from the surface at which IK starts to take effect, low value represents full effect and high value represents where the influence begins
|
|
15
|
-
* @type {NumericInterval}
|
|
16
|
-
*/
|
|
17
|
-
distance: NumericInterval;
|
|
18
|
-
/**
|
|
19
|
-
*
|
|
20
|
-
* @type {number}
|
|
21
|
-
*/
|
|
22
|
-
strength: number;
|
|
23
|
-
/**
|
|
24
|
-
*
|
|
25
|
-
* @type {number}
|
|
26
|
-
*/
|
|
27
|
-
limit: number;
|
|
28
|
-
/**
|
|
29
|
-
* Solver to be used for this constraint
|
|
30
|
-
* @type {string}
|
|
31
|
-
*/
|
|
32
|
-
solver: string;
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
* @param {IKConstraint} other
|
|
36
|
-
*/
|
|
37
|
-
copy(other: IKConstraint): void;
|
|
38
|
-
clone(): IKConstraint;
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
* @param {IKConstraint} other
|
|
42
|
-
* @returns {boolean}
|
|
43
|
-
*/
|
|
44
|
-
equals(other: IKConstraint): boolean;
|
|
45
|
-
/**
|
|
46
|
-
*
|
|
47
|
-
* @return {number}
|
|
48
|
-
*/
|
|
49
|
-
hash(): number;
|
|
50
|
-
}
|
|
51
|
-
import { NumericInterval } from "../../../core/math/interval/NumericInterval.js";
|
|
52
|
-
//# sourceMappingURL=IKConstraint.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IKConstraint.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/ik/IKConstraint.js"],"names":[],"mappings":"AAKA;IAEI;;;OAGG;IACH,iBAAc;IAEd;;;;OAIG;IACH,QAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,UAFU,eAAe,CAEY;IAErC;;;OAGG;IACH,UAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,OAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,QAFU,MAAM,CAEA;IAGhB;;;OAGG;IACH,YAFW,YAAY,QAStB;IAED,sBAMC;IAED;;;;OAIG;IACH,cAHW,YAAY,GACV,OAAO,CASnB;IAED;;;OAGG;IACH,QAFY,MAAM,CAWjB;CACJ;gCA7F+B,gDAAgD"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { combine_hash } from "../../../core/collection/array/combine_hash.js";
|
|
2
|
-
import { NumericInterval } from "../../../core/math/interval/NumericInterval.js";
|
|
3
|
-
import { computeHashFloat } from "../../../core/primitives/numbers/computeHashFloat.js";
|
|
4
|
-
import { computeStringHash } from "../../../core/primitives/strings/computeStringHash.js";
|
|
5
|
-
|
|
6
|
-
export class IKConstraint {
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* End bone that is going to be placed
|
|
10
|
-
* @type {String}
|
|
11
|
-
*/
|
|
12
|
-
effector = "";
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* How far should effector be from the contact, positive values result in effector not reaching the surface, and negative result in penetration
|
|
16
|
-
* @example For a foot effector this would be distance above the ground
|
|
17
|
-
* @type {number}
|
|
18
|
-
*/
|
|
19
|
-
offset = 0;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Positive distance from the surface at which IK starts to take effect, low value represents full effect and high value represents where the influence begins
|
|
23
|
-
* @type {NumericInterval}
|
|
24
|
-
*/
|
|
25
|
-
distance = new NumericInterval(0, 0);
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
*
|
|
29
|
-
* @type {number}
|
|
30
|
-
*/
|
|
31
|
-
strength = 1;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
* @type {number}
|
|
36
|
-
*/
|
|
37
|
-
limit = Math.PI;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Solver to be used for this constraint
|
|
41
|
-
* @type {string}
|
|
42
|
-
*/
|
|
43
|
-
solver = "2BIK";
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
*
|
|
48
|
-
* @param {IKConstraint} other
|
|
49
|
-
*/
|
|
50
|
-
copy(other) {
|
|
51
|
-
this.effector = other.effector;
|
|
52
|
-
this.offset = other.offset;
|
|
53
|
-
this.distance.copy(other.distance);
|
|
54
|
-
this.strength = other.strength;
|
|
55
|
-
this.limit = other.limit;
|
|
56
|
-
this.solver = other.solver;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
clone() {
|
|
60
|
-
const r = new IKConstraint();
|
|
61
|
-
|
|
62
|
-
r.copy(this);
|
|
63
|
-
|
|
64
|
-
return r;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
*
|
|
69
|
-
* @param {IKConstraint} other
|
|
70
|
-
* @returns {boolean}
|
|
71
|
-
*/
|
|
72
|
-
equals(other) {
|
|
73
|
-
return this.effector === other.effector
|
|
74
|
-
&& this.offset === other.offset
|
|
75
|
-
&& this.distance.equals(other.distance)
|
|
76
|
-
&& this.strength === other.strength
|
|
77
|
-
&& this.limit === other.limit
|
|
78
|
-
&& this.solver === other.solver;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
*
|
|
83
|
-
* @return {number}
|
|
84
|
-
*/
|
|
85
|
-
hash() {
|
|
86
|
-
return combine_hash(
|
|
87
|
-
computeStringHash(this.effector),
|
|
88
|
-
computeHashFloat(this.offset),
|
|
89
|
-
this.distance.hash(),
|
|
90
|
-
computeHashFloat(this.strength),
|
|
91
|
-
computeHashFloat(this.limit),
|
|
92
|
-
computeStringHash(this.solver)
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
export class IKProblem {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @type {IKConstraint}
|
|
5
|
-
*/
|
|
6
|
-
constraint: IKConstraint;
|
|
7
|
-
/**
|
|
8
|
-
* Where the hierarchy lives. Bones are entities, so the chain is walked here rather than on a
|
|
9
|
-
* skeleton object.
|
|
10
|
-
*
|
|
11
|
-
* @type {EntityComponentDataset}
|
|
12
|
-
*/
|
|
13
|
-
dataset: EntityComponentDataset;
|
|
14
|
-
/**
|
|
15
|
-
* The bone being placed. Its ancestors are the rest of the chain, reached through
|
|
16
|
-
* {@link transform_attachment_parent_of}.
|
|
17
|
-
*
|
|
18
|
-
* @type {number}
|
|
19
|
-
*/
|
|
20
|
-
effector: number;
|
|
21
|
-
/**
|
|
22
|
-
*
|
|
23
|
-
* @type {Terrain}
|
|
24
|
-
*/
|
|
25
|
-
terrain: Terrain;
|
|
26
|
-
/**
|
|
27
|
-
* The clips playing on the constrained entity's model, with their times and weights: what a
|
|
28
|
-
* chain under a GPU-composed ancestor is evaluated against. Empty for a model nothing plays.
|
|
29
|
-
*
|
|
30
|
-
* @type {PosePlayback[]}
|
|
31
|
-
*/
|
|
32
|
-
playbacks: PosePlayback[];
|
|
33
|
-
/**
|
|
34
|
-
* The system's per-tick evaluation cache, shared by every problem of the tick; null where a
|
|
35
|
-
* chain is evaluated on its own.
|
|
36
|
-
*
|
|
37
|
-
* @type {T64WorldCache|null}
|
|
38
|
-
*/
|
|
39
|
-
cache: T64WorldCache | null;
|
|
40
|
-
}
|
|
41
|
-
export namespace IKProblem {
|
|
42
|
-
let pool: ObjectPoolFactory<IKProblem>;
|
|
43
|
-
}
|
|
44
|
-
import { ObjectPoolFactory } from "../../../core/model/object/ObjectPoolFactory.js";
|
|
45
|
-
//# sourceMappingURL=IKProblem.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IKProblem.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/ik/IKProblem.js"],"names":[],"mappings":"AAGA;IAEI;;;OAGG;IACH,yBAAkB;IAElB;;;;;OAKG;IACH,gCAAe;IAEf;;;;;OAKG;IACH,UAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,iBAAe;IAEf;;;;;OAKG;IACH,WAFU,cAAc,CAET;IAEf;;;;;OAKG;IACH,OAFU,gBAAc,IAAI,CAEf;CAEhB;;cAIS,kBAAkB,SAAS,CAAC;;kCApDJ,iDAAiD"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { noop } from "../../../core/function/noop.js";
|
|
2
|
-
import { ObjectPoolFactory } from "../../../core/model/object/ObjectPoolFactory.js";
|
|
3
|
-
|
|
4
|
-
export class IKProblem {
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
8
|
-
* @type {IKConstraint}
|
|
9
|
-
*/
|
|
10
|
-
constraint = null;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Where the hierarchy lives. Bones are entities, so the chain is walked here rather than on a
|
|
14
|
-
* skeleton object.
|
|
15
|
-
*
|
|
16
|
-
* @type {EntityComponentDataset}
|
|
17
|
-
*/
|
|
18
|
-
dataset = null;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* The bone being placed. Its ancestors are the rest of the chain, reached through
|
|
22
|
-
* {@link transform_attachment_parent_of}.
|
|
23
|
-
*
|
|
24
|
-
* @type {number}
|
|
25
|
-
*/
|
|
26
|
-
effector = -1;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
* @type {Terrain}
|
|
31
|
-
*/
|
|
32
|
-
terrain = null;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* The clips playing on the constrained entity's model, with their times and weights: what a
|
|
36
|
-
* chain under a GPU-composed ancestor is evaluated against. Empty for a model nothing plays.
|
|
37
|
-
*
|
|
38
|
-
* @type {PosePlayback[]}
|
|
39
|
-
*/
|
|
40
|
-
playbacks = [];
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* The system's per-tick evaluation cache, shared by every problem of the tick; null where a
|
|
44
|
-
* chain is evaluated on its own.
|
|
45
|
-
*
|
|
46
|
-
* @type {T64WorldCache|null}
|
|
47
|
-
*/
|
|
48
|
-
cache = null;
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
*
|
|
54
|
-
* @type {ObjectPoolFactory<IKProblem>}
|
|
55
|
-
*/
|
|
56
|
-
IKProblem.pool = new ObjectPoolFactory(() => {
|
|
57
|
-
return new IKProblem();
|
|
58
|
-
}, noop, noop);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IKSolver.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/ik/IKSolver.js"],"names":[],"mappings":"AAAA;IACI;;;OAGG;IACH,gCAEC;CACJ"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
export class InverseKinematics {
|
|
2
|
-
/**
|
|
3
|
-
* @readonly
|
|
4
|
-
* @type {IKConstraint[]}
|
|
5
|
-
*/
|
|
6
|
-
readonly constraints: IKConstraint[];
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* @param {InverseKinematics} other
|
|
10
|
-
*/
|
|
11
|
-
copy(other: InverseKinematics): void;
|
|
12
|
-
clone(): InverseKinematics;
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* @param {Object} options
|
|
16
|
-
* @param {String} options.effector
|
|
17
|
-
* @param {number} options.offset
|
|
18
|
-
* @param {number} options.distanceMin
|
|
19
|
-
* @param {number} options.distanceMax
|
|
20
|
-
* @param {number} options.strength
|
|
21
|
-
* @param {number} options.limit
|
|
22
|
-
* @param {String} options.solver
|
|
23
|
-
*/
|
|
24
|
-
add({ effector, offset, distanceMin, distanceMax, strength, limit, solver }: {
|
|
25
|
-
effector: string;
|
|
26
|
-
offset: number;
|
|
27
|
-
distanceMin: number;
|
|
28
|
-
distanceMax: number;
|
|
29
|
-
strength: number;
|
|
30
|
-
limit: number;
|
|
31
|
-
solver: string;
|
|
32
|
-
}): void;
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
* @param {InverseKinematics} other
|
|
36
|
-
* @returns {boolean}
|
|
37
|
-
*/
|
|
38
|
-
equals(other: InverseKinematics): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* @returns {number}
|
|
41
|
-
*/
|
|
42
|
-
hash(): number;
|
|
43
|
-
}
|
|
44
|
-
export namespace InverseKinematics {
|
|
45
|
-
let typeName: string;
|
|
46
|
-
}
|
|
47
|
-
import { IKConstraint } from "./IKConstraint.js";
|
|
48
|
-
//# sourceMappingURL=InverseKinematics.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InverseKinematics.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/ik/InverseKinematics.js"],"names":[],"mappings":"AAGA;IAEI;;;OAGG;IACH,sBAFU,YAAY,EAAE,CAEP;IAEjB;;;OAGG;IACH,YAFW,iBAAiB,QAe3B;IAED,2BAMC;IAED;;;;;;;;;;OAUG;IACH;QAR2B,QAAQ;QACR,MAAM,EAAtB,MAAM;QACU,WAAW,EAA3B,MAAM;QACU,WAAW,EAA3B,MAAM;QACU,QAAQ,EAAxB,MAAM;QACU,KAAK,EAArB,MAAM;QACU,MAAM;aAqBhC;IAED;;;;OAIG;IACH,cAHW,iBAAiB,GACf,OAAO,CAsBnB;IAED;;OAEG;IACH,QAFa,MAAM,CAgBlB;CACJ;;;;6BAnH4B,mBAAmB"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { IKConstraint } from "./IKConstraint.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export class InverseKinematics {
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @readonly
|
|
8
|
-
* @type {IKConstraint[]}
|
|
9
|
-
*/
|
|
10
|
-
constraints = [];
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* @param {InverseKinematics} other
|
|
15
|
-
*/
|
|
16
|
-
copy(other) {
|
|
17
|
-
this.constraints.splice(0, this.constraints.length);
|
|
18
|
-
|
|
19
|
-
const other_constraints = other.constraints;
|
|
20
|
-
const n = other_constraints.length;
|
|
21
|
-
|
|
22
|
-
for (let i = 0; i < n; i++) {
|
|
23
|
-
const constraint = other_constraints[i];
|
|
24
|
-
|
|
25
|
-
const constraintClone = constraint.clone();
|
|
26
|
-
|
|
27
|
-
this.constraints.push(constraintClone);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
clone() {
|
|
32
|
-
const r = new InverseKinematics();
|
|
33
|
-
|
|
34
|
-
r.copy(this);
|
|
35
|
-
|
|
36
|
-
return r;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
* @param {Object} options
|
|
42
|
-
* @param {String} options.effector
|
|
43
|
-
* @param {number} options.offset
|
|
44
|
-
* @param {number} options.distanceMin
|
|
45
|
-
* @param {number} options.distanceMax
|
|
46
|
-
* @param {number} options.strength
|
|
47
|
-
* @param {number} options.limit
|
|
48
|
-
* @param {String} options.solver
|
|
49
|
-
*/
|
|
50
|
-
add({
|
|
51
|
-
effector,
|
|
52
|
-
offset = 0,
|
|
53
|
-
distanceMin = 0,
|
|
54
|
-
distanceMax = 0.1,
|
|
55
|
-
strength = 1,
|
|
56
|
-
limit = Math.PI * 0.9,
|
|
57
|
-
solver = "2BIK"
|
|
58
|
-
}) {
|
|
59
|
-
const c = new IKConstraint();
|
|
60
|
-
|
|
61
|
-
c.effector = effector;
|
|
62
|
-
c.offset = offset;
|
|
63
|
-
c.strength = strength;
|
|
64
|
-
c.distance.set(distanceMin, distanceMax);
|
|
65
|
-
c.solver = solver;
|
|
66
|
-
c.limit = limit;
|
|
67
|
-
|
|
68
|
-
this.constraints.push(c);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
*
|
|
73
|
-
* @param {InverseKinematics} other
|
|
74
|
-
* @returns {boolean}
|
|
75
|
-
*/
|
|
76
|
-
equals(other) {
|
|
77
|
-
const cs0 = this.constraints;
|
|
78
|
-
const cs1 = other.constraints;
|
|
79
|
-
|
|
80
|
-
const n0 = cs0.length;
|
|
81
|
-
const n1 = cs1.length;
|
|
82
|
-
|
|
83
|
-
if (n0 !== n1) {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
for (let i = 0; i < n0; i++) {
|
|
88
|
-
const c0 = cs0[i];
|
|
89
|
-
const c1 = cs1[i];
|
|
90
|
-
if (!c0.equals(c1)) {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return true;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* @returns {number}
|
|
100
|
-
*/
|
|
101
|
-
hash() {
|
|
102
|
-
|
|
103
|
-
let hash = 0;
|
|
104
|
-
const constraints = this.constraints;
|
|
105
|
-
const length = constraints.length;
|
|
106
|
-
|
|
107
|
-
for (let i = 0; i < length; i++) {
|
|
108
|
-
const constraint = constraints[i];
|
|
109
|
-
const singleValue = constraint.hash();
|
|
110
|
-
hash = ((hash << 5) - hash) + singleValue;
|
|
111
|
-
hash |= 0; // Convert to 32bit integer
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
return hash;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
InverseKinematics.typeName = "InverseKinematics";
|
|
119
|
-
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export class InverseKinematicsSerializationAdapter extends BinaryClassSerializationAdapter<any> {
|
|
2
|
-
constructor();
|
|
3
|
-
klass: typeof InverseKinematics;
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
6
|
-
* @param {BinaryBuffer} buffer
|
|
7
|
-
* @param {InverseKinematics} value
|
|
8
|
-
*/
|
|
9
|
-
serialize(buffer: BinaryBuffer, value: InverseKinematics): void;
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
* @param {BinaryBuffer} buffer
|
|
13
|
-
* @param {InverseKinematics} value
|
|
14
|
-
*/
|
|
15
|
-
deserialize(buffer: BinaryBuffer, value: InverseKinematics): void;
|
|
16
|
-
}
|
|
17
|
-
import { BinaryClassSerializationAdapter } from "../storage/binary/BinaryClassSerializationAdapter.js";
|
|
18
|
-
import { InverseKinematics } from "./InverseKinematics.js";
|
|
19
|
-
//# sourceMappingURL=InverseKinematicsSerializationAdapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InverseKinematicsSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/ik/InverseKinematicsSerializationAdapter.js"],"names":[],"mappings":"AAIA;;IAEI,gCAA0B;IAG1B;;;;OAIG;IACH,uCAFW,iBAAiB,QAqB3B;IAED;;;;OAIG;IACH,yCAFW,iBAAiB,QAgC3B;CACJ;gDAvE+C,sDAAsD;kCAEpE,wBAAwB"}
|