@woosh/meep-engine 3.41.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/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/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/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/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/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/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
|
@@ -80,6 +80,8 @@ import {
|
|
|
80
80
|
HighlightSerializationUpgrader_0_1
|
|
81
81
|
} from "../../graphics/ecs/highlight/HighlightSerializationUpgrader_0_1.js";
|
|
82
82
|
import { LightSerializationAdapter } from "../../graphics/ecs/light/LightSerializationAdapter.js";
|
|
83
|
+
import { Light } from "../../graphics/ecs/light/Light.js";
|
|
84
|
+
import { LightSerializationUpgrader_0_1 } from "../../graphics/ecs/light/LightSerializationUpgrader_0_1.js";
|
|
83
85
|
import {
|
|
84
86
|
SGMeshSerializationAdapter
|
|
85
87
|
} from "../../graphics/ecs/mesh-v2/aggregate/serialization/SGMeshSerializationAdapter.js";
|
|
@@ -89,8 +91,11 @@ import { WaterSerializationUpgrader_0_1 } from "../../graphics/ecs/water/WaterSe
|
|
|
89
91
|
import { WaterSerializationUpgrader_1_2 } from "../../graphics/ecs/water/WaterSerializationUpgrader_1_2.js";
|
|
90
92
|
import { WaterSerializationUpgrader_2_3 } from "../../graphics/ecs/water/WaterSerializationUpgrader_2_3.js";
|
|
91
93
|
import { WaterSerializationUpgrader_3_4 } from "../../graphics/ecs/water/WaterSerializationUpgrader_3_4.js";
|
|
94
|
+
import { WaterSerializationUpgrader_4_5 } from "../../graphics/ecs/water/WaterSerializationUpgrader_4_5.js";
|
|
92
95
|
import { MeshletGeometrySerializationAdapter } from "../../../shade/renderer/geometry/MeshletGeometrySerializationAdapter.js";
|
|
93
96
|
import { WaterWavesSerializationAdapter } from "../../graphics/ecs/water/WaterWavesSerializationAdapter.js";
|
|
97
|
+
import { WaterWavesSerializationUpgrader_0_1 } from "../../graphics/ecs/water/WaterWavesSerializationUpgrader_0_1.js";
|
|
98
|
+
import WaterWaves from "../../graphics/ecs/water/WaterWaves.js";
|
|
94
99
|
import { GridPosition2Transform } from "../../grid/grid2transform/GridPosition2Transform.js";
|
|
95
100
|
import {
|
|
96
101
|
GridPosition2TransformSerializationAdapter
|
|
@@ -271,6 +276,7 @@ export function populateEngineSerializationRegistry(registry) {
|
|
|
271
276
|
registry.registerUpgrader(FogOfWar.typeName, new FogOfWarSerializationUpdater_0_1());
|
|
272
277
|
|
|
273
278
|
registry.registerUpgrader(Camera.typeName, new CameraSerializationUpgrader_0_1());
|
|
279
|
+
registry.registerUpgrader(Light.typeName, new LightSerializationUpgrader_0_1());
|
|
274
280
|
|
|
275
281
|
registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_0_1());
|
|
276
282
|
registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_1_2());
|
|
@@ -288,6 +294,8 @@ export function populateEngineSerializationRegistry(registry) {
|
|
|
288
294
|
registry.registerUpgrader(Water.typeName, new WaterSerializationUpgrader_1_2());
|
|
289
295
|
registry.registerUpgrader(Water.typeName, new WaterSerializationUpgrader_2_3());
|
|
290
296
|
registry.registerUpgrader(Water.typeName, new WaterSerializationUpgrader_3_4());
|
|
297
|
+
registry.registerUpgrader(Water.typeName, new WaterSerializationUpgrader_4_5());
|
|
298
|
+
registry.registerUpgrader(WaterWaves.typeName, new WaterWavesSerializationUpgrader_0_1());
|
|
291
299
|
|
|
292
300
|
registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_0_1());
|
|
293
301
|
registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_1_2());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClingToTerrainSystem.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ClingToTerrainSystem.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js"],"names":[],"mappings":"AA+MA;;;;;;;GAOG;AACH,wCANW,UAAU,aACV,OAAO,gBACP,MAAM,yCA4ChB;;uBA5PsB,wCAAwC;oBAE3C,qCAAqC;AAyCzD;;IAGI,6DAA6C;IAG7C,mHAGE;IAEF;;;OAGG;IACH,aAFU,MAAM,MAAM,CAAC,CAEG;IAE1B,YAAU;IAEV;;;OAGG;IACH,kBAFU,MAAM,CAEwB;IAExC;;;OAGG;IACH,sBAFW,MAAM,QAOhB;IAED;;;;;OAKG;IACH,YAHW,cAAc,aADd,WAAW,YAEX,MAAM,QA0BhB;IAED;;;;;OAKG;IACH,cAHW,cAAc,aADd,WAAW,YAEX,MAAM,QAgBhB;IAED,6BAiDC;CACJ;uBA/KsB,oBAAoB;4BACf,mCAAmC;2BAIpC,qBAAqB;4CANJ,0DAA0D;oBAIlF,eAAe;sBAbb,+CAA+C"}
|
|
@@ -103,7 +103,8 @@ class ClingToTerrainSystem extends System {
|
|
|
103
103
|
transform,
|
|
104
104
|
component: cling,
|
|
105
105
|
ecd,
|
|
106
|
-
entity: entityId
|
|
106
|
+
entity: entityId,
|
|
107
|
+
hasProcessedSurface: false
|
|
107
108
|
};
|
|
108
109
|
|
|
109
110
|
ecd.addEntityEventListener(entityId, TRANSFORM64_EVENT_CHANGE, update);
|
|
@@ -368,7 +369,8 @@ function doCling(el, terrain, timeDelta) {
|
|
|
368
369
|
t64_read_rotation(scratch_rotation, t);
|
|
369
370
|
|
|
370
371
|
if (
|
|
371
|
-
|
|
372
|
+
el.hasProcessedSurface
|
|
373
|
+
&& cling.__lastPosition.roughlyEquals(scratch_position, 0.001)
|
|
372
374
|
&& cling.__lastRotation.roughlyEquals(scratch_rotation, 0.0001)
|
|
373
375
|
) {
|
|
374
376
|
//do nothing, cached position matches with existing position
|
|
@@ -385,6 +387,7 @@ function doCling(el, terrain, timeDelta) {
|
|
|
385
387
|
}
|
|
386
388
|
|
|
387
389
|
processRaycastHit(temp_sp.position, t, temp_sp.normal, cling, timeDelta, el);
|
|
390
|
+
el.hasProcessedSurface = true;
|
|
388
391
|
|
|
389
392
|
// The pose now matches the terrain. If `processRaycastHit` moved anything it announced the
|
|
390
393
|
// change, and that announcement re-queues the entity through the system's own listener; if it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerrainLayers.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/terrain/ecs/layers/TerrainLayers.js"],"names":[],"mappings":"AAkGA;IACI;;;OAGG;IACH,QAFU,KAAK,YAAY,CAAC,CAER;IAEpB;;;OAGG;IACH,YAFU,OAAO,CAEgD;IAG7D;;;;;;;;OAQG;IACH,SAFU,cAAc,CAEuB;IAG/C;;;;;OAKG;IACH,QAFU,SAAS,CAEsB;IAG7C;;;;;;MAKC;IAED;;;aAGC;IAED;;;;OAIG;IACH,gCAHW,MAAM,iBACN,MAAM,QA6BhB;IAED;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"TerrainLayers.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/terrain/ecs/layers/TerrainLayers.js"],"names":[],"mappings":"AAkGA;IACI;;;OAGG;IACH,QAFU,KAAK,YAAY,CAAC,CAER;IAEpB;;;OAGG;IACH,YAFU,OAAO,CAEgD;IAG7D;;;;;;;;OAQG;IACH,SAFU,cAAc,CAEuB;IAG/C;;;;;OAKG;IACH,QAFU,SAAS,CAEsB;IAG7C;;;;;;MAKC;IAED;;;aAGC;IAED;;;;OAIG;IACH,gCAHW,MAAM,iBACN,MAAM,QA6BhB;IAED;;;;OAIG;IACH,2GA4BC;IAED,sCAIC;IAED;;;;OAIG;IACH,WAHW,MAAM,GACL,YAAY,CAIvB;IAED;;;;OAIG;IACH,oCAHW,uBAAuB,GACrB,MAAM,CAqBlB;IAED;;;;OAIG;IACH,kCAHW,MAAM,GACJ,MAAM,CAMlB;IAED;;;OAGG;IACH,SAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,gBAHW,YAAY,GACV,MAAM,CAWlB;IAED;;;;OAIG;IACH,mBAHW,YAAY,GACX,OAAO,CAIlB;IAED;;;;;;OAMG;IACH,0CAqCC;IAED;;;OAGG;IACH,iCAFW,MAAM,QA6BhB;IAED,cAEC;IAGD,qBAuCC;CACJ;sCAnZY,OAAO,4DAA4D,EAAE,uBAAuB;;iBAjBxF,6CAA6C;6BAcjC,mBAAmB;oBAb5B,qCAAqC;+BAM1B,wDAAwD;0BAD7D,mDAAmD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplatMapping.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/terrain/ecs/splat/SplatMapping.js"],"names":[],"mappings":"AAYA;;GAEG;AAGH;;GAEG;AACH;IACI;;;OAGG;IACH,OAFU,MAAM,CAEN;IAGN;;;OAGG;IACH,MAFU,OAAO,CAEY;IAO7B;;;OAGG;IACH,SAFU,cAAc,CAEgC;IAG5D;;;;;;;MAQC;IAED;;;;;;;aA6BC;IAED;;;;;OAKG;IACH,8BAJW,SAAS,SACT,MAAM,YACN,MAAM,QAkDhB;IAED;;;;;OAKG;IACH,gCAJW,SAAS,SACT,MAAM,YACN,MAAM,QA2BhB;IAED;;;;;;;OAOG;IACH,wBANW,UAAU,gBACV,MAAM,gBACN,MAAM,eACN,MAAM,gBACN,MAAM,
|
|
1
|
+
{"version":3,"file":"SplatMapping.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/terrain/ecs/splat/SplatMapping.js"],"names":[],"mappings":"AAYA;;GAEG;AAGH;;GAEG;AACH;IACI;;;OAGG;IACH,OAFU,MAAM,CAEN;IAGN;;;OAGG;IACH,MAFU,OAAO,CAEY;IAO7B;;;OAGG;IACH,SAFU,cAAc,CAEgC;IAG5D;;;;;;;MAQC;IAED;;;;;;;aA6BC;IAED;;;;;OAKG;IACH,8BAJW,SAAS,SACT,MAAM,YACN,MAAM,QAkDhB;IAED;;;;;OAKG;IACH,gCAJW,SAAS,SACT,MAAM,YACN,MAAM,QA2BhB;IAED;;;;;;;OAOG;IACH,wBANW,UAAU,gBACV,MAAM,gBACN,MAAM,eACN,MAAM,gBACN,MAAM,QA4ChB;IAED;;;;;;;OAOG;IACH,4BANW,UAAU,WACV,MAAM,WACN,MAAM,SACN,MAAM,UACN,MAAM,QAuChB;IAED;;;;;;OAMG;IACH,gBALW,MAAM,KACN,MAAM,iBACN,MAAM,GACJ,MAAM,CAKlB;IAED;;;;OAIG;IACH,6BAHW,MAAM,GACJ,SAAS,CAcrB;IAED;;OAEG;IACH,iDAEC;IAED;;;OAGG;IACH,mDAEC;IAED;;;OAGG;IACH,iCAEC;IAED;;;;OAIG;IACH,gCAHW,UAAU,GACR,IAAI,CAmDhB;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,OAAO,CAgCnB;IAED;;;;OAIG;IACH,8BAHW,MAAM,SACN,MAAM,QAqBhB;IAED,uBAiBC;IAED;;;;;;OAMG;IACH,cALW,MAAM,UACN,MAAM,SACN,MAAM,cACN,OAAO,QAwDjB;CACJ;mBApgBY,OAAO,0CAA0C,EAAE,IAAI;oBAThD,qCAAqC;+BAM1B,wDAAwD;0BAD7D,mDAAmD"}
|
|
@@ -295,7 +295,7 @@ export class TerrainOverlay {
|
|
|
295
295
|
const scaled_source = Sampler2D.uint8(4, dWidth, dHeight);
|
|
296
296
|
sampler2d_scale(source, scaled_source);
|
|
297
297
|
|
|
298
|
-
sampler2d_paint(this, scaled_source, 0, 0, dx, dy, dWidth, dHeight);
|
|
298
|
+
sampler2d_paint(this.sampler, scaled_source, 0, 0, dx, dy, dWidth, dHeight);
|
|
299
299
|
|
|
300
300
|
}
|
|
301
301
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerrainTile.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/tiles/TerrainTile.js"],"names":[],"mappings":";AAwBA;;GAEG;AACH;IACI,sBAA6B;IAC7B,eAA0B;IAC1B,cAAyB;IACzB,kBAAyB;IACzB,4BAAoC;IAUpC;;;;;;;;;;;OAWG;IACH,UAFU,YAAY,GAAC,IAAI,CAEX;IAEhB;;OAEG;IACH,SAFU,YAAY,GAAC,IAAI,CAEZ;IAEf;;OAEG;IACH,KAFU,YAAY,GAAC,IAAI,CAEhB;IAEX;;OAEG;IACH,SAFU,WAAW,GAAC,WAAW,GAAC,IAAI,CAEvB;IAEf;;;OAGG;IACH,WAFU,OAAO,CAEA;IAEjB;;;OAGG;IACH,cAFU,SAAS,CAEY;IAE/B;;;OAGG;IACH,KAFU,eAAe,CAEd;IAEX;;;OAGG;IACH,SAFU,OAAO,CAED;IAChB;;;OAGG;IACH,mBAFU,OAAO,CAES;IAC1B,uBAAmB;IAEnB;;;;;;;;;OASG;IACH,eAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,aAAuB;IACvB,oBAA2B;IAE3B;;;;OAIG;IACH,kBAWE;IAEF;;;;;OAKG;IACH,+BAAiG;IAEjG;;;OAGG;IACH,SAFU,MAAM,CAEJ;IAUZ;;;OAGG;IACH,gCAGC;IAfD;;;OAGG;IACH,8BAEC;IAWD;;;;;;;;;;OAUG;IACH,yBATW,aAAa,WACb,MAAM,WACN,MAAM,WACN,MAAM,cACN,MAAM,cACN,MAAM,cACN,MAAM,GACL,OAAO,
|
|
1
|
+
{"version":3,"file":"TerrainTile.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/tiles/TerrainTile.js"],"names":[],"mappings":";AAwBA;;GAEG;AACH;IACI,sBAA6B;IAC7B,eAA0B;IAC1B,cAAyB;IACzB,kBAAyB;IACzB,4BAAoC;IAUpC;;;;;;;;;;;OAWG;IACH,UAFU,YAAY,GAAC,IAAI,CAEX;IAEhB;;OAEG;IACH,SAFU,YAAY,GAAC,IAAI,CAEZ;IAEf;;OAEG;IACH,KAFU,YAAY,GAAC,IAAI,CAEhB;IAEX;;OAEG;IACH,SAFU,WAAW,GAAC,WAAW,GAAC,IAAI,CAEvB;IAEf;;;OAGG;IACH,WAFU,OAAO,CAEA;IAEjB;;;OAGG;IACH,cAFU,SAAS,CAEY;IAE/B;;;OAGG;IACH,KAFU,eAAe,CAEd;IAEX;;;OAGG;IACH,SAFU,OAAO,CAED;IAChB;;;OAGG;IACH,mBAFU,OAAO,CAES;IAC1B,uBAAmB;IAEnB;;;;;;;;;OASG;IACH,eAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,aAAuB;IACvB,oBAA2B;IAE3B;;;;OAIG;IACH,kBAWE;IAEF;;;;;OAKG;IACH,+BAAiG;IAEjG;;;OAGG;IACH,SAFU,MAAM,CAEJ;IAUZ;;;OAGG;IACH,gCAGC;IAfD;;;OAGG;IACH,8BAEC;IAWD;;;;;;;;;;OAUG;IACH,yBATW,aAAa,WACb,MAAM,WACN,MAAM,WACN,MAAM,cACN,MAAM,cACN,MAAM,cACN,MAAM,GACL,OAAO,CA0DlB;IAED,+CAKC;IAED,8CAOC;IAED;;;;;;;;;;OAUG;IACH,mBATW,WAAW,GAAC,SAAS,UACrB,WAAW,GAAC,SAAS,QACrB,WAAW,GAAC,SAAS,SACrB,WAAW,GAAC,SAAS,WACrB,WAAW,GAAC,SAAS,YACrB,WAAW,GAAC,SAAS,cACrB,WAAW,GAAC,SAAS,eACrB,WAAW,GAAC,SAAS,QA4M/B;IAED,2BAoDC;IAED;;;;OAIG;IACH,mCAHW,MAAM,cACN,MAAM,QAIhB;IAED,gBAoBC;IA6BD;;;;;OAKG;IACH,gBAFW;QAAC,QAAQ,EAAE;YAAC,QAAQ,EAAE,YAAY,CAAC;YAAC,OAAO,EAAE,YAAY,CAAC;YAAC,GAAG,EAAE,YAAY,CAAC;YAAC,OAAO,EAAE,WAAW,GAAC,WAAW,CAAA;SAAC,CAAC;QAAC,GAAG,CAAC,EAAC;YAAC,UAAU,EAAC,MAAM,CAAC;YAAC,IAAI,EAAC,WAAW,CAAA;SAAC,CAAA;KAAC,QA0BtK;;CACJ;oBAzlBmB,kCAAkC;4BAG1B,2CAA2C;0BAZ7C,yCAAyC;gCADnC,mDAAmD;mBAGhE,0CAA0C;8BAM/B,2CAA2C"}
|
|
@@ -215,7 +215,19 @@ class TerrainTile {
|
|
|
215
215
|
);
|
|
216
216
|
|
|
217
217
|
if (hit_found) {
|
|
218
|
-
result.applyMatrix4(m4);
|
|
218
|
+
result.position.applyMatrix4(m4);
|
|
219
|
+
|
|
220
|
+
// Normals use the inverse transpose; the ray already computed this inverse.
|
|
221
|
+
const normal = result.normal;
|
|
222
|
+
const normal_x = normal.x;
|
|
223
|
+
const normal_y = normal.y;
|
|
224
|
+
const normal_z = normal.z;
|
|
225
|
+
|
|
226
|
+
normal.set(
|
|
227
|
+
m4_tmp[0] * normal_x + m4_tmp[1] * normal_y + m4_tmp[2] * normal_z,
|
|
228
|
+
m4_tmp[4] * normal_x + m4_tmp[5] * normal_y + m4_tmp[6] * normal_z,
|
|
229
|
+
m4_tmp[8] * normal_x + m4_tmp[9] * normal_y + m4_tmp[10] * normal_z
|
|
230
|
+
);
|
|
219
231
|
|
|
220
232
|
// make sure to pull normal to magnitude of 1
|
|
221
233
|
result.normal.normalize();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerrainTileManager.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/tiles/TerrainTileManager.js"],"names":[],"mappings":";0BAoBa,OAAO,gDAAgD,EAAE,OAAO;AA4B7E;IA2FI;;;;;;;OAOG;IACH;QAFgC,WAAW,EAAhC,WAAW;OAYrB;IA5GD;;;OAGG;IACH,OAFU,WAAW,EAAE,CAEZ;IAEX;;;MAGE;IAEF;;;;;;;;;;OAUG;IACH,aAFU,OAAO,CAEiB;IAElC;;;;;;;;;;;;OAYG;IACH,oBAFU,MAAM,CAEW;IAE3B;;;OAGG;IACH,WAFU,OAAO,CAEa;IAC9B;;;OAGG;IACH,YAFU,eAAe,CAEW;IAEpC;;;OAGG;IACH,OAFU,OAAO,CAES;IAG1B;;;;OAIG;IACH,oBAAmC;IAEnC;;;OAGG;IACH,cAFU,GAAG,CAEG;IAEhB;;;OAGG;IACH,aAFU,eAAe,CAEe;IAExC;;;;;;;;;;;OAWG;IACH,eAFU,MAAM,CAEG;IAef;;;OAGG;IACH,aAFU,WAAW,CAES;IAGlC,gCAWC;IAED,8BAEC;IAED;;;;;;;;;;;;;;OAcG;IACH,0BAFW,MAAM,QAuBhB;IAED;;;;OAIG;IACH,2BAHW,MAAM,cACN,MAAM,QAiChB;IAED,mBAIC;IAED;;;;OAIG;IACH,mBAHW,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,uBAYrC;IAED,qBAqBC;IAED;;OAEG;IACH,gBAIC;IAED;;;;;;OAMG;IACH,qBALW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAuBhB;IAGD;;;;;;;OAOG;IACH,oCANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,WAAW,EAAE,CAgCzB;IAED,wBA0CC;IAED;;;;;OAKG;IACH,oBAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAYlB;IAED;;;;;;;;;;;;;;OAcG;IACH,wBAEC;IAED;;;OAGG;IACH,wBAEC;IAED;;;;;;OAMG;IACH,wBAEC;IAED;;;OAGG;IACH,yBAEC;IAED;;;;;OAKG;IACH,UAJW,MAAM,KACN,MAAM,GACJ,WAAW,GAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"TerrainTileManager.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/tiles/TerrainTileManager.js"],"names":[],"mappings":";0BAoBa,OAAO,gDAAgD,EAAE,OAAO;AA4B7E;IA2FI;;;;;;;OAOG;IACH;QAFgC,WAAW,EAAhC,WAAW;OAYrB;IA5GD;;;OAGG;IACH,OAFU,WAAW,EAAE,CAEZ;IAEX;;;MAGE;IAEF;;;;;;;;;;OAUG;IACH,aAFU,OAAO,CAEiB;IAElC;;;;;;;;;;;;OAYG;IACH,oBAFU,MAAM,CAEW;IAE3B;;;OAGG;IACH,WAFU,OAAO,CAEa;IAC9B;;;OAGG;IACH,YAFU,eAAe,CAEW;IAEpC;;;OAGG;IACH,OAFU,OAAO,CAES;IAG1B;;;;OAIG;IACH,oBAAmC;IAEnC;;;OAGG;IACH,cAFU,GAAG,CAEG;IAEhB;;;OAGG;IACH,aAFU,eAAe,CAEe;IAExC;;;;;;;;;;;OAWG;IACH,eAFU,MAAM,CAEG;IAef;;;OAGG;IACH,aAFU,WAAW,CAES;IAGlC,gCAWC;IAED,8BAEC;IAED;;;;;;;;;;;;;;OAcG;IACH,0BAFW,MAAM,QAuBhB;IAED;;;;OAIG;IACH,2BAHW,MAAM,cACN,MAAM,QAiChB;IAED,mBAIC;IAED;;;;OAIG;IACH,mBAHW,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,uBAYrC;IAED,qBAqBC;IAED;;OAEG;IACH,gBAIC;IAED;;;;;;OAMG;IACH,qBALW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAuBhB;IAGD;;;;;;;OAOG;IACH,oCANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,WAAW,EAAE,CAgCzB;IAED,wBA0CC;IAED;;;;;OAKG;IACH,oBAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAYlB;IAED;;;;;;;;;;;;;;OAcG;IACH,wBAEC;IAED;;;OAGG;IACH,wBAEC;IAED;;;;;;OAMG;IACH,wBAEC;IAED;;;OAGG;IACH,yBAEC;IAED;;;;;OAKG;IACH,UAJW,MAAM,KACN,MAAM,GACJ,WAAW,GAAC,SAAS,CAkBjC;IAED;;;;;OAKG;IACH,wBAJW,MAAM,KACN,MAAM,GACJ,WAAW,CAavB;IAED;;;;;OAKG;IACH,4BAJW,MAAM,KACN,MAAM,GACL,WAAW,GAAC,SAAS,CAoBhC;IAED;;;;;OAKG;IACH,+BAJW,MAAM,KACN,MAAM,GACJ,QAAQ,WAAW,CAAC,CAYhC;IAED;;;;;;OAMG;IACH,UALW,MAAM,KACN,MAAM,GACJ,QAAQ,WAAW,CAAC,CA4BhC;IAED;;;OAGG;IACH,cAFW,WAAW,QAcrB;IAED,gBAMC;IAED;;;;;;OAMG;IACH,cAJW,MAAM,KACN,MAAM,QACN,WAAW,QAUrB;IAED;;;;;;;;;;;;OAYG;IACH,yBAJW,MAAM,KACN,MAAM;YACG,MAAM,GAAC,WAAW,GAAC,SAAS;MAkD/C;IAED;;;;;;;;;;OAUG;IACH,yBATW,aAAa,WACb,MAAM,WACN,MAAM,WACN,MAAM,cACN,MAAM,cACN,MAAM,cACN,MAAM,GACJ,OAAO,CAuDnB;IAED;;;;;;OAMG;IACH,kCALW,aAAa,KACb,MAAM,KACN,MAAM,GACL,OAAO,CAOlB;IAED;;;;;;OAMG;IACH,SALW,MAAM,KACN,MAAM,WACN,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,UAC3B,CAAC,MAAM,KAAG,KAAK,IAAI,QAiG7B;CACJ;wBA92BuB,kBAAkB;mBATvB,0CAA0C;oBAGzC,kCAAkC;4BAI1B,2CAA2C;oBAVnD,mCAAmC;gCAOvB,mDAAmD;8BAFrD,2CAA2C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/light/LightSerializationAdapter.js"],"names":[],"mappings":"AAIA;;IAEI,oBAAc;IAGd;;;;OAIG;IACH,8BAFW,KAAK,
|
|
1
|
+
{"version":3,"file":"LightSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/light/LightSerializationAdapter.js"],"names":[],"mappings":"AAIA;;IAEI,oBAAc;IAGd;;;;OAIG;IACH,8BAFW,KAAK,QAoBf;IAED;;;;OAIG;IACH,gCAFW,KAAK,QAoBf;CACJ;gDA1D+C,gEAAgE;sBAE1F,YAAY"}
|
|
@@ -5,7 +5,7 @@ import { Light } from "./Light.js";
|
|
|
5
5
|
export class LightSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
6
6
|
|
|
7
7
|
klass = Light;
|
|
8
|
-
version =
|
|
8
|
+
version = 1;
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
*
|
|
@@ -24,6 +24,12 @@ export class LightSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
|
24
24
|
value.penumbra.toBinaryBuffer(buffer);
|
|
25
25
|
value.distance.toBinaryBuffer(buffer);
|
|
26
26
|
}
|
|
27
|
+
|
|
28
|
+
value.radius.toBinaryBuffer(buffer);
|
|
29
|
+
|
|
30
|
+
if (value.type.getValue() === LightType.POINT) {
|
|
31
|
+
value.distance.toBinaryBuffer(buffer);
|
|
32
|
+
}
|
|
27
33
|
}
|
|
28
34
|
|
|
29
35
|
/**
|
|
@@ -43,5 +49,11 @@ export class LightSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
|
43
49
|
value.penumbra.fromBinaryBuffer(buffer);
|
|
44
50
|
value.distance.fromBinaryBuffer(buffer);
|
|
45
51
|
}
|
|
52
|
+
|
|
53
|
+
value.radius.fromBinaryBuffer(buffer);
|
|
54
|
+
|
|
55
|
+
if (value.type.getValue() === LightType.POINT) {
|
|
56
|
+
value.distance.fromBinaryBuffer(buffer);
|
|
57
|
+
}
|
|
46
58
|
}
|
|
47
59
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export class LightSerializationUpgrader_0_1 extends BinaryClassUpgrader {
|
|
2
|
+
upgrade(source: any, target: any): void;
|
|
3
|
+
}
|
|
4
|
+
import { BinaryClassUpgrader } from "../../../ecs/storage/binary/BinaryClassUpgrader.js";
|
|
5
|
+
//# sourceMappingURL=LightSerializationUpgrader_0_1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LightSerializationUpgrader_0_1.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/light/LightSerializationUpgrader_0_1.js"],"names":[],"mappings":"AAGA;IAII,wCAkBC;CACJ;oCA1BmC,oDAAoD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BinaryClassUpgrader } from "../../../ecs/storage/binary/BinaryClassUpgrader.js";
|
|
2
|
+
import { LightType } from "./LightType.js";
|
|
3
|
+
|
|
4
|
+
export class LightSerializationUpgrader_0_1 extends BinaryClassUpgrader {
|
|
5
|
+
__startVersion = 0;
|
|
6
|
+
__targetVersion = 1;
|
|
7
|
+
|
|
8
|
+
upgrade(source, target) {
|
|
9
|
+
const type = source.readUint8();
|
|
10
|
+
target.writeUint8(type);
|
|
11
|
+
target.writeUint32(source.readUint32());
|
|
12
|
+
target.writeFloat64(source.readFloat64());
|
|
13
|
+
target.writeUint8(source.readUint8());
|
|
14
|
+
|
|
15
|
+
if (type === LightType.SPOT) {
|
|
16
|
+
target.writeFloat64(source.readFloat64());
|
|
17
|
+
target.writeFloat64(source.readFloat64());
|
|
18
|
+
target.writeFloat64(source.readFloat64());
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
target.writeFloat64(0);
|
|
22
|
+
|
|
23
|
+
if (type === LightType.POINT) {
|
|
24
|
+
target.writeFloat64(1);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -28,6 +28,15 @@ declare class Water {
|
|
|
28
28
|
* @type {Vector1}
|
|
29
29
|
*/
|
|
30
30
|
roughness: Vector1;
|
|
31
|
+
/**
|
|
32
|
+
* Whether the body's surface keeps moving while no view sees it. Off (the default), a hidden body is paused:
|
|
33
|
+
* its wave particles stand still and its wind turn holds until it comes back into view, and it costs one
|
|
34
|
+
* culling test a frame. On, it is simulated every frame wherever the camera looks, at the cost of a visible
|
|
35
|
+
* body's simulation — for water whose ripples must have travelled on when the camera turns back.
|
|
36
|
+
* Ambient waves follow time, not state: they are current either way.
|
|
37
|
+
* @type {ObservedBoolean}
|
|
38
|
+
*/
|
|
39
|
+
simulateWhenHidden: ObservedBoolean;
|
|
31
40
|
/** Optical edits queue a scene row update. */
|
|
32
41
|
onChanged: Signal;
|
|
33
42
|
/** @param {ParticipatingMedium} value */
|
|
@@ -42,6 +51,7 @@ declare class Water {
|
|
|
42
51
|
toJSON(): {
|
|
43
52
|
ior: number;
|
|
44
53
|
roughness: number;
|
|
54
|
+
simulateWhenHidden: boolean;
|
|
45
55
|
medium: any;
|
|
46
56
|
};
|
|
47
57
|
#private;
|
|
@@ -50,6 +60,7 @@ declare namespace Water {
|
|
|
50
60
|
let typeName: string;
|
|
51
61
|
}
|
|
52
62
|
import Vector1 from "../../../../core/geom/Vector1.js";
|
|
63
|
+
import ObservedBoolean from "../../../../core/model/ObservedBoolean.js";
|
|
53
64
|
import Signal from "../../../../core/events/signal/Signal.js";
|
|
54
65
|
import { ParticipatingMedium } from "../../../../shade/renderer/medium/ParticipatingMedium.js";
|
|
55
66
|
//# sourceMappingURL=Water.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Water.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/Water.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Water.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/Water.js"],"names":[],"mappings":";AAUA;;;;;;;;;;;;;;;GAeG;AACH;IA6CI,0BASC;IArDD;;;OAGG;IACH,KAFU,OAAO,CAEQ;IAEzB;;;;OAIG;IACH,WAFU,OAAO,CAEa;IAE9B;;;;;;;OAOG;IACH,oBAFU,eAAe,CAEuB;IAEhD,8CAA8C;IAC9C,kBAAyB;IAWzB,yCAAyC;IACzC,uCAMC;IAbD;;;;OAIG;IACH,kCAAqC;IAqBrC,0BAoBC;IAED;;;;;MAOC;;CACJ;;;;oBA/GmB,kCAAkC;4BAC1B,2CAA2C;mBAFpD,0CAA0C;oCAGzB,0DAA0D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Signal from "../../../../core/events/signal/Signal.js";
|
|
2
2
|
import Vector1 from "../../../../core/geom/Vector1.js";
|
|
3
|
+
import ObservedBoolean from "../../../../core/model/ObservedBoolean.js";
|
|
3
4
|
import { ParticipatingMedium } from "../../../../shade/renderer/medium/ParticipatingMedium.js";
|
|
4
5
|
import {
|
|
5
6
|
participating_medium_from_json,
|
|
@@ -37,6 +38,16 @@ class Water {
|
|
|
37
38
|
*/
|
|
38
39
|
roughness = new Vector1(0.02);
|
|
39
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Whether the body's surface keeps moving while no view sees it. Off (the default), a hidden body is paused:
|
|
43
|
+
* its wave particles stand still and its wind turn holds until it comes back into view, and it costs one
|
|
44
|
+
* culling test a frame. On, it is simulated every frame wherever the camera looks, at the cost of a visible
|
|
45
|
+
* body's simulation — for water whose ripples must have travelled on when the camera turns back.
|
|
46
|
+
* Ambient waves follow time, not state: they are current either way.
|
|
47
|
+
* @type {ObservedBoolean}
|
|
48
|
+
*/
|
|
49
|
+
simulateWhenHidden = new ObservedBoolean(false);
|
|
50
|
+
|
|
40
51
|
/** Optical edits queue a scene row update. */
|
|
41
52
|
onChanged = new Signal();
|
|
42
53
|
/** @type {ParticipatingMedium|null} */
|
|
@@ -61,6 +72,7 @@ class Water {
|
|
|
61
72
|
constructor(options) {
|
|
62
73
|
this.ior.onChanged.add(this.#changed);
|
|
63
74
|
this.roughness.onChanged.add(this.#changed);
|
|
75
|
+
this.simulateWhenHidden.onChanged.add(this.#changed);
|
|
64
76
|
this.medium = water_medium_default();
|
|
65
77
|
if (options !== undefined) {
|
|
66
78
|
console.error('Constructor options are deprecated');
|
|
@@ -81,6 +93,10 @@ class Water {
|
|
|
81
93
|
this.roughness.fromJSON(json.roughness);
|
|
82
94
|
}
|
|
83
95
|
|
|
96
|
+
if (typeof json.simulateWhenHidden === 'boolean') {
|
|
97
|
+
this.simulateWhenHidden.fromJSON(json.simulateWhenHidden);
|
|
98
|
+
}
|
|
99
|
+
|
|
84
100
|
if (json.medium !== null && typeof json.medium === 'object') {
|
|
85
101
|
participating_medium_from_json(this.medium, json.medium);
|
|
86
102
|
}
|
|
@@ -90,6 +106,7 @@ class Water {
|
|
|
90
106
|
return {
|
|
91
107
|
ior: this.ior.toJSON(),
|
|
92
108
|
roughness: this.roughness.toJSON(),
|
|
109
|
+
simulateWhenHidden: this.simulateWhenHidden.toJSON(),
|
|
93
110
|
medium: participating_medium_to_json(this.medium),
|
|
94
111
|
};
|
|
95
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WaterSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterSerializationAdapter.js"],"names":[],"mappings":"AAOA;;IAEI,oBAAc;IAGd;;;;OAIG;IACH,uCAFW,KAAK,
|
|
1
|
+
{"version":3,"file":"WaterSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterSerializationAdapter.js"],"names":[],"mappings":"AAOA;;IAEI,oBAAc;IAGd;;;;OAIG;IACH,uCAFW,KAAK,QAQf;IAED;;;;OAIG;IACH,yCAFW,KAAK,QAQf;CACJ;gDArC+C,gEAAgE;kBAK9F,YAAY"}
|
|
@@ -8,7 +8,7 @@ import Water from "./Water.js";
|
|
|
8
8
|
export class WaterSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
9
9
|
|
|
10
10
|
klass = Water;
|
|
11
|
-
version =
|
|
11
|
+
version = 5;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
*
|
|
@@ -20,6 +20,7 @@ export class WaterSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
|
20
20
|
buffer.writeFloat32(value.roughness.getValue());
|
|
21
21
|
|
|
22
22
|
serialize_participating_medium(buffer, value.medium);
|
|
23
|
+
value.simulateWhenHidden.toBinaryBuffer(buffer);
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
/**
|
|
@@ -32,5 +33,6 @@ export class WaterSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
|
32
33
|
value.roughness.set(buffer.readFloat32());
|
|
33
34
|
|
|
34
35
|
deserialize_participating_medium(buffer, value.medium);
|
|
36
|
+
value.simulateWhenHidden.fromBinaryBuffer(buffer);
|
|
35
37
|
}
|
|
36
38
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keep version 4's optics and append `simulateWhenHidden` as version 5 introduced it: off, so a body saved before
|
|
3
|
+
* pauses while hidden, like every body by default.
|
|
4
|
+
*/
|
|
5
|
+
export class WaterSerializationUpgrader_4_5 extends BinaryClassUpgrader {
|
|
6
|
+
upgrade(source: any, target: any): void;
|
|
7
|
+
}
|
|
8
|
+
import { BinaryClassUpgrader } from "../../../ecs/storage/binary/BinaryClassUpgrader.js";
|
|
9
|
+
//# sourceMappingURL=WaterSerializationUpgrader_4_5.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WaterSerializationUpgrader_4_5.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterSerializationUpgrader_4_5.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH;IAII,wCAOC;CACJ;oCAvBmC,oDAAoD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BinaryClassUpgrader } from "../../../ecs/storage/binary/BinaryClassUpgrader.js";
|
|
2
|
+
import {
|
|
3
|
+
deserialize_participating_medium,
|
|
4
|
+
serialize_participating_medium
|
|
5
|
+
} from "../../../../shade/renderer/medium/participating_medium_serialization.js";
|
|
6
|
+
import { water_medium_default } from "../../../../shade/renderer/medium/water/water_presets.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Keep version 4's optics and append `simulateWhenHidden` as version 5 introduced it: off, so a body saved before
|
|
10
|
+
* pauses while hidden, like every body by default.
|
|
11
|
+
*/
|
|
12
|
+
export class WaterSerializationUpgrader_4_5 extends BinaryClassUpgrader {
|
|
13
|
+
__startVersion = 4;
|
|
14
|
+
__targetVersion = 5;
|
|
15
|
+
|
|
16
|
+
upgrade(source, target) {
|
|
17
|
+
target.writeFloat32(source.readFloat32());
|
|
18
|
+
target.writeFloat32(source.readFloat32());
|
|
19
|
+
const medium = water_medium_default();
|
|
20
|
+
deserialize_participating_medium(source, medium);
|
|
21
|
+
serialize_participating_medium(target, medium);
|
|
22
|
+
target.writeUint8(0);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,29 +1,50 @@
|
|
|
1
|
+
/** Amplitude reflection coefficient of a water body's outline when nothing says otherwise. */
|
|
2
|
+
export const WATER_WAVES_SHORE_REFLECTION_DEFAULT: 0.5;
|
|
1
3
|
export default WaterWaves;
|
|
2
4
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
+
* The waves of the {@link Water} on the same entity: the wind that raises them and how the body's outline
|
|
6
|
+
* treats them (WATER_SURFACE_SIMULATION_PLAN_2026_10_06.md §6.1).
|
|
5
7
|
*
|
|
6
|
-
* Kept apart from `Water
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* Kept apart from `Water`, which describes the body and its optics and says nothing about how the surface
|
|
9
|
+
* moves. A body without this component is calm, and its outline reflects wave particles (from
|
|
10
|
+
* `WaterSystem.splash`) at the default coefficient.
|
|
11
|
+
*
|
|
12
|
+
* The wind's waves follow from physics: a fetch-limited JONSWAP sea of this wind speed over the water upwind
|
|
13
|
+
* — the body's own extent along the wind plus {@link upwindFetch} — so the same wind raises centimetre ripples
|
|
14
|
+
* on a puddle and swell on an open sea.
|
|
10
15
|
*/
|
|
11
16
|
declare class WaterWaves {
|
|
12
17
|
/**
|
|
13
|
-
* Wind speed at 10 m, m/s.
|
|
14
|
-
* of the waves the simulation's grid does not resolve (Cox-Munk).
|
|
18
|
+
* Wind speed at 10 m, m/s.
|
|
15
19
|
* @type {Vector1}
|
|
16
20
|
*/
|
|
17
21
|
windSpeed: Vector1;
|
|
18
22
|
/**
|
|
19
|
-
* Direction the wind blows towards, radians in the
|
|
23
|
+
* Direction the wind blows towards, radians in the body's local xz plane, measured from +x towards +z.
|
|
24
|
+
* The angle turns with the body's rotation and is not skewed by its scale. A change turns the waves over
|
|
25
|
+
* a few seconds.
|
|
20
26
|
* @type {Vector1}
|
|
21
27
|
*/
|
|
22
28
|
windDirection: Vector1;
|
|
29
|
+
/**
|
|
30
|
+
* Open water upwind of the mesh, metres, added to the mesh's own extent along the wind. Zero for a body
|
|
31
|
+
* that is all the water there is (a pool, a lake); an open sea states the distance to its far shore
|
|
32
|
+
* (a fully developed sea at 10 m/s needs about 170 km).
|
|
33
|
+
* @type {Vector1}
|
|
34
|
+
*/
|
|
35
|
+
upwindFetch: Vector1;
|
|
36
|
+
/**
|
|
37
|
+
* Amplitude reflection coefficient of the mesh's outline for wave particles: 0 a beach that absorbs
|
|
38
|
+
* them, 1 a wall that returns them whole.
|
|
39
|
+
* @type {Vector1}
|
|
40
|
+
*/
|
|
41
|
+
shoreReflection: Vector1;
|
|
23
42
|
fromJSON(json: any): void;
|
|
24
43
|
toJSON(): {
|
|
25
44
|
windSpeed: number;
|
|
26
45
|
windDirection: number;
|
|
46
|
+
upwindFetch: number;
|
|
47
|
+
shoreReflection: number;
|
|
27
48
|
};
|
|
28
49
|
}
|
|
29
50
|
declare namespace WaterWaves {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WaterWaves.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterWaves.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WaterWaves.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterWaves.js"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,uDAAwD;;AAExD;;;;;;;;;;;GAWG;AACH;IACI;;;OAGG;IACH,WAFU,OAAO,CAEU;IAE3B;;;;;OAKG;IACH,eAFU,OAAO,CAEc;IAE/B;;;;;OAKG;IACH,aAFU,OAAO,CAEY;IAE7B;;;;OAIG;IACH,iBAFU,OAAO,CAEmD;IAEpE,0BAgBC;IAED;;;;;MAOC;CACJ;;;;oBAzEmB,kCAAkC"}
|
|
@@ -1,28 +1,50 @@
|
|
|
1
1
|
import Vector1 from "../../../../core/geom/Vector1.js";
|
|
2
2
|
|
|
3
|
+
/** Amplitude reflection coefficient of a water body's outline when nothing says otherwise. */
|
|
4
|
+
export const WATER_WAVES_SHORE_REFLECTION_DEFAULT = 0.5;
|
|
5
|
+
|
|
3
6
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
7
|
+
* The waves of the {@link Water} on the same entity: the wind that raises them and how the body's outline
|
|
8
|
+
* treats them (WATER_SURFACE_SIMULATION_PLAN_2026_10_06.md §6.1).
|
|
9
|
+
*
|
|
10
|
+
* Kept apart from `Water`, which describes the body and its optics and says nothing about how the surface
|
|
11
|
+
* moves. A body without this component is calm, and its outline reflects wave particles (from
|
|
12
|
+
* `WaterSystem.splash`) at the default coefficient.
|
|
6
13
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* tessellates its authored rest surface and allocates no wave grid until a splash is queued.
|
|
14
|
+
* The wind's waves follow from physics: a fetch-limited JONSWAP sea of this wind speed over the water upwind
|
|
15
|
+
* — the body's own extent along the wind plus {@link upwindFetch} — so the same wind raises centimetre ripples
|
|
16
|
+
* on a puddle and swell on an open sea.
|
|
11
17
|
*/
|
|
12
18
|
class WaterWaves {
|
|
13
19
|
/**
|
|
14
|
-
* Wind speed at 10 m, m/s.
|
|
15
|
-
* of the waves the simulation's grid does not resolve (Cox-Munk).
|
|
20
|
+
* Wind speed at 10 m, m/s.
|
|
16
21
|
* @type {Vector1}
|
|
17
22
|
*/
|
|
18
23
|
windSpeed = new Vector1(3);
|
|
19
24
|
|
|
20
25
|
/**
|
|
21
|
-
* Direction the wind blows towards, radians in the
|
|
26
|
+
* Direction the wind blows towards, radians in the body's local xz plane, measured from +x towards +z.
|
|
27
|
+
* The angle turns with the body's rotation and is not skewed by its scale. A change turns the waves over
|
|
28
|
+
* a few seconds.
|
|
22
29
|
* @type {Vector1}
|
|
23
30
|
*/
|
|
24
31
|
windDirection = new Vector1(0);
|
|
25
32
|
|
|
33
|
+
/**
|
|
34
|
+
* Open water upwind of the mesh, metres, added to the mesh's own extent along the wind. Zero for a body
|
|
35
|
+
* that is all the water there is (a pool, a lake); an open sea states the distance to its far shore
|
|
36
|
+
* (a fully developed sea at 10 m/s needs about 170 km).
|
|
37
|
+
* @type {Vector1}
|
|
38
|
+
*/
|
|
39
|
+
upwindFetch = new Vector1(0);
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Amplitude reflection coefficient of the mesh's outline for wave particles: 0 a beach that absorbs
|
|
43
|
+
* them, 1 a wall that returns them whole.
|
|
44
|
+
* @type {Vector1}
|
|
45
|
+
*/
|
|
46
|
+
shoreReflection = new Vector1(WATER_WAVES_SHORE_REFLECTION_DEFAULT);
|
|
47
|
+
|
|
26
48
|
fromJSON(json) {
|
|
27
49
|
if (typeof json.windSpeed === 'number') {
|
|
28
50
|
this.windSpeed.fromJSON(json.windSpeed);
|
|
@@ -31,12 +53,22 @@ class WaterWaves {
|
|
|
31
53
|
if (typeof json.windDirection === 'number') {
|
|
32
54
|
this.windDirection.fromJSON(json.windDirection);
|
|
33
55
|
}
|
|
56
|
+
|
|
57
|
+
if (typeof json.upwindFetch === 'number') {
|
|
58
|
+
this.upwindFetch.fromJSON(json.upwindFetch);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (typeof json.shoreReflection === 'number') {
|
|
62
|
+
this.shoreReflection.fromJSON(json.shoreReflection);
|
|
63
|
+
}
|
|
34
64
|
}
|
|
35
65
|
|
|
36
66
|
toJSON() {
|
|
37
67
|
return {
|
|
38
68
|
windSpeed: this.windSpeed.toJSON(),
|
|
39
69
|
windDirection: this.windDirection.toJSON(),
|
|
70
|
+
upwindFetch: this.upwindFetch.toJSON(),
|
|
71
|
+
shoreReflection: this.shoreReflection.toJSON(),
|
|
40
72
|
};
|
|
41
73
|
}
|
|
42
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WaterWavesSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.js"],"names":[],"mappings":"AAGA;;IAEI,yBAAmB;IAGnB;;;OAGG;IACH,uCAFW,UAAU,
|
|
1
|
+
{"version":3,"file":"WaterWavesSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.js"],"names":[],"mappings":"AAGA;;IAEI,yBAAmB;IAGnB;;;OAGG;IACH,uCAFW,UAAU,QAOpB;IAED;;;OAGG;IACH,yCAFW,UAAU,QAOpB;CACJ;gDA7B+C,gEAAgE;uBACzF,iBAAiB"}
|
|
@@ -1,26 +1,30 @@
|
|
|
1
|
-
import { BinaryClassSerializationAdapter } from "../../../ecs/storage/binary/BinaryClassSerializationAdapter.js";
|
|
2
|
-
import WaterWaves from "./WaterWaves.js";
|
|
3
|
-
|
|
4
|
-
export class WaterWavesSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
5
|
-
|
|
6
|
-
klass = WaterWaves;
|
|
7
|
-
version =
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @param {BinaryBuffer} buffer
|
|
11
|
-
* @param {WaterWaves} value
|
|
12
|
-
*/
|
|
13
|
-
serialize(buffer, value) {
|
|
14
|
-
buffer.writeFloat32(value.windSpeed.getValue());
|
|
15
|
-
buffer.writeFloat32(value.windDirection.getValue());
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
import { BinaryClassSerializationAdapter } from "../../../ecs/storage/binary/BinaryClassSerializationAdapter.js";
|
|
2
|
+
import WaterWaves from "./WaterWaves.js";
|
|
3
|
+
|
|
4
|
+
export class WaterWavesSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
5
|
+
|
|
6
|
+
klass = WaterWaves;
|
|
7
|
+
version = 1;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @param {BinaryBuffer} buffer
|
|
11
|
+
* @param {WaterWaves} value
|
|
12
|
+
*/
|
|
13
|
+
serialize(buffer, value) {
|
|
14
|
+
buffer.writeFloat32(value.windSpeed.getValue());
|
|
15
|
+
buffer.writeFloat32(value.windDirection.getValue());
|
|
16
|
+
buffer.writeFloat32(value.upwindFetch.getValue());
|
|
17
|
+
buffer.writeFloat32(value.shoreReflection.getValue());
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @param {BinaryBuffer} buffer
|
|
22
|
+
* @param {WaterWaves} value
|
|
23
|
+
*/
|
|
24
|
+
deserialize(buffer, value) {
|
|
25
|
+
value.windSpeed.set(buffer.readFloat32());
|
|
26
|
+
value.windDirection.set(buffer.readFloat32());
|
|
27
|
+
value.upwindFetch.set(buffer.readFloat32());
|
|
28
|
+
value.shoreReflection.set(buffer.readFloat32());
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Keep version 0's wind and append the version-1 defaults. */
|
|
2
|
+
export class WaterWavesSerializationUpgrader_0_1 extends BinaryClassUpgrader {
|
|
3
|
+
upgrade(source: any, target: any): void;
|
|
4
|
+
}
|
|
5
|
+
import { BinaryClassUpgrader } from "../../../ecs/storage/binary/BinaryClassUpgrader.js";
|
|
6
|
+
//# sourceMappingURL=WaterWavesSerializationUpgrader_0_1.d.ts.map
|