@woosh/meep-engine 3.41.0 → 3.43.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 +91 -96
- 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/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/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/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.map +1 -1
- package/src/engine/ecs/EntityManager.js +18 -15
- 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/parent/EntityNode.js +3 -3
- 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/binary/BinarySerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/binary/BinarySerializationRegistry.js +3 -2
- 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 +8 -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/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/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/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/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/vgeo_runtime/README.md +5 -4
- 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/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +6 -5
- 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/atmosphere/GPUSky.d.ts +12 -0
- package/src/shade/renderer/atmosphere/GPUSky.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/GPUSky.js +162 -147
- 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/lightmap/bake/shader_lightmap_denoise_sh.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/shader_lightmap_denoise_sh.js +10 -3
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/particles/DESIGN.md +13 -9
- package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_lighting.js +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +3 -2
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +3 -2
- package/src/shade/renderer/scene/GPUSceneContext.d.ts +9 -1
- package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +23 -1
- package/src/shade/renderer/scene/SCENE_DATABASE_SPEC.js +2 -1
- 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/volumetrics/GPUViewVolumetrics.d.ts +4 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +74 -3
- package/src/shade/renderer/volumetrics/NOTES.md +1023 -957
- package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.d.ts +5 -4
- package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.js +5 -4
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.d.ts +1 -1
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.js +1 -1
- package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.d.ts +1 -1
- package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.js +1 -1
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts +41 -0
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.js +112 -0
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +9 -23
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +18 -126
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.d.ts +22 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.js +228 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +0 -53
- 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 +23 -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 +227 -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 +274 -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 +57 -0
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts +43 -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 +268 -0
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts +20 -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 +239 -0
- package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts +153 -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 +874 -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 +29 -9
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +14 -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/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,113 +1,112 @@
|
|
|
1
|
-
import { assert } from "../../../assert.js";
|
|
2
|
-
import { SCRATCH_UINT32_TRAVERSAL_STACK } from "../../../collection/SCRATCH_UINT32_TRAVERSAL_STACK.js";
|
|
3
|
-
import { aabb3_ray_segment_entry_distance } from "../../../geom/3d/aabb/aabb3_ray_segment_entry_distance.js";
|
|
4
|
-
|
|
5
|
-
const stack = SCRATCH_UINT32_TRAVERSAL_STACK;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* @param {number[]} result
|
|
10
|
-
* @param {number} result_offset
|
|
11
|
-
* @param {BinaryUint32BVH} bvh
|
|
12
|
-
* @param {number} origin_x
|
|
13
|
-
* @param {number} origin_y
|
|
14
|
-
* @param {number} origin_z
|
|
15
|
-
* @param {number} direction_x
|
|
16
|
-
* @param {number} direction_y
|
|
17
|
-
* @param {number} direction_z
|
|
18
|
-
* @param {number} max_distance tMax for the ray, can set to Infinity if you don't care.
|
|
19
|
-
* @returns {number}
|
|
20
|
-
*/
|
|
21
|
-
export function bvh32_query_user_data_ray(
|
|
22
|
-
result, result_offset,
|
|
23
|
-
bvh,
|
|
24
|
-
origin_x, origin_y, origin_z,
|
|
25
|
-
direction_x, direction_y, direction_z,
|
|
26
|
-
max_distance,
|
|
27
|
-
) {
|
|
28
|
-
|
|
29
|
-
assert.isNumber(max_distance, "max_distance");
|
|
30
|
-
|
|
31
|
-
let hit_count = 0;
|
|
32
|
-
|
|
33
|
-
const binary_node_count = bvh.binary_node_count;
|
|
34
|
-
|
|
35
|
-
if (binary_node_count <= 0) {
|
|
36
|
-
// this should not happen
|
|
37
|
-
return 0;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
* @type {number}
|
|
43
|
-
*/
|
|
44
|
-
const stack_top = stack.pointer++;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* After performing empirical tests, stack-based depth-first traversal turns out faster than using a queue
|
|
48
|
-
* @type {number}
|
|
49
|
-
*/
|
|
50
|
-
stack[stack_top] = 0;
|
|
51
|
-
|
|
52
|
-
const last_valid_index = binary_node_count + bvh.leaf_node_count;
|
|
53
|
-
|
|
54
|
-
const float32 = bvh.float32;
|
|
55
|
-
const uint32 = bvh.uint32;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
float32[node_address], float32[node_address +
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (t
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const is_intermediate_node = node_index < binary_node_count;
|
|
84
|
-
|
|
85
|
-
if (is_intermediate_node) {
|
|
86
|
-
// is intermediate node
|
|
87
|
-
|
|
88
|
-
const left_index = (node_index << 1) + 1;
|
|
89
|
-
const right_index = left_index + 1;
|
|
90
|
-
|
|
91
|
-
// left node ends up on top of the stack, which aligns with the desired access sequence
|
|
92
|
-
if (right_index < last_valid_index) {
|
|
93
|
-
stack[stack.pointer++] = right_index;
|
|
94
|
-
// micro-optimization, since we know that right node is valid and left appears before that, left is valid too
|
|
95
|
-
stack[stack.pointer++] = left_index;
|
|
96
|
-
} else if (left_index < last_valid_index) {
|
|
97
|
-
stack[stack.pointer++] = left_index;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
1
|
+
import { assert } from "../../../assert.js";
|
|
2
|
+
import { SCRATCH_UINT32_TRAVERSAL_STACK } from "../../../collection/SCRATCH_UINT32_TRAVERSAL_STACK.js";
|
|
3
|
+
import { aabb3_ray_segment_entry_distance } from "../../../geom/3d/aabb/aabb3_ray_segment_entry_distance.js";
|
|
4
|
+
|
|
5
|
+
const stack = SCRATCH_UINT32_TRAVERSAL_STACK;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* @param {number[]} result
|
|
10
|
+
* @param {number} result_offset
|
|
11
|
+
* @param {BinaryUint32BVH} bvh
|
|
12
|
+
* @param {number} origin_x
|
|
13
|
+
* @param {number} origin_y
|
|
14
|
+
* @param {number} origin_z
|
|
15
|
+
* @param {number} direction_x
|
|
16
|
+
* @param {number} direction_y
|
|
17
|
+
* @param {number} direction_z
|
|
18
|
+
* @param {number} max_distance tMax for the ray, can set to Infinity if you don't care.
|
|
19
|
+
* @returns {number}
|
|
20
|
+
*/
|
|
21
|
+
export function bvh32_query_user_data_ray(
|
|
22
|
+
result, result_offset,
|
|
23
|
+
bvh,
|
|
24
|
+
origin_x, origin_y, origin_z,
|
|
25
|
+
direction_x, direction_y, direction_z,
|
|
26
|
+
max_distance,
|
|
27
|
+
) {
|
|
28
|
+
|
|
29
|
+
assert.isNumber(max_distance, "max_distance");
|
|
30
|
+
|
|
31
|
+
let hit_count = 0;
|
|
32
|
+
|
|
33
|
+
const binary_node_count = bvh.binary_node_count;
|
|
34
|
+
|
|
35
|
+
if (binary_node_count <= 0) {
|
|
36
|
+
// this should not happen
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
*
|
|
42
|
+
* @type {number}
|
|
43
|
+
*/
|
|
44
|
+
const stack_top = stack.pointer++;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* After performing empirical tests, stack-based depth-first traversal turns out faster than using a queue
|
|
48
|
+
* @type {number}
|
|
49
|
+
*/
|
|
50
|
+
stack[stack_top] = 0;
|
|
51
|
+
|
|
52
|
+
const last_valid_index = binary_node_count + bvh.leaf_node_count;
|
|
53
|
+
|
|
54
|
+
const float32 = bvh.float32;
|
|
55
|
+
const uint32 = bvh.uint32;
|
|
56
|
+
|
|
57
|
+
const inv_direction_x = 1 / direction_x;
|
|
58
|
+
const inv_direction_y = 1 / direction_y;
|
|
59
|
+
const inv_direction_z = 1 / direction_z;
|
|
60
|
+
|
|
61
|
+
do {
|
|
62
|
+
stack.pointer--;
|
|
63
|
+
|
|
64
|
+
// query_bvh_frustum_from_objects.iteration_count++;
|
|
65
|
+
const node_index = stack[stack.pointer];
|
|
66
|
+
|
|
67
|
+
const node_address = bvh.getNodeAddress(node_index);
|
|
68
|
+
|
|
69
|
+
const t = aabb3_ray_segment_entry_distance(
|
|
70
|
+
float32[node_address], float32[node_address + 1], float32[node_address + 2],
|
|
71
|
+
float32[node_address + 3], float32[node_address + 4], float32[node_address + 5],
|
|
72
|
+
origin_x, origin_y, origin_z,
|
|
73
|
+
inv_direction_x, inv_direction_y, inv_direction_z,
|
|
74
|
+
0,
|
|
75
|
+
max_distance
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
// Infinity means a miss; finite segment endpoints are included.
|
|
79
|
+
if (t === Infinity || t > max_distance) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const is_intermediate_node = node_index < binary_node_count;
|
|
84
|
+
|
|
85
|
+
if (is_intermediate_node) {
|
|
86
|
+
// is intermediate node
|
|
87
|
+
|
|
88
|
+
const left_index = (node_index << 1) + 1;
|
|
89
|
+
const right_index = left_index + 1;
|
|
90
|
+
|
|
91
|
+
// left node ends up on top of the stack, which aligns with the desired access sequence
|
|
92
|
+
if (right_index < last_valid_index) {
|
|
93
|
+
stack[stack.pointer++] = right_index;
|
|
94
|
+
// micro-optimization, since we know that right node is valid and left appears before that, left is valid too
|
|
95
|
+
stack[stack.pointer++] = left_index;
|
|
96
|
+
} else if (left_index < last_valid_index) {
|
|
97
|
+
stack[stack.pointer++] = left_index;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
} else {
|
|
101
|
+
// leaf node
|
|
102
|
+
|
|
103
|
+
// write to output
|
|
104
|
+
result[result_offset + hit_count] = uint32[node_address + 6];
|
|
105
|
+
|
|
106
|
+
hit_count++;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
} while (stack.pointer > stack_top)
|
|
110
|
+
|
|
111
|
+
return hit_count;
|
|
112
|
+
}
|
|
@@ -19,7 +19,7 @@ export function ebvh_nodes_sort_sah_local4(
|
|
|
19
19
|
assert.isNonNegativeInteger(offset, 'offset');
|
|
20
20
|
assert.isNonNegativeInteger(count, 'count');
|
|
21
21
|
|
|
22
|
-
const swap_pair_limit = Math.floor((count -
|
|
22
|
+
const swap_pair_limit = Math.floor((count - distance) / 2);
|
|
23
23
|
const end = offset + swap_pair_limit * 2;
|
|
24
24
|
|
|
25
25
|
let swap_count = 0;
|
|
@@ -91,4 +91,4 @@ export function ebvh_nodes_sort_sah_local4(
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
return swap_count;
|
|
94
|
-
}
|
|
94
|
+
}
|
|
@@ -22,37 +22,37 @@ the cost of a miss in your system (a disk/network miss dwarfs a few hundred ns;
|
|
|
22
22
|
|
|
23
23
|
## Running
|
|
24
24
|
|
|
25
|
-
Each benchmark is a
|
|
26
|
-
|
|
25
|
+
Each benchmark is a self-contained `<name>.spec.js` with a skipped test entry and an explicit manual Node
|
|
26
|
+
entry. The measurement **only ever runs under plain `node`** — never in-process under
|
|
27
27
|
Jest, because Jest's babel transform badly distorts the timings (see *Why not measure under Jest* below).
|
|
28
28
|
The files are stripped from the published npm package by the `*.spec.js` rule.
|
|
29
29
|
|
|
30
|
-
**To get numbers — run it directly with `node`, from
|
|
30
|
+
**To get numbers — run it directly with `node`, from `packages/meep-engine`:**
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
node src/core/cache/wtinylfu/benchmark/<name>.spec.js
|
|
33
|
+
node src/core/cache/wtinylfu/benchmark/<name>.spec.js --benchmark
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
where `<name>` is one of: `hitRate`, `fillDrain`, `readAll`, `continuousPut`, `mixed`, `latency`, `scaling`,
|
|
37
37
|
`memory`.
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
one
|
|
41
|
-
|
|
39
|
+
The files remain `describe.skip` under the test runner. Vitest's `--mode all` includes them in collection;
|
|
40
|
+
un-skipping one makes its test spawn a native Node child and check that the report contains finite
|
|
41
|
+
measurements. Importing a file or invoking it without `--benchmark` performs no workload setup.
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
Options for the manual `node` invocation:
|
|
44
44
|
|
|
45
45
|
- **`--expose-gc`** (a Node flag, goes *before* the script path): lets a benchmark force GC between trials for
|
|
46
46
|
cleaner numbers. Optional for most; **required** for `memory` (it refuses to run without it). *(When run via
|
|
47
47
|
Jest, the child is always spawned with `--expose-gc`.)*
|
|
48
48
|
```bash
|
|
49
|
-
node --expose-gc src/core/cache/wtinylfu/benchmark/fillDrain.spec.js
|
|
49
|
+
node --expose-gc src/core/cache/wtinylfu/benchmark/fillDrain.spec.js --benchmark
|
|
50
50
|
```
|
|
51
51
|
- **`HASH=int`** (an env var): the **isolated-hash toggle** — use integer keys + an identity hash instead of
|
|
52
52
|
string keys + `computeStringHash`, to strip string-hashing cost and see pure-policy overhead. Works on
|
|
53
53
|
**every** benchmark.
|
|
54
54
|
```bash
|
|
55
|
-
HASH=int node --expose-gc src/core/cache/wtinylfu/benchmark/readAll.spec.js
|
|
55
|
+
HASH=int node --expose-gc src/core/cache/wtinylfu/benchmark/readAll.spec.js --benchmark
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
All workloads are **seeded**, so runs are reproducible. Both caches are always built at **matched capacity**
|
|
@@ -69,15 +69,15 @@ run it, read it without chasing imports). Every file follows the same skeleton:
|
|
|
69
69
|
2. CONFIG the knobs: CAPACITY / WARMUP / TRIALS / SEED
|
|
70
70
|
3. SCAFFOLDING inlined: clock, rng, matched-capacity factories, measureInterleaved, any workload
|
|
71
71
|
(top-level — pure definitions, safe when Jest imports the file)
|
|
72
|
-
if (under
|
|
73
|
-
|
|
72
|
+
if (under tests) → skipped native Node child + finite report checks
|
|
73
|
+
if (manual entry with --benchmark) → runBenchmark():
|
|
74
74
|
4. WORKLOAD the setup + the timed body (the "arrange")
|
|
75
75
|
5. MEASURE measureInterleaved([LRU, W-TinyLFU], {...}) (the "act")
|
|
76
76
|
6. REPORT formatting + console.log (the "assert" analog — reports, no pass/fail)
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
The `if (typeof describe === "function")` split
|
|
80
|
-
|
|
79
|
+
The `if (typeof describe === "function")` split keeps measurements in the native child. Workload setup is
|
|
80
|
+
inside `runBenchmark()`, called only by the explicit main-file `--benchmark` entry.
|
|
81
81
|
|
|
82
82
|
A benchmark **reports** numbers; it does not **assert** pass/fail. That's why the measurement always runs
|
|
83
83
|
under plain `node` — the Jest side only launches it and checks the output isn't empty.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RingBuffer.d.ts","sourceRoot":"","sources":["../../../../src/core/collection/RingBuffer.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH;IAmBI;;OAEG;IACH,kBAFW,MAAM,EAkBhB;IArCD;;;OAGG;IACH,MAFU,MAAM,CAEP;IAET;;;OAGG;IACH,MAFU,MAAM,CAEP;IAET;;;OAGG;IACH,OAFU,MAAM,CAEN;IAUN;;;OAGG;IACH,MAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,MAFU,CAAC,EAAE,CAEc;IAG/B;;;OAGG;IACH,iBAFW,MAAM,QAwBhB;IAED;;;OAGG;IACH,WAFY,CAAC,CAKZ;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,CAAC,
|
|
1
|
+
{"version":3,"file":"RingBuffer.d.ts","sourceRoot":"","sources":["../../../../src/core/collection/RingBuffer.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH;IAmBI;;OAEG;IACH,kBAFW,MAAM,EAkBhB;IArCD;;;OAGG;IACH,MAFU,MAAM,CAEP;IAET;;;OAGG;IACH,MAFU,MAAM,CAEP;IAET;;;OAGG;IACH,OAFU,MAAM,CAEN;IAUN;;;OAGG;IACH,MAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,MAFU,CAAC,EAAE,CAEc;IAG/B;;;OAGG;IACH,iBAFW,MAAM,QAwBhB;IAED;;;OAGG;IACH,WAFY,CAAC,CAKZ;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,CAAC,CAgBb;IAED,cAIC;IAED;;;OAGG;IACH,cAFW,CAAC,QAuBX;IAED;;;OAGG;IACH,SAFa,CAAC,GAAC,SAAS,CAcvB;IAED;;;OAGG;IACH,4BAFW,MAAM,QA8BhB;IAED;;;;;OAKG;IACH,2BAJoB,CAAC,KAAE,OAAO,kBAEjB,CAAC,GAAC,SAAS,CAsBvB;IAED;;;;OAIG;IACH,wBAHoB,CAAC,+BAmBpB;IAED;;;;OAIG;IACH,gBAHW,CAAC,GACC,OAAO,CAgBnB;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array_contains_duplicates.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/array_contains_duplicates.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wEAJW,MAAM,cACN,MAAM,GACL,OAAO,
|
|
1
|
+
{"version":3,"file":"array_contains_duplicates.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/array_contains_duplicates.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wEAJW,MAAM,cACN,MAAM,GACL,OAAO,CAwBlB"}
|
|
@@ -19,7 +19,8 @@ export function array_contains_duplicates(
|
|
|
19
19
|
const element = source[k];
|
|
20
20
|
|
|
21
21
|
// look for future occurrences of the same element
|
|
22
|
-
|
|
22
|
+
const match = source.indexOf(element, k + 1);
|
|
23
|
+
if (match !== -1 && match <= end_index) {
|
|
23
24
|
return true;
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array_copy.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/array_copy.js"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,4DALW,MAAM,0CAEN,MAAM,UACN,MAAM,
|
|
1
|
+
{"version":3,"file":"array_copy.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/array_copy.js"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,4DALW,MAAM,0CAEN,MAAM,UACN,MAAM,QA4ChB"}
|
|
@@ -21,6 +21,29 @@ export function array_copy(
|
|
|
21
21
|
assert.isNonNegativeInteger(destination_position, 'destination_position');
|
|
22
22
|
assert.isNonNegativeInteger(length, 'length');
|
|
23
23
|
|
|
24
|
+
if (ArrayBuffer.isView(source)
|
|
25
|
+
&& ArrayBuffer.isView(destination)
|
|
26
|
+
&& source.buffer === destination.buffer
|
|
27
|
+
&& source.BYTES_PER_ELEMENT !== undefined
|
|
28
|
+
&& destination.BYTES_PER_ELEMENT !== undefined) {
|
|
29
|
+
const source_start = source.byteOffset + source_position * source.BYTES_PER_ELEMENT;
|
|
30
|
+
const destination_start = destination.byteOffset + destination_position * destination.BYTES_PER_ELEMENT;
|
|
31
|
+
if (source_start < destination_start + length * destination.BYTES_PER_ELEMENT
|
|
32
|
+
&& destination_start < source_start + length * source.BYTES_PER_ELEMENT) {
|
|
33
|
+
destination.set(source.subarray(source_position, source_position + length), destination_position);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (source === destination
|
|
39
|
+
&& destination_position > source_position
|
|
40
|
+
&& destination_position < source_position + length) {
|
|
41
|
+
for (let k = length - 1; k >= 0; k--) {
|
|
42
|
+
destination[destination_position + k] = source[source_position + k];
|
|
43
|
+
}
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
24
47
|
let i, j, k;
|
|
25
48
|
|
|
26
49
|
for (k = 0; k < length; k++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sparse_typed_array_hash.d.ts","sourceRoot":"","sources":["../../../../../../src/core/collection/array/typed/sparse_typed_array_hash.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,+CANW,WAAW,UACX,MAAM,UACN,MAAM,iBACN,MAAM,GACJ,MAAM,
|
|
1
|
+
{"version":3,"file":"sparse_typed_array_hash.d.ts","sourceRoot":"","sources":["../../../../../../src/core/collection/array/typed/sparse_typed_array_hash.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,+CANW,WAAW,UACX,MAAM,UACN,MAAM,iBACN,MAAM,GACJ,MAAM,CAgBlB"}
|
|
@@ -5,22 +5,23 @@ import { computeStridedArrayHash } from "../computeStridedArrayHash.js";
|
|
|
5
5
|
/**
|
|
6
6
|
*
|
|
7
7
|
* @param {Uint32Array} array
|
|
8
|
-
* @param {number} offset
|
|
9
|
-
* @param {number} length
|
|
8
|
+
* @param {number} offset first index to hash
|
|
9
|
+
* @param {number} length exclusive stopping index
|
|
10
10
|
* @param {number} [sample_limit]
|
|
11
11
|
* @returns {number}
|
|
12
12
|
*/
|
|
13
13
|
export function sparse_typed_array_hash(array, offset, length, sample_limit = 31) {
|
|
14
|
-
//
|
|
15
|
-
const
|
|
14
|
+
// Limit evaluation to the first 1k elements of the selected range.
|
|
15
|
+
const hash_evaluation_span = min2(length - offset, 1024);
|
|
16
|
+
const hash_evaluation_end = offset + hash_evaluation_span;
|
|
16
17
|
|
|
17
|
-
//
|
|
18
|
-
const stride = Math.max(1, Math.ceil(
|
|
18
|
+
// Pick at most sample_limit values from that selected span.
|
|
19
|
+
const stride = Math.max(1, Math.ceil(hash_evaluation_span / sample_limit));
|
|
19
20
|
|
|
20
21
|
// TODO implement fast dedicated float and int paths
|
|
21
22
|
|
|
22
23
|
return computeStridedArrayHash(
|
|
23
|
-
array,
|
|
24
|
+
array, offset, hash_evaluation_end, stride,
|
|
24
25
|
computeHashFloat
|
|
25
26
|
);
|
|
26
|
-
}
|
|
27
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
*
|
|
3
3
|
* @param {Uint16Array|Int16Array} array
|
|
4
|
-
* @param {number} offset
|
|
5
|
-
* @param {number} length
|
|
4
|
+
* @param {number} offset first index to hash
|
|
5
|
+
* @param {number} length exclusive stopping index
|
|
6
6
|
* @return {number}
|
|
7
7
|
*/
|
|
8
8
|
export function uint16_array_hash(array: Uint16Array | Int16Array, offset: number, length: number): number;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
*
|
|
3
3
|
* @param {Uint16Array|Int16Array} array
|
|
4
|
-
* @param {number} offset
|
|
5
|
-
* @param {number} length
|
|
4
|
+
* @param {number} offset first index to hash
|
|
5
|
+
* @param {number} length exclusive stopping index
|
|
6
6
|
* @return {number}
|
|
7
7
|
*/
|
|
8
8
|
export function uint16_array_hash(array, offset, length) {
|
|
@@ -10,7 +10,7 @@ export function uint16_array_hash(array, offset, length) {
|
|
|
10
10
|
|
|
11
11
|
let i = offset;
|
|
12
12
|
|
|
13
|
-
if ((length & 1) !== 0) {
|
|
13
|
+
if (((length - offset) & 1) !== 0) {
|
|
14
14
|
hash = (hash << 5) - hash + array[i++];
|
|
15
15
|
}
|
|
16
16
|
|
|
@@ -26,4 +26,4 @@ export function uint16_array_hash(array, offset, length) {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
return hash;
|
|
29
|
-
}
|
|
29
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
*
|
|
3
3
|
* @param {Uint8Array|Int8Array} array
|
|
4
|
-
* @param {number} offset
|
|
5
|
-
* @param {number} length
|
|
4
|
+
* @param {number} offset first index to hash
|
|
5
|
+
* @param {number} length exclusive stopping index
|
|
6
6
|
* @return {number}
|
|
7
7
|
*/
|
|
8
8
|
export function uint8_array_hash(array: Uint8Array | Int8Array, offset: number, length: number): number;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
*
|
|
3
3
|
* @param {Uint8Array|Int8Array} array
|
|
4
|
-
* @param {number} offset
|
|
5
|
-
* @param {number} length
|
|
4
|
+
* @param {number} offset first index to hash
|
|
5
|
+
* @param {number} length exclusive stopping index
|
|
6
6
|
* @return {number}
|
|
7
7
|
*/
|
|
8
8
|
export function uint8_array_hash(array, offset, length) {
|
|
@@ -10,7 +10,7 @@ export function uint8_array_hash(array, offset, length) {
|
|
|
10
10
|
|
|
11
11
|
let i = offset;
|
|
12
12
|
|
|
13
|
-
const overflow = length & 3;
|
|
13
|
+
const overflow = (length - offset) & 3;
|
|
14
14
|
|
|
15
15
|
for (; i < offset + overflow; i++) {
|
|
16
16
|
hash = (hash << 5) - hash + array[i];
|
|
@@ -33,4 +33,4 @@ export function uint8_array_hash(array, offset, length) {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
return hash;
|
|
36
|
-
}
|
|
36
|
+
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* @param {function(T):number} weight
|
|
6
6
|
* @param {*} [weightContext]
|
|
7
7
|
* @param {number} [length]
|
|
8
|
+
* @description Returns undefined when the selected prefix has no positive weight.
|
|
8
9
|
* @returns {T|undefined}
|
|
9
10
|
*/
|
|
10
11
|
export function weightedRandomFromArray<T>(array: T[], random: Function, weight: (arg0: T) => number, weightContext?: any, length?: number): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weightedRandomFromArray.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/weightedRandomFromArray.js"],"names":[],"mappings":"AAWA
|
|
1
|
+
{"version":3,"file":"weightedRandomFromArray.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/weightedRandomFromArray.js"],"names":[],"mappings":"AAWA;;;;;;;;;GASG;AACH,8FANuB,MAAM,gCAElB,MAAM,KAyChB"}
|
|
@@ -16,6 +16,7 @@ const scratch_weights = [];
|
|
|
16
16
|
* @param {function(T):number} weight
|
|
17
17
|
* @param {*} [weightContext]
|
|
18
18
|
* @param {number} [length]
|
|
19
|
+
* @description Returns undefined when the selected prefix has no positive weight.
|
|
19
20
|
* @returns {T|undefined}
|
|
20
21
|
*/
|
|
21
22
|
export function weightedRandomFromArray(array, random, weight, weightContext, length = array.length) {
|
|
@@ -43,9 +44,16 @@ export function weightedRandomFromArray(array, random, weight, weightContext, le
|
|
|
43
44
|
scratch_weights[i] = weight_total;
|
|
44
45
|
}
|
|
45
46
|
|
|
47
|
+
if (weight_total === 0) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
|
|
46
51
|
const target_weight = random() * weight_total;
|
|
47
52
|
|
|
48
|
-
|
|
53
|
+
let index = binarySearchHighIndex(scratch_weights, target_weight, number_compare_ascending, 0, length - 1);
|
|
54
|
+
while (index < length && scratch_weights[index] <= target_weight) {
|
|
55
|
+
index++;
|
|
56
|
+
}
|
|
49
57
|
|
|
50
58
|
return array[index];
|
|
51
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryHeap.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/heap/BinaryHeap.js"],"names":[],"mappings":";AAEA;;;;;;;;;GASG;AACH;IAaI;;;;OAIG;IACH,6CAHsB,MAAM,EAa3B;IA3BD;;;OAGG;IACH,aAAU;IAEV;;;OAGG;IACH,eAAW;IAWP;;;OAGG;IACH,8BAFuB,MAAM,CAEU;IAI3C;;;OAGG;IACH,iBAkCC;IAED;;;OAGG;IACH,mBAmEC;IAED;;;OAGG;IACH,OAFY,CAAC,
|
|
1
|
+
{"version":3,"file":"BinaryHeap.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/heap/BinaryHeap.js"],"names":[],"mappings":";AAEA;;;;;;;;;GASG;AACH;IAaI;;;;OAIG;IACH,6CAHsB,MAAM,EAa3B;IA3BD;;;OAGG;IACH,aAAU;IAEV;;;OAGG;IACH,eAAW;IAWP;;;OAGG;IACH,8BAFuB,MAAM,CAEU;IAI3C;;;OAGG;IACH,iBAkCC;IAED;;;OAGG;IACH,mBAmEC;IAED;;;OAGG;IACH,OAFY,CAAC,CA8BZ;IAED;;;OAGG;IACH,QAFa,CAAC,GAAC,SAAS,CAIvB;IAED;;;;OAIG;IACH,aAHW,CAAC,GACC,OAAO,CAYnB;IAED;;;OAGG;IACH,iBAFW,MAAM,QAehB;IAED;;OAEG;IACH,cAGC;IAED;;;;OAIG;IACH,eAHW,CAAC,GACC,OAAO,CAKnB;IAED;;;OAGG;IACH,WAFa,OAAO,CAInB;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED;;;;OAIG;IACH,yBAHW,CAAC,GACC,OAAO,CAanB;IAED;;;OAGG;IACH,SAFW,CAAC,QAUX;IAGL;;;;OAIG;IACH,uBAFU,OAAO,CAEgB;CAPhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":"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"}
|
|
@@ -389,7 +389,7 @@ class List {
|
|
|
389
389
|
* @return {boolean}
|
|
390
390
|
*/
|
|
391
391
|
removeOneOf(value) {
|
|
392
|
-
if (typeof value === "object" && typeof value.equals === "function") {
|
|
392
|
+
if (value !== null && typeof value === "object" && typeof value.equals === "function") {
|
|
393
393
|
return this.removeOneIf(conditionEqualsViaMethod, value);
|
|
394
394
|
} else {
|
|
395
395
|
return this.removeOneIf(conditionEqualsStrict, value);
|
|
@@ -973,7 +973,9 @@ class List {
|
|
|
973
973
|
continue;
|
|
974
974
|
}
|
|
975
975
|
|
|
976
|
-
if (
|
|
976
|
+
if (a !== null && b !== null
|
|
977
|
+
&& typeof a === "object" && typeof b === "object"
|
|
978
|
+
&& typeof a.equals === "function" && a.equals(b)) {
|
|
977
979
|
//test via "equals" method
|
|
978
980
|
continue;
|
|
979
981
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HashSet.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/set/HashSet.js"],"names":[],"mappings":"AAKA;;;;GAIG;AACH;IACI;;OAEG;IACH;;;;OAgBC;IAVG;;;;OAIG;IACH,cAIE;IAGN,mBAEC;IAED;;;;OAIG;IACH,WAHW,CAAC,GACC,IAAI,CAMhB;IAED,cAEC;IAED;;;;OAIG;IACH,cAHW,CAAC,GACC,OAAO,CAInB;IAED;;;;OAIG;IACH,WAHW,CAAC,GACC,OAAO,CAInB;IAQD,sCAEC;IAED,wCAEC;IAED,
|
|
1
|
+
{"version":3,"file":"HashSet.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/set/HashSet.js"],"names":[],"mappings":"AAKA;;;;GAIG;AACH;IACI;;OAEG;IACH;;;;OAgBC;IAVG;;;;OAIG;IACH,cAIE;IAGN,mBAEC;IAED;;;;OAIG;IACH,WAHW,CAAC,GACC,IAAI,CAMhB;IAED,cAEC;IAED;;;;OAIG;IACH,cAHW,CAAC,GACC,OAAO,CAInB;IAED;;;;OAIG;IACH,WAHW,CAAC,GACC,OAAO,CAInB;IAQD,sCAEC;IAED,wCAEC;IAED,2CAIC;IAED;;;;OAIG;IACH,WAHW,CAAC,GACC,CAAC,GAAC,SAAS,CAIvB;IAED;;;;OAIG;IACH,yBAHoB,CAAC,QAAE,CAAC,0CAOvB;IAED;;;;OAIG;IACH,cAHW,CAAC,GACA,CAAC,CAWZ;IAtDD,mDAIC;CAmDJ;iCA3HgC,wCAAwC;mCADtC,0CAA0C"}
|