@woosh/meep-engine 2.155.0 → 2.156.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/README.md +1 -1
- package/build/bundle-worker-image-decoder.js +1 -1
- package/build/bundle-worker-terrain.js +1 -1
- package/editor/view/ecs/ComponentControlView.d.ts +0 -9
- package/editor/view/ecs/ComponentControlView.js +2 -98
- package/package.json +1 -1
- package/src/core/binary/32BitEncoder.js +1 -1
- package/src/core/binary/to_half_float_uint16.js +3 -3
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy_radix.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy_radix.js +275 -253
- package/src/core/cache/Cache.d.ts.map +1 -1
- package/src/core/cache/Cache.js +7 -0
- package/src/core/cache/FrequencySketch.d.ts.map +1 -1
- package/src/core/cache/FrequencySketch.js +8 -4
- package/src/core/clipboard/obtainClipBoard.d.ts +6 -0
- package/src/core/clipboard/obtainClipBoard.d.ts.map +1 -0
- package/src/core/clipboard/obtainClipBoard.js +29 -0
- package/src/core/clipboard/safeClipboardReadText.d.ts +6 -0
- package/src/core/clipboard/safeClipboardReadText.d.ts.map +1 -0
- package/src/core/clipboard/safeClipboardReadText.js +55 -0
- package/src/core/clipboard/safeClipboardWriteText.d.ts +8 -0
- package/src/core/clipboard/safeClipboardWriteText.d.ts.map +1 -0
- package/src/core/clipboard/safeClipboardWriteText.js +23 -0
- package/src/core/collection/array/array_quick_sort_by_lookup_map.js +1 -1
- package/src/core/collection/array/array_set_diff_sorting.d.ts.map +1 -1
- package/src/core/collection/array/array_set_diff_sorting.js +4 -1
- package/src/core/collection/array/array_shuffle.d.ts.map +1 -1
- package/src/core/collection/array/array_shuffle.js +30 -27
- package/src/core/collection/array/binarySearchLowIndex.d.ts.map +1 -1
- package/src/core/collection/array/binarySearchLowIndex.js +4 -3
- package/src/core/collection/array/typed/array_buffer_hash.js +1 -1
- package/src/core/collection/array/typed/is_typed_array_equals.d.ts.map +1 -1
- package/src/core/collection/array/typed/is_typed_array_equals.js +12 -2
- package/src/core/collection/heap/BinaryHeap.d.ts.map +1 -1
- package/src/core/collection/heap/BinaryHeap.js +12 -2
- package/src/core/collection/queue/Deque.d.ts.map +1 -1
- package/src/core/collection/queue/Deque.js +10 -8
- package/src/core/collection/table/RowFirstTable.d.ts.map +1 -1
- package/src/core/collection/table/RowFirstTable.js +4 -2
- package/src/core/collection/table/RowFirstTableSpec.js +2 -2
- package/src/core/color/operations/color_lerp.d.ts.map +1 -1
- package/src/core/color/operations/color_lerp.js +10 -3
- package/src/core/color/rgb2uint32.js +1 -1
- package/src/core/color/rgbe9995_to_rgb.js +1 -1
- package/src/core/function/objectsEqual.d.ts.map +1 -1
- package/src/core/function/objectsEqual.js +2 -1
- package/src/core/geom/2d/aabb/AABB2.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/AABB2.js +12 -11
- package/src/core/geom/2d/convex-hull/convex_hull_jarvis_2d.d.ts.map +1 -1
- package/src/core/geom/2d/convex-hull/convex_hull_jarvis_2d.js +30 -4
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.d.ts.map +1 -1
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.js +6 -2
- package/src/core/geom/2d/hash-grid/SpatialHashGrid.d.ts.map +1 -1
- package/src/core/geom/2d/hash-grid/SpatialHashGrid.js +388 -386
- package/src/core/geom/2d/hash-grid/shg_query_elements_line.d.ts.map +1 -1
- package/src/core/geom/2d/hash-grid/shg_query_elements_line.js +8 -3
- package/src/core/geom/2d/quad-tree/QuadTreeDatum.d.ts.map +1 -1
- package/src/core/geom/2d/quad-tree/QuadTreeDatum.js +9 -1
- package/src/core/geom/2d/quad-tree/qt_query_data_nearest_to_point.d.ts +3 -1
- package/src/core/geom/2d/quad-tree/qt_query_data_nearest_to_point.d.ts.map +1 -1
- package/src/core/geom/2d/quad-tree/qt_query_data_nearest_to_point.js +3 -1
- package/src/core/geom/2d/quad-tree-binary/QuadTree.js +714 -714
- package/src/core/geom/2d/r-tree/StaticR2Tree.d.ts.map +1 -1
- package/src/core/geom/2d/r-tree/StaticR2Tree.js +5 -4
- package/src/core/geom/3d/aabb/aabb3_detailed_volume_intersection.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_detailed_volume_intersection.js +33 -29
- package/src/core/geom/3d/aabb/aabb3_near_distance_to_intersection_ray_segment.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_near_distance_to_intersection_ray_segment.js +3 -1
- package/src/core/geom/3d/aabb/aabb3_signed_distance_to_aabb3.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_signed_distance_to_aabb3.js +10 -7
- package/src/core/geom/3d/aabb/aabb3_transformed_compute_plane_side.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_transformed_compute_plane_side.js +30 -9
- package/src/core/geom/3d/aabb/compute_aabb_from_points.js +3 -3
- package/src/core/geom/3d/box/box3_raycast.d.ts +37 -0
- package/src/core/geom/3d/box/box3_raycast.d.ts.map +1 -0
- package/src/core/geom/3d/box/box3_raycast.js +81 -0
- package/src/core/geom/3d/capsule/capsule_raycast.d.ts +35 -0
- package/src/core/geom/3d/capsule/capsule_raycast.d.ts.map +1 -0
- package/src/core/geom/3d/capsule/capsule_raycast.js +93 -0
- package/src/core/geom/3d/cone/compute_bounding_cone_of_2_cones.d.ts.map +1 -1
- package/src/core/geom/3d/cone/compute_bounding_cone_of_2_cones.js +4 -0
- package/src/core/geom/3d/frustum/frustum3_computeNearestPointToPoint.js +1 -1
- 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 +3 -2
- package/src/core/geom/3d/mat4/decompose_matrix_4_array.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/decompose_matrix_4_array.js +12 -2
- package/src/core/geom/3d/mat4/eulerAnglesFromMatrix.js +2 -2
- package/src/core/geom/3d/mat4/m4_multiply_alphatensor.d.ts +1 -1
- package/src/core/geom/3d/mat4/m4_multiply_alphatensor.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/m4_multiply_alphatensor.js +19 -13
- package/src/core/geom/3d/octahedra/octahedral_direction_to_uv.d.ts.map +1 -1
- package/src/core/geom/3d/octahedra/octahedral_direction_to_uv.js +3 -2
- package/src/core/geom/3d/plane/plane3_compute_plane_intersection.js +3 -2
- package/src/core/geom/3d/shape/MeshShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/MeshShape3D.js +7 -0
- package/src/core/geom/3d/shape/UnionShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/UnionShape3D.js +3 -2
- package/src/core/geom/3d/shape/util/shape3d_voxelize_to_grid.d.ts.map +1 -1
- package/src/core/geom/3d/shape/util/shape3d_voxelize_to_grid.js +153 -148
- package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +7 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_sample_by_direction.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/harmonics/sh3_sample_by_direction.js +13 -10
- package/src/core/geom/3d/sphere/sphere_projected_sphere_radius_sqr.d.ts +1 -1
- package/src/core/geom/3d/sphere/sphere_projected_sphere_radius_sqr.js +2 -2
- package/src/core/geom/3d/sphere/sphere_raycast.d.ts +33 -0
- package/src/core/geom/3d/sphere/sphere_raycast.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/sphere_raycast.js +47 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_tet_get_neighbours.d.ts +24 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_tet_get_neighbours.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_tet_get_neighbours.js +39 -0
- package/src/core/geom/3d/tetrahedra/triangle/trace_triangular_depth_map.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/triangle/trace_triangular_depth_map.js +4 -2
- package/src/core/geom/3d/topology/bounds/computeTriangleClusterNormalBoundingCone.js +3 -3
- package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.js +1 -1
- package/src/core/geom/3d/topology/tm_vertex_compute_normal.d.ts.map +1 -1
- package/src/core/geom/3d/topology/tm_vertex_compute_normal.js +4 -2
- package/src/core/geom/3d/util/make_justified_point_grid.d.ts.map +1 -1
- package/src/core/geom/3d/util/make_justified_point_grid.js +18 -10
- package/src/core/geom/ConicRay.d.ts.map +1 -1
- package/src/core/geom/ConicRay.js +11 -13
- package/src/core/geom/packing/max-rect/removeRedundantBoxes.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/removeRedundantBoxes.js +19 -4
- package/src/core/geom/vec3/v3_orthonormal_matrix_from_normal.d.ts.map +1 -0
- package/src/{engine/graphics/sh3/path_tracer/sampling → core/geom/vec3}/v3_orthonormal_matrix_from_normal.js +1 -1
- package/src/core/graph/coloring/colorizeGraph.js +2 -2
- package/src/core/graph/csr/CSRGraph.d.ts.map +1 -1
- package/src/core/graph/csr/CSRGraph.js +325 -319
- package/src/core/graph/layout/CircleLayout.d.ts.map +1 -1
- package/src/core/graph/layout/CircleLayout.js +8 -6
- package/src/core/graph/metis/native/refine/compute_kway_params.d.ts.map +1 -1
- package/src/core/graph/metis/native/refine/compute_kway_params.js +139 -138
- package/src/core/graph/mn_graph_coarsen.d.ts.map +1 -1
- package/src/core/graph/mn_graph_coarsen.js +4 -2
- package/src/core/graph/v2/NodeContainer.js +7 -7
- package/src/core/localization/LocalizationEngine.js +1 -1
- package/src/core/math/bell_membership_function.d.ts.map +1 -1
- package/src/core/math/bell_membership_function.js +3 -1
- package/src/core/math/complex/complex_add.d.ts +4 -4
- package/src/core/math/complex/complex_add.d.ts.map +1 -1
- package/src/core/math/complex/complex_add.js +3 -3
- package/src/core/math/complex/complex_div.d.ts +4 -4
- package/src/core/math/complex/complex_div.d.ts.map +1 -1
- package/src/core/math/complex/complex_div.js +3 -3
- package/src/core/math/complex/complex_mul.d.ts +4 -4
- package/src/core/math/complex/complex_mul.d.ts.map +1 -1
- package/src/core/math/complex/complex_mul.js +3 -3
- package/src/core/math/complex/complex_sub.d.ts +4 -4
- package/src/core/math/complex/complex_sub.d.ts.map +1 -1
- package/src/core/math/complex/complex_sub.js +3 -3
- package/src/core/math/idct_1d.d.ts +4 -4
- package/src/core/math/idct_1d.d.ts.map +1 -1
- package/src/core/math/idct_1d.js +3 -3
- package/src/core/math/noise/create_simplex_noise_2d.d.ts.map +1 -1
- package/src/core/math/noise/create_simplex_noise_2d.js +4 -2
- package/src/core/math/noise/sdnoise.d.ts.map +1 -1
- package/src/core/math/noise/sdnoise.js +12 -9
- package/src/core/math/physics/mie/compute_bhmie_optical_properties.d.ts.map +1 -1
- package/src/core/math/physics/mie/compute_bhmie_optical_properties.js +94 -50
- package/src/core/math/physics/mie/lorenz_mie_coefs.d.ts +3 -6
- package/src/core/math/physics/mie/lorenz_mie_coefs.d.ts.map +1 -1
- package/src/core/math/physics/mie/lorenz_mie_coefs.js +180 -157
- package/src/core/math/physics/mie/mie_ab_to_optical_properties.d.ts +3 -4
- package/src/core/math/physics/mie/mie_ab_to_optical_properties.d.ts.map +1 -1
- package/src/core/math/physics/mie/mie_ab_to_optical_properties.js +47 -21
- package/src/core/math/random/randomIntegerBetween.d.ts.map +1 -1
- package/src/core/math/random/randomIntegerBetween.js +4 -1
- package/src/core/math/solveCubic.d.ts.map +1 -1
- package/src/core/math/solveCubic.js +95 -82
- package/src/core/math/spline/computeCatmullRomSplineUniformDistance.d.ts.map +1 -1
- package/src/core/math/spline/computeCatmullRomSplineUniformDistance.js +13 -0
- package/src/core/math/statistics/softmax.js +1 -1
- package/src/core/model/node-graph/visual/NodeGraphVisualData.d.ts +1 -0
- package/src/core/model/node-graph/visual/NodeGraphVisualData.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/NodeGraphVisualData.js +2 -1
- package/src/core/model/node-graph/visual/NodeVisualData.js +1 -1
- package/src/core/model/object/ImmutableObjectPool.d.ts +7 -0
- package/src/core/model/object/ImmutableObjectPool.d.ts.map +1 -1
- package/src/core/model/object/ImmutableObjectPool.js +20 -10
- package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.d.ts.map +1 -1
- package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.js +39 -2
- package/src/core/model/reactive/model/terminal/ReactiveReference.d.ts.map +1 -1
- package/src/core/model/reactive/model/terminal/ReactiveReference.js +2 -0
- package/src/core/parser/simple/readHexToken.d.ts.map +1 -1
- package/src/core/parser/simple/readHexToken.js +6 -0
- package/src/core/primitives/numbers/number_pretty_print.d.ts.map +1 -1
- package/src/core/primitives/numbers/number_pretty_print.js +4 -1
- package/src/core/primitives/strings/string_jaro_winkler.js +1 -1
- package/src/core/process/CompositeProcess.js +1 -1
- package/src/core/process/action/AsynchronousDelayAction.d.ts.map +1 -1
- package/src/core/process/action/AsynchronousDelayAction.js +3 -0
- package/src/core/process/executor/ConcurrentExecutor.d.ts.map +1 -1
- package/src/core/process/executor/ConcurrentExecutor.js +3 -2
- package/src/core/process/task/util/randomCountTask.d.ts.map +1 -1
- package/src/core/process/task/util/randomCountTask.js +3 -1
- package/src/core/process/undo/ActionProcessor.d.ts.map +1 -1
- package/src/core/process/undo/ActionProcessor.js +5 -3
- package/src/core/process/worker/WorkerBuilder.js +3 -3
- package/src/engine/animation/curve/AnimationCurve.d.ts.map +1 -1
- package/src/engine/animation/curve/AnimationCurve.js +4 -2
- package/src/engine/control/first-person/DESIGN.md +1 -1
- package/src/engine/control/first-person/FirstPersonMotionPhase.d.ts +55 -0
- package/src/engine/control/first-person/FirstPersonMotionPhase.d.ts.map +1 -0
- package/src/engine/control/first-person/FirstPersonMotionPhase.js +134 -0
- package/src/engine/control/first-person/FirstPersonPlayerController.d.ts +23 -2
- package/src/engine/control/first-person/FirstPersonPlayerController.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerController.js +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts +168 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.js +115 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +71 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +255 -55
- package/src/engine/control/first-person/abilities/LedgeGrab.d.ts +82 -43
- package/src/engine/control/first-person/abilities/LedgeGrab.d.ts.map +1 -1
- package/src/engine/control/first-person/abilities/LedgeGrab.js +405 -213
- package/src/engine/control/first-person/abilities/Mantle.d.ts +6 -0
- package/src/engine/control/first-person/abilities/Mantle.d.ts.map +1 -1
- package/src/engine/control/first-person/abilities/Mantle.js +104 -45
- package/src/engine/control/first-person/abilities/ScrambleUp.d.ts +61 -0
- package/src/engine/control/first-person/abilities/ScrambleUp.d.ts.map +1 -0
- package/src/engine/control/first-person/abilities/ScrambleUp.js +182 -0
- package/src/engine/control/first-person/math/jumpDynamics.d.ts +84 -0
- package/src/engine/control/first-person/math/jumpDynamics.d.ts.map +1 -0
- package/src/engine/control/first-person/math/jumpDynamics.js +108 -0
- package/src/engine/control/first-person/prototype_first_person_controller.js +45 -1
- package/src/engine/graphics/camera/testClippingPlaneComputation.js +1 -1
- package/src/engine/graphics/ecs/path/tube/prototypeAnimatedPathMask.js +1 -1
- package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +1 -1
- package/src/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +1 -1
- package/src/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +1 -1
- package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +1 -1
- package/src/engine/graphics/sh3/path_tracer/texture/sample_material.js +1 -1
- package/src/engine/graphics/shadows/testShadowMapRendering.js +1 -1
- package/src/engine/physics/CONSTRAINT_SOLVER_BENCH_LOG.md +208 -0
- package/src/engine/physics/CONSTRAINT_SOLVER_IMPROVEMENTS_PLAN.md +364 -0
- package/src/engine/physics/PLAN.md +6 -5
- package/src/engine/physics/constraint/solve_constraints.d.ts +4 -1
- package/src/engine/physics/constraint/solve_constraints.d.ts.map +1 -1
- package/src/engine/physics/constraint/solve_constraints.js +147 -33
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +1750 -1747
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +3 -3
- package/src/engine/physics/gjk/gjk_epa_penetration.d.ts.map +1 -1
- package/src/engine/physics/gjk/gjk_epa_penetration.js +5 -9
- package/src/engine/physics/narrowphase/convex_convex_manifold.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/convex_convex_manifold.js +22 -25
- package/src/engine/physics/narrowphase/convex_decomposition.d.ts +32 -13
- package/src/engine/physics/narrowphase/convex_decomposition.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/convex_decomposition.js +61 -65
- package/src/engine/physics/narrowphase/mesh_convex_hull.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/mesh_convex_hull.js +13 -8
- package/src/engine/physics/narrowphase/refine_ray_concave.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/refine_ray_concave.js +5 -3
- package/src/engine/physics/narrowphase/refine_ray_hit.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/refine_ray_hit.js +81 -78
- package/src/engine/sound/SoundEngine.d.ts.map +1 -1
- package/src/engine/sound/SoundEngine.js +28 -0
- package/src/engine/sound/dB2Volume.d.ts +1 -1
- package/src/engine/sound/dB2Volume.d.ts.map +1 -1
- package/src/engine/sound/dB2Volume.js +1 -1
- package/src/engine/sound/ecs/SoundController.d.ts +4 -0
- package/src/engine/sound/ecs/SoundController.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundController.js +4 -0
- package/src/engine/sound/ecs/SoundControllerSystem.d.ts +5 -0
- package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundControllerSystem.js +5 -0
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts +69 -0
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -0
- package/src/engine/sound/ecs/audio/AudioEmitter.js +83 -0
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +97 -0
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -0
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +238 -0
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +90 -0
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -0
- package/src/engine/sound/ecs/audio/LiveEmitterSet.js +324 -0
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts +59 -0
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts.map +1 -0
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.js +140 -0
- package/src/engine/sound/ecs/emitter/SoundEmitter.d.ts +16 -65
- package/src/engine/sound/ecs/emitter/SoundEmitter.d.ts.map +1 -1
- package/src/engine/sound/ecs/emitter/SoundEmitter.js +19 -224
- package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.d.ts +26 -29
- package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.d.ts.map +1 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.js +168 -135
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts +36 -59
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +154 -390
- package/src/engine/sound/ecs/emitter/SoundTrack.d.ts +20 -23
- package/src/engine/sound/ecs/emitter/SoundTrack.d.ts.map +1 -1
- package/src/engine/sound/ecs/emitter/SoundTrack.js +34 -152
- package/src/engine/sound/sopra/IMPLEMENTATION_PLAN.md +993 -0
- package/src/engine/sound/sopra/README.md +643 -7
- package/src/engine/sound/sopra/SopraEngine.d.ts +229 -0
- package/src/engine/sound/sopra/SopraEngine.d.ts.map +1 -0
- package/src/engine/sound/sopra/SopraEngine.js +423 -0
- package/src/engine/sound/sopra/asset/AssetManagerBufferProvider.d.ts +26 -0
- package/src/engine/sound/sopra/asset/AssetManagerBufferProvider.d.ts.map +1 -0
- package/src/engine/sound/sopra/asset/AssetManagerBufferProvider.js +71 -0
- package/src/engine/sound/sopra/asset/BufferProvider.d.ts +24 -0
- package/src/engine/sound/sopra/asset/BufferProvider.d.ts.map +1 -0
- package/src/engine/sound/sopra/asset/BufferProvider.js +29 -0
- package/src/engine/sound/sopra/asset/StubBufferProvider.d.ts +31 -0
- package/src/engine/sound/sopra/asset/StubBufferProvider.d.ts.map +1 -0
- package/src/engine/sound/sopra/asset/StubBufferProvider.js +58 -0
- package/src/engine/sound/sopra/definition/BusDefinition.d.ts +83 -0
- package/src/engine/sound/sopra/definition/BusDefinition.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/BusDefinition.js +142 -0
- package/src/engine/sound/sopra/definition/BusDefinitionSerializationAdapter.d.ts +17 -0
- package/src/engine/sound/sopra/definition/BusDefinitionSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/BusDefinitionSerializationAdapter.js +54 -0
- package/src/engine/sound/sopra/definition/DuckingRule.d.ts +71 -0
- package/src/engine/sound/sopra/definition/DuckingRule.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/DuckingRule.js +106 -0
- package/src/engine/sound/sopra/definition/DuckingRuleSerializationAdapter.d.ts +18 -0
- package/src/engine/sound/sopra/definition/DuckingRuleSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/DuckingRuleSerializationAdapter.js +31 -0
- package/src/engine/sound/sopra/definition/EventDescription.d.ts +132 -0
- package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/EventDescription.js +259 -0
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts +17 -0
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.js +71 -0
- package/src/engine/sound/sopra/definition/MixerSnapshot.d.ts +51 -0
- package/src/engine/sound/sopra/definition/MixerSnapshot.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/MixerSnapshot.js +83 -0
- package/src/engine/sound/sopra/definition/MixerSnapshotSerializationAdapter.d.ts +18 -0
- package/src/engine/sound/sopra/definition/MixerSnapshotSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/MixerSnapshotSerializationAdapter.js +39 -0
- package/src/engine/sound/sopra/definition/ParameterDefinition.d.ts +72 -0
- package/src/engine/sound/sopra/definition/ParameterDefinition.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/ParameterDefinition.js +117 -0
- package/src/engine/sound/sopra/definition/ParameterDefinitionSerializationAdapter.d.ts +18 -0
- package/src/engine/sound/sopra/definition/ParameterDefinitionSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/ParameterDefinitionSerializationAdapter.js +31 -0
- package/src/engine/sound/sopra/definition/SopraPanningModel.d.ts +14 -0
- package/src/engine/sound/sopra/definition/SopraPanningModel.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/SopraPanningModel.js +20 -0
- package/src/engine/sound/sopra/definition/VoiceStealMode.d.ts +10 -0
- package/src/engine/sound/sopra/definition/VoiceStealMode.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/VoiceStealMode.js +18 -0
- package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.d.ts +93 -0
- package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.js +109 -0
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts +80 -0
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.js +181 -0
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClipSerializationAdapter.d.ts +17 -0
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClipSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClipSerializationAdapter.js +74 -0
- package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.d.ts +34 -0
- package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.js +100 -0
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.d.ts +101 -0
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.js +230 -0
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClipSerializationAdapter.d.ts +17 -0
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClipSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClipSerializationAdapter.js +54 -0
- package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts +103 -0
- package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/SampleAudioClip.js +191 -0
- package/src/engine/sound/sopra/definition/clip/SampleAudioClipSerializationAdapter.d.ts +18 -0
- package/src/engine/sound/sopra/definition/clip/SampleAudioClipSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/SampleAudioClipSerializationAdapter.js +39 -0
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClip.d.ts +40 -0
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClip.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClip.js +91 -0
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClipSerializationAdapter.d.ts +17 -0
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClipSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClipSerializationAdapter.js +42 -0
- package/src/engine/sound/sopra/definition/clip/SilenceAudioClip.d.ts +44 -0
- package/src/engine/sound/sopra/definition/clip/SilenceAudioClip.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/SilenceAudioClip.js +77 -0
- package/src/engine/sound/sopra/definition/clip/SilenceAudioClipSerializationAdapter.d.ts +18 -0
- package/src/engine/sound/sopra/definition/clip/SilenceAudioClipSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/SilenceAudioClipSerializationAdapter.js +27 -0
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts +65 -0
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.js +131 -0
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClipSerializationAdapter.d.ts +17 -0
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClipSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClipSerializationAdapter.js +41 -0
- package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.d.ts +24 -0
- package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.js +24 -0
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts +70 -0
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.js +120 -0
- package/src/engine/sound/sopra/definition/effect/CompressorEffectSerializationAdapter.d.ts +18 -0
- package/src/engine/sound/sopra/definition/effect/CompressorEffectSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/effect/CompressorEffectSerializationAdapter.js +31 -0
- package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts +74 -0
- package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/effect/EqEffect.js +128 -0
- package/src/engine/sound/sopra/definition/effect/EqEffectSerializationAdapter.d.ts +18 -0
- package/src/engine/sound/sopra/definition/effect/EqEffectSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/effect/EqEffectSerializationAdapter.js +29 -0
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts +49 -0
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +101 -0
- package/src/engine/sound/sopra/definition/effect/ReverbEffectSerializationAdapter.d.ts +18 -0
- package/src/engine/sound/sopra/definition/effect/ReverbEffectSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/effect/ReverbEffectSerializationAdapter.js +25 -0
- package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.d.ts +31 -0
- package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.d.ts.map +1 -0
- package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.js +106 -0
- package/src/engine/sound/sopra/runtime/BusGraph.d.ts +79 -0
- package/src/engine/sound/sopra/runtime/BusGraph.d.ts.map +1 -0
- package/src/engine/sound/sopra/runtime/BusGraph.js +227 -0
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts +144 -0
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -0
- package/src/engine/sound/sopra/runtime/EventInstance.js +579 -0
- package/src/engine/sound/sopra/runtime/ParameterStore.d.ts +42 -0
- package/src/engine/sound/sopra/runtime/ParameterStore.d.ts.map +1 -0
- package/src/engine/sound/sopra/runtime/ParameterStore.js +98 -0
- package/src/engine/sound/sopra/runtime/SopraPlaybackContext.d.ts +42 -0
- package/src/engine/sound/sopra/runtime/SopraPlaybackContext.d.ts.map +1 -0
- package/src/engine/sound/sopra/runtime/SopraPlaybackContext.js +68 -0
- package/src/engine/sound/sopra/runtime/Voice.d.ts +67 -0
- package/src/engine/sound/sopra/runtime/Voice.d.ts.map +1 -0
- package/src/engine/sound/sopra/runtime/Voice.js +145 -0
- package/src/engine/sound/sopra/runtime/VoiceManager.d.ts +38 -0
- package/src/engine/sound/sopra/runtime/VoiceManager.d.ts.map +1 -0
- package/src/engine/sound/sopra/runtime/VoiceManager.js +136 -0
- package/src/engine/sound/sopra/runtime/VoicePool.d.ts +12 -0
- package/src/engine/sound/sopra/runtime/VoicePool.d.ts.map +1 -0
- package/src/engine/sound/sopra/runtime/VoicePool.js +17 -0
- package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.d.ts +11 -0
- package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.d.ts.map +1 -0
- package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.js +42 -0
- package/src/engine/sound/sopra/serialization/sopraJSON.d.ts +33 -0
- package/src/engine/sound/sopra/serialization/sopraJSON.d.ts.map +1 -0
- package/src/engine/sound/sopra/serialization/sopraJSON.js +99 -0
- package/src/engine/sound/sopra/serialization/sopraSerializationHarness.d.ts +27 -0
- package/src/engine/sound/sopra/serialization/sopraSerializationHarness.d.ts.map +1 -0
- package/src/engine/sound/sopra/serialization/sopraSerializationHarness.js +49 -0
- package/src/engine/sound/sopra/util/MockAudioContext.d.ts +74 -0
- package/src/engine/sound/sopra/util/MockAudioContext.d.ts.map +1 -0
- package/src/engine/sound/sopra/util/MockAudioContext.js +215 -0
- package/src/engine/sound/sopra/util/buildAttenuationCurve.d.ts +15 -0
- package/src/engine/sound/sopra/util/buildAttenuationCurve.d.ts.map +1 -0
- package/src/engine/sound/sopra/util/buildAttenuationCurve.js +40 -0
- package/src/engine/sound/sopra/util/fadeOutAndStop.d.ts +34 -0
- package/src/engine/sound/sopra/util/fadeOutAndStop.d.ts.map +1 -0
- package/src/engine/sound/sopra/util/fadeOutAndStop.js +60 -0
- package/src/engine/sound/volume2dB.d.ts +1 -1
- package/src/engine/sound/volume2dB.d.ts.map +1 -1
- package/src/engine/sound/volume2dB.js +1 -1
- package/src/engine/graphics/sh3/path_tracer/sampling/v3_orthonormal_matrix_from_normal.d.ts.map +0 -1
- package/src/engine/physics/narrowphase/ray_shapes.d.ts +0 -66
- package/src/engine/physics/narrowphase/ray_shapes.d.ts.map +0 -1
- package/src/engine/physics/narrowphase/ray_shapes.js +0 -187
- package/src/engine/sound/ecs/emitter/SoundEmitterChannel.d.ts +0 -23
- package/src/engine/sound/ecs/emitter/SoundEmitterChannel.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterChannel.js +0 -32
- package/src/engine/sound/ecs/emitter/SoundTrackNodes.d.ts +0 -18
- package/src/engine/sound/ecs/emitter/SoundTrackNodes.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundTrackNodes.js +0 -18
- package/src/engine/sound/sopra/AbstractAudioClip.d.ts +0 -26
- package/src/engine/sound/sopra/AbstractAudioClip.d.ts.map +0 -1
- package/src/engine/sound/sopra/AbstractAudioClip.js +0 -29
- package/src/engine/sound/sopra/ContainerAudioClip.d.ts +0 -12
- package/src/engine/sound/sopra/ContainerAudioClip.d.ts.map +0 -1
- package/src/engine/sound/sopra/ContainerAudioClip.js +0 -13
- package/src/engine/sound/sopra/RandomContainerAudioClip.d.ts +0 -12
- package/src/engine/sound/sopra/RandomContainerAudioClip.d.ts.map +0 -1
- package/src/engine/sound/sopra/RandomContainerAudioClip.js +0 -15
- package/src/engine/sound/sopra/SequenceContainerAudioClip.d.ts +0 -7
- package/src/engine/sound/sopra/SequenceContainerAudioClip.d.ts.map +0 -1
- package/src/engine/sound/sopra/SequenceContainerAudioClip.js +0 -8
- package/src/engine/sound/sopra/SilenceAudioClip.d.ts +0 -13
- package/src/engine/sound/sopra/SilenceAudioClip.d.ts.map +0 -1
- package/src/engine/sound/sopra/SilenceAudioClip.js +0 -15
- /package/src/{engine/graphics/sh3/path_tracer/sampling → core/geom/vec3}/v3_orthonormal_matrix_from_normal.d.ts +0 -0
|
@@ -68,10 +68,12 @@ function doLayerLayout(circles) {
|
|
|
68
68
|
|
|
69
69
|
const r = circle.r;
|
|
70
70
|
|
|
71
|
-
circle
|
|
72
|
-
|
|
71
|
+
// write the real circle fields (x/y), not phantom x0/y0 which nothing reads — that made the
|
|
72
|
+
// layered initial layout silently discarded.
|
|
73
|
+
circle.x = offsetX + r;
|
|
74
|
+
circle.y = offsetY + r;
|
|
73
75
|
|
|
74
|
-
offsetX += r;
|
|
76
|
+
offsetX += 2 * r; // advance by the diameter so circles in a layer don't overlap
|
|
75
77
|
|
|
76
78
|
layerHeight = Math.max(r, layerHeight);
|
|
77
79
|
}
|
|
@@ -734,9 +736,9 @@ function resolveCircleLineOverlap(circle, c0, c1) {
|
|
|
734
736
|
//Impale
|
|
735
737
|
const mid = (t1 + t2) / 2;
|
|
736
738
|
|
|
737
|
-
//find closest point on the line to the circle center
|
|
738
|
-
const nX =
|
|
739
|
-
const nY =
|
|
739
|
+
//find closest point on the line to the circle center: P(mid) = start + mid * direction
|
|
740
|
+
const nX = x0 + mid * dX;
|
|
741
|
+
const nY = y0 + mid * dY;
|
|
740
742
|
|
|
741
743
|
//compute distance to center
|
|
742
744
|
const ndX = cX - nX;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compute_kway_params.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/graph/metis/native/refine/compute_kway_params.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,2CAHW,OAAO,kBAAkB,EAAE,UAAU,mBACrC,MAAM,
|
|
1
|
+
{"version":3,"file":"compute_kway_params.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/graph/metis/native/refine/compute_kway_params.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,2CAHW,OAAO,kBAAkB,EAAE,UAAU,mBACrC,MAAM,QA0HhB"}
|
|
@@ -1,138 +1,139 @@
|
|
|
1
|
-
import { assert } from "../../../../assert.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* From a freshly-assigned `vertex_partition[]`, populate the rest of the k-way
|
|
5
|
-
* refinement state: per-partition weights, per-vertex internal/external degree,
|
|
6
|
-
* the neighbour-partition list (via `neighbor_partition_pool`), the boundary
|
|
7
|
-
* list, and the total edge cut.
|
|
8
|
-
*
|
|
9
|
-
* Mirrors `ComputeKWayPartitionParams` from libmetis/kwayrefine.c, cut-objective
|
|
10
|
-
* branch only.
|
|
11
|
-
*
|
|
12
|
-
* Boundary insertion rule (refinement-type boundary): a vertex is added to the
|
|
13
|
-
* boundary when `external_degree >= internal_degree`. That captures "worth
|
|
14
|
-
* considering for a move" — vertices with no external pull aren't candidates.
|
|
15
|
-
*
|
|
16
|
-
* @param {import('../MetisGraph.js').MetisGraph} graph
|
|
17
|
-
* @param {number} partition_count
|
|
18
|
-
*/
|
|
19
|
-
export function compute_kway_params(graph, partition_count) {
|
|
20
|
-
const vertex_count = graph.vertex_count;
|
|
21
|
-
const edge_addresses = graph.edge_addresses;
|
|
22
|
-
const adjacency = graph.adjacency;
|
|
23
|
-
const edge_weights = graph.edge_weights;
|
|
24
|
-
const vertex_weights = graph.vertex_weights;
|
|
25
|
-
const vertex_partition = graph.vertex_partition;
|
|
26
|
-
const partition_weights = graph.partition_weights;
|
|
27
|
-
const internal_degree = graph.internal_degree;
|
|
28
|
-
const external_degree = graph.external_degree;
|
|
29
|
-
const neighbor_partition_count = graph.neighbor_partition_count;
|
|
30
|
-
const neighbor_partition_offset = graph.neighbor_partition_offset;
|
|
31
|
-
const boundary_vertices = graph.boundary_vertices;
|
|
32
|
-
const boundary_position_of_vertex = graph.boundary_position_of_vertex;
|
|
33
|
-
const neighbor_partition_pool = graph.neighbor_partition_pool;
|
|
34
|
-
|
|
35
|
-
assert.equal(vertex_partition !== null, true, 'graph.vertex_partition must be allocated');
|
|
36
|
-
assert.equal(neighbor_partition_pool !== null, true, 'graph.neighbor_partition_pool must be allocated');
|
|
37
|
-
|
|
38
|
-
partition_weights.fill(0);
|
|
39
|
-
internal_degree.fill(0);
|
|
40
|
-
external_degree.fill(0);
|
|
41
|
-
neighbor_partition_count.fill(0);
|
|
42
|
-
neighbor_partition_offset.fill(-1);
|
|
43
|
-
boundary_position_of_vertex.fill(-1);
|
|
44
|
-
neighbor_partition_pool.clear();
|
|
45
|
-
|
|
46
|
-
// Recompute partition weights from `vertex_partition`. initial_kway_bfs
|
|
47
|
-
// already produces these, but refinement passes invalidate the count, so
|
|
48
|
-
// recompute unconditionally to keep this routine self-contained.
|
|
49
|
-
for (let v = 0; v < vertex_count; v++) {
|
|
50
|
-
partition_weights[vertex_partition[v]] += vertex_weights[v];
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Scratch arrays for per-vertex neighbour-partition deduplication:
|
|
54
|
-
// `scratch_partition_position[p]` = where in `scratch_partition_id` /
|
|
55
|
-
// `scratch_partition_edge_weight` we've stored partition p for the current
|
|
56
|
-
// vertex, or -1 if p hasn't been seen yet for this vertex.
|
|
57
|
-
const scratch_partition_position = new Int32Array(partition_count);
|
|
58
|
-
scratch_partition_position.fill(-1);
|
|
59
|
-
|
|
60
|
-
// A vertex's distinct neighbour-partition count never exceeds its degree
|
|
61
|
-
// nor `partition_count`; `partition_count` is the safe upper bound on
|
|
62
|
-
// scratch size.
|
|
63
|
-
const scratch_partition_id = new Uint32Array(partition_count);
|
|
64
|
-
const scratch_partition_edge_weight = new Uint32Array(partition_count);
|
|
65
|
-
|
|
66
|
-
let boundary_count = 0;
|
|
67
|
-
let cut_doubled = 0;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
let
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
pool_data[word_base + nbr * 2
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
boundary_count
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
//
|
|
136
|
-
|
|
137
|
-
graph.
|
|
138
|
-
|
|
1
|
+
import { assert } from "../../../../assert.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* From a freshly-assigned `vertex_partition[]`, populate the rest of the k-way
|
|
5
|
+
* refinement state: per-partition weights, per-vertex internal/external degree,
|
|
6
|
+
* the neighbour-partition list (via `neighbor_partition_pool`), the boundary
|
|
7
|
+
* list, and the total edge cut.
|
|
8
|
+
*
|
|
9
|
+
* Mirrors `ComputeKWayPartitionParams` from libmetis/kwayrefine.c, cut-objective
|
|
10
|
+
* branch only.
|
|
11
|
+
*
|
|
12
|
+
* Boundary insertion rule (refinement-type boundary): a vertex is added to the
|
|
13
|
+
* boundary when `external_degree >= internal_degree`. That captures "worth
|
|
14
|
+
* considering for a move" — vertices with no external pull aren't candidates.
|
|
15
|
+
*
|
|
16
|
+
* @param {import('../MetisGraph.js').MetisGraph} graph
|
|
17
|
+
* @param {number} partition_count
|
|
18
|
+
*/
|
|
19
|
+
export function compute_kway_params(graph, partition_count) {
|
|
20
|
+
const vertex_count = graph.vertex_count;
|
|
21
|
+
const edge_addresses = graph.edge_addresses;
|
|
22
|
+
const adjacency = graph.adjacency;
|
|
23
|
+
const edge_weights = graph.edge_weights;
|
|
24
|
+
const vertex_weights = graph.vertex_weights;
|
|
25
|
+
const vertex_partition = graph.vertex_partition;
|
|
26
|
+
const partition_weights = graph.partition_weights;
|
|
27
|
+
const internal_degree = graph.internal_degree;
|
|
28
|
+
const external_degree = graph.external_degree;
|
|
29
|
+
const neighbor_partition_count = graph.neighbor_partition_count;
|
|
30
|
+
const neighbor_partition_offset = graph.neighbor_partition_offset;
|
|
31
|
+
const boundary_vertices = graph.boundary_vertices;
|
|
32
|
+
const boundary_position_of_vertex = graph.boundary_position_of_vertex;
|
|
33
|
+
const neighbor_partition_pool = graph.neighbor_partition_pool;
|
|
34
|
+
|
|
35
|
+
assert.equal(vertex_partition !== null, true, 'graph.vertex_partition must be allocated');
|
|
36
|
+
assert.equal(neighbor_partition_pool !== null, true, 'graph.neighbor_partition_pool must be allocated');
|
|
37
|
+
|
|
38
|
+
partition_weights.fill(0);
|
|
39
|
+
internal_degree.fill(0);
|
|
40
|
+
external_degree.fill(0);
|
|
41
|
+
neighbor_partition_count.fill(0);
|
|
42
|
+
neighbor_partition_offset.fill(-1);
|
|
43
|
+
boundary_position_of_vertex.fill(-1);
|
|
44
|
+
neighbor_partition_pool.clear();
|
|
45
|
+
|
|
46
|
+
// Recompute partition weights from `vertex_partition`. initial_kway_bfs
|
|
47
|
+
// already produces these, but refinement passes invalidate the count, so
|
|
48
|
+
// recompute unconditionally to keep this routine self-contained.
|
|
49
|
+
for (let v = 0; v < vertex_count; v++) {
|
|
50
|
+
partition_weights[vertex_partition[v]] += vertex_weights[v];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Scratch arrays for per-vertex neighbour-partition deduplication:
|
|
54
|
+
// `scratch_partition_position[p]` = where in `scratch_partition_id` /
|
|
55
|
+
// `scratch_partition_edge_weight` we've stored partition p for the current
|
|
56
|
+
// vertex, or -1 if p hasn't been seen yet for this vertex.
|
|
57
|
+
const scratch_partition_position = new Int32Array(partition_count);
|
|
58
|
+
scratch_partition_position.fill(-1);
|
|
59
|
+
|
|
60
|
+
// A vertex's distinct neighbour-partition count never exceeds its degree
|
|
61
|
+
// nor `partition_count`; `partition_count` is the safe upper bound on
|
|
62
|
+
// scratch size.
|
|
63
|
+
const scratch_partition_id = new Uint32Array(partition_count);
|
|
64
|
+
const scratch_partition_edge_weight = new Uint32Array(partition_count);
|
|
65
|
+
|
|
66
|
+
let boundary_count = 0;
|
|
67
|
+
let cut_doubled = 0;
|
|
68
|
+
|
|
69
|
+
for (let vertex = 0; vertex < vertex_count; vertex++) {
|
|
70
|
+
const my_partition = vertex_partition[vertex];
|
|
71
|
+
|
|
72
|
+
let v_internal_degree = 0;
|
|
73
|
+
let v_external_degree = 0;
|
|
74
|
+
let distinct_neighbor_partitions = 0;
|
|
75
|
+
|
|
76
|
+
const edge_start = edge_addresses[vertex];
|
|
77
|
+
const edge_end = edge_addresses[vertex + 1];
|
|
78
|
+
for (let edge_offset = edge_start; edge_offset < edge_end; edge_offset++) {
|
|
79
|
+
const neighbor_partition = vertex_partition[adjacency[edge_offset]];
|
|
80
|
+
const edge_weight = edge_weights[edge_offset];
|
|
81
|
+
if (neighbor_partition === my_partition) {
|
|
82
|
+
v_internal_degree += edge_weight;
|
|
83
|
+
} else {
|
|
84
|
+
v_external_degree += edge_weight;
|
|
85
|
+
const existing_position = scratch_partition_position[neighbor_partition];
|
|
86
|
+
if (existing_position === -1) {
|
|
87
|
+
scratch_partition_position[neighbor_partition] = distinct_neighbor_partitions;
|
|
88
|
+
scratch_partition_id[distinct_neighbor_partitions] = neighbor_partition;
|
|
89
|
+
scratch_partition_edge_weight[distinct_neighbor_partitions] = edge_weight;
|
|
90
|
+
distinct_neighbor_partitions++;
|
|
91
|
+
} else {
|
|
92
|
+
scratch_partition_edge_weight[existing_position] += edge_weight;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
internal_degree[vertex] = v_internal_degree;
|
|
98
|
+
external_degree[vertex] = v_external_degree;
|
|
99
|
+
|
|
100
|
+
if (v_external_degree > 0) {
|
|
101
|
+
cut_doubled += v_external_degree;
|
|
102
|
+
|
|
103
|
+
// Reserve pool slots sized to the vertex's degree (not just the
|
|
104
|
+
// current distinct-neighbour-partition count). fm_kway can grow
|
|
105
|
+
// a vertex's neighbour-partition list when its neighbours move
|
|
106
|
+
// and introduce a new partition; we need room.
|
|
107
|
+
const degree = edge_end - edge_start;
|
|
108
|
+
const pool_record_offset = neighbor_partition_pool.allocate_continuous(degree);
|
|
109
|
+
// Re-read the backing view AFTER allocating: allocate_continuous may have grown the pool and
|
|
110
|
+
// replaced data_uint32, leaving any previously-captured view pointing at a detached (stale) buffer.
|
|
111
|
+
const pool_data = neighbor_partition_pool.data_uint32;
|
|
112
|
+
neighbor_partition_offset[vertex] = pool_record_offset;
|
|
113
|
+
neighbor_partition_count[vertex] = distinct_neighbor_partitions;
|
|
114
|
+
|
|
115
|
+
// Each pool record is 8 bytes = 2 uint32 words: (partition_id, edge_weight).
|
|
116
|
+
const word_base = neighbor_partition_pool.element_word(pool_record_offset);
|
|
117
|
+
for (let nbr = 0; nbr < distinct_neighbor_partitions; nbr++) {
|
|
118
|
+
pool_data[word_base + nbr * 2] = scratch_partition_id[nbr];
|
|
119
|
+
pool_data[word_base + nbr * 2 + 1] = scratch_partition_edge_weight[nbr];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (v_external_degree >= v_internal_degree) {
|
|
123
|
+
boundary_vertices[boundary_count] = vertex;
|
|
124
|
+
boundary_position_of_vertex[vertex] = boundary_count;
|
|
125
|
+
boundary_count++;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Reset only the touched scratch entries.
|
|
130
|
+
for (let nbr = 0; nbr < distinct_neighbor_partitions; nbr++) {
|
|
131
|
+
scratch_partition_position[scratch_partition_id[nbr]] = -1;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Each crossing edge contributes to both endpoints' external_degree, so we
|
|
136
|
+
// counted it twice across the loop above.
|
|
137
|
+
graph.current_cut = cut_doubled >> 1;
|
|
138
|
+
graph.boundary_count = boundary_count;
|
|
139
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mn_graph_coarsen.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/mn_graph_coarsen.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,gFAFW,MAAM,
|
|
1
|
+
{"version":3,"file":"mn_graph_coarsen.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/mn_graph_coarsen.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,gFAFW,MAAM,QA6BhB"}
|
|
@@ -30,8 +30,10 @@ export function mn_graph_coarsen(graph, max_node_limit) {
|
|
|
30
30
|
// attempt collapse of the heaviest edge
|
|
31
31
|
const collapsed = mn_graph_collapse_weighted_edge(graph, edge, max_node_limit, open_set);
|
|
32
32
|
|
|
33
|
-
if(!collapsed){
|
|
34
|
-
|
|
33
|
+
if (!collapsed) {
|
|
34
|
+
// The edge legitimately can't be collapsed within max_node_limit (coarsening is done / this edge
|
|
35
|
+
// is rejected). Drop it from the heap and keep coarsening the rest rather than aborting.
|
|
36
|
+
continue;
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
}
|
|
@@ -195,17 +195,17 @@ export class NodeContainer {
|
|
|
195
195
|
* @returns {number}
|
|
196
196
|
*/
|
|
197
197
|
traverseEdges(visitor, thisArg) {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
198
|
+
// Iterate over a snapshot: a visitor may mutate the live __edges array (e.g. Graph.removeNode visits
|
|
199
|
+
// with removeEdge, which splices the edge out of this container). Walking the live array by index would
|
|
200
|
+
// skip edges whenever one is removed mid-traversal.
|
|
201
|
+
const edges = this.__edges.slice();
|
|
201
202
|
const n = edges.length;
|
|
202
203
|
|
|
203
|
-
for (; i < n; i++) {
|
|
204
|
-
|
|
205
|
-
visitor.call(thisArg, edge);
|
|
204
|
+
for (let i = 0; i < n; i++) {
|
|
205
|
+
visitor.call(thisArg, edges[i]);
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
return
|
|
208
|
+
return n;
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
/**
|
|
@@ -77,7 +77,7 @@ export class LocalizationEngine {
|
|
|
77
77
|
|
|
78
78
|
const fallback = fallbacks[i];
|
|
79
79
|
|
|
80
|
-
if (array_get_index_in_range(resolve_chain, fallback, 0, resolve_chain_end) !== -1) {
|
|
80
|
+
if (array_get_index_in_range(resolve_chain, fallback, 0, resolve_chain_end - 1) !== -1) {
|
|
81
81
|
// circular dependency, that language was already attempted
|
|
82
82
|
continue;
|
|
83
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bell_membership_function.d.ts","sourceRoot":"","sources":["../../../../src/core/math/bell_membership_function.js"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,4CANW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,
|
|
1
|
+
{"version":3,"file":"bell_membership_function.d.ts","sourceRoot":"","sources":["../../../../src/core/math/bell_membership_function.js"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,4CANW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAgBlB"}
|
|
@@ -18,7 +18,9 @@ export function bell_membership_function(v, a, b, c) {
|
|
|
18
18
|
const vc = v - c;
|
|
19
19
|
const N = vc / a;
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
// |(v-c)/a|^(2b): use the magnitude so the function is symmetric about c and avoids NaN from
|
|
22
|
+
// Math.pow(negative, non-integer) when v is left of center and b is non-integer.
|
|
23
|
+
const d = 1 + Math.pow(Math.abs(N), b * 2);
|
|
22
24
|
|
|
23
25
|
return 1 / d;
|
|
24
26
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Add two complex numbers
|
|
3
|
-
* @param {number[]} result
|
|
4
|
-
* @param {number[]} a
|
|
5
|
-
* @param {number[]} b
|
|
3
|
+
* @param {number[]|Float64Array|Float32Array} result
|
|
4
|
+
* @param {number[]|Float64Array|Float32Array} a
|
|
5
|
+
* @param {number[]|Float64Array|Float32Array} b
|
|
6
6
|
*/
|
|
7
|
-
export function complex_add(result: number[], a: number[], b: number[]): void;
|
|
7
|
+
export function complex_add(result: number[] | Float64Array | Float32Array, a: number[] | Float64Array | Float32Array, b: number[] | Float64Array | Float32Array): void;
|
|
8
8
|
//# sourceMappingURL=complex_add.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complex_add.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/complex/complex_add.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oCAJW,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"complex_add.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/complex/complex_add.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oCAJW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,KAClC,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,KAClC,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,QAK5C"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Add two complex numbers
|
|
3
|
-
* @param {number[]} result
|
|
4
|
-
* @param {number[]} a
|
|
5
|
-
* @param {number[]} b
|
|
3
|
+
* @param {number[]|Float64Array|Float32Array} result
|
|
4
|
+
* @param {number[]|Float64Array|Float32Array} a
|
|
5
|
+
* @param {number[]|Float64Array|Float32Array} b
|
|
6
6
|
*/
|
|
7
7
|
export function complex_add(result, a, b) {
|
|
8
8
|
result[0] = a[0] + b[0];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Divide two complex numbers
|
|
3
|
-
* @param {number[]} result
|
|
4
|
-
* @param {number[]} a
|
|
5
|
-
* @param {number[]} b
|
|
3
|
+
* @param {number[]|Float64Array|Float32Array} result
|
|
4
|
+
* @param {number[]|Float64Array|Float32Array} a
|
|
5
|
+
* @param {number[]|Float64Array|Float32Array} b
|
|
6
6
|
*/
|
|
7
|
-
export function complex_div(result: number[], a: number[], b: number[]): void;
|
|
7
|
+
export function complex_div(result: number[] | Float64Array | Float32Array, a: number[] | Float64Array | Float32Array, b: number[] | Float64Array | Float32Array): void;
|
|
8
8
|
//# sourceMappingURL=complex_div.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complex_div.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/complex/complex_div.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oCAJW,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"complex_div.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/complex/complex_div.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oCAJW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,KAClC,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,KAClC,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,QAO5C"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Divide two complex numbers
|
|
3
|
-
* @param {number[]} result
|
|
4
|
-
* @param {number[]} a
|
|
5
|
-
* @param {number[]} b
|
|
3
|
+
* @param {number[]|Float64Array|Float32Array} result
|
|
4
|
+
* @param {number[]|Float64Array|Float32Array} a
|
|
5
|
+
* @param {number[]|Float64Array|Float32Array} b
|
|
6
6
|
*/
|
|
7
7
|
export function complex_div(result, a, b) {
|
|
8
8
|
const sqr_norm_b = b[0] * b[0] + b[1] * b[1];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Multiply two complex numbers
|
|
3
|
-
* @param {number[]} result
|
|
4
|
-
* @param {number[]} a
|
|
5
|
-
* @param {number[]} b
|
|
3
|
+
* @param {number[]|Float64Array|Float32Array} result
|
|
4
|
+
* @param {number[]|Float64Array|Float32Array} a
|
|
5
|
+
* @param {number[]|Float64Array|Float32Array} b
|
|
6
6
|
*/
|
|
7
|
-
export function complex_mul(result: number[], a: number[], b: number[]): void;
|
|
7
|
+
export function complex_mul(result: number[] | Float64Array | Float32Array, a: number[] | Float64Array | Float32Array, b: number[] | Float64Array | Float32Array): void;
|
|
8
8
|
//# sourceMappingURL=complex_mul.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complex_mul.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/complex/complex_mul.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oCAJW,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"complex_mul.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/complex/complex_mul.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oCAJW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,KAClC,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,KAClC,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,QAK5C"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Multiply two complex numbers
|
|
3
|
-
* @param {number[]} result
|
|
4
|
-
* @param {number[]} a
|
|
5
|
-
* @param {number[]} b
|
|
3
|
+
* @param {number[]|Float64Array|Float32Array} result
|
|
4
|
+
* @param {number[]|Float64Array|Float32Array} a
|
|
5
|
+
* @param {number[]|Float64Array|Float32Array} b
|
|
6
6
|
*/
|
|
7
7
|
export function complex_mul(result, a, b) {
|
|
8
8
|
result[0] = a[0] * b[0] - a[1] * b[1];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Subtract two complex numbers
|
|
3
|
-
* @param {number[]} result
|
|
4
|
-
* @param {number[]} a
|
|
5
|
-
* @param {number[]} b
|
|
3
|
+
* @param {number[]|Float64Array|Float32Array} result
|
|
4
|
+
* @param {number[]|Float64Array|Float32Array} a
|
|
5
|
+
* @param {number[]|Float64Array|Float32Array} b
|
|
6
6
|
*/
|
|
7
|
-
export function complex_sub(result: number[], a: number[], b: number[]): void;
|
|
7
|
+
export function complex_sub(result: number[] | Float64Array | Float32Array, a: number[] | Float64Array | Float32Array, b: number[] | Float64Array | Float32Array): void;
|
|
8
8
|
//# sourceMappingURL=complex_sub.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complex_sub.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/complex/complex_sub.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oCAJW,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"complex_sub.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/complex/complex_sub.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oCAJW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,KAClC,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,KAClC,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,QAK5C"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Subtract two complex numbers
|
|
3
|
-
* @param {number[]} result
|
|
4
|
-
* @param {number[]} a
|
|
5
|
-
* @param {number[]} b
|
|
3
|
+
* @param {number[]|Float64Array|Float32Array} result
|
|
4
|
+
* @param {number[]|Float64Array|Float32Array} a
|
|
5
|
+
* @param {number[]|Float64Array|Float32Array} b
|
|
6
6
|
*/
|
|
7
7
|
export function complex_sub(result, a, b) {
|
|
8
8
|
result[0] = a[0] - b[0];
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Performs a 1D Inverse Discrete Cosine Transform on an 8-element block.
|
|
3
3
|
*
|
|
4
4
|
* This function implements a fast AAN (Arai-Agui-Nakajima) algorithm.
|
|
5
5
|
* It performs the transformation in-place, modifying the input array directly.
|
|
6
6
|
*
|
|
7
7
|
* NOTE: ported from ffmpeg https://github.com/RPi-Distro/ffmpeg/blob/3a48fe739a020d939a4e752684ef1eed901fd189/libavcodec/exr.c#L916
|
|
8
8
|
*
|
|
9
|
-
* @param {Float64Array} block A pointer to an array of 8
|
|
9
|
+
* @param {number[]|Float32Array|Float64Array} block A pointer to an array of 8 floating-point values.
|
|
10
10
|
* @param {number} offset
|
|
11
|
-
* @param {number} stride
|
|
11
|
+
* @param {number} stride for images, this will typically be number of channels.
|
|
12
12
|
*/
|
|
13
|
-
export function idct_1d(block: Float64Array, offset: number, stride: number): void;
|
|
13
|
+
export function idct_1d(block: number[] | Float32Array | Float64Array, offset: number, stride: number): void;
|
|
14
14
|
//# sourceMappingURL=idct_1d.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idct_1d.d.ts","sourceRoot":"","sources":["../../../../src/core/math/idct_1d.js"],"names":[],"mappings":"AAaA;;;;;;;;;;;GAWG;AACH,+BAJW,YAAY,
|
|
1
|
+
{"version":3,"file":"idct_1d.d.ts","sourceRoot":"","sources":["../../../../src/core/math/idct_1d.js"],"names":[],"mappings":"AAaA;;;;;;;;;;;GAWG;AACH,+BAJW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,UAClC,MAAM,UACN,MAAM,QA6ChB"}
|
package/src/core/math/idct_1d.js
CHANGED
|
@@ -12,16 +12,16 @@ const f = .5 * Math.cos(3 * Math.PI / 8);
|
|
|
12
12
|
const g = .5 * Math.cos(7 * Math.PI / 16);
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Performs a 1D Inverse Discrete Cosine Transform on an 8-element block.
|
|
16
16
|
*
|
|
17
17
|
* This function implements a fast AAN (Arai-Agui-Nakajima) algorithm.
|
|
18
18
|
* It performs the transformation in-place, modifying the input array directly.
|
|
19
19
|
*
|
|
20
20
|
* NOTE: ported from ffmpeg https://github.com/RPi-Distro/ffmpeg/blob/3a48fe739a020d939a4e752684ef1eed901fd189/libavcodec/exr.c#L916
|
|
21
21
|
*
|
|
22
|
-
* @param {Float64Array} block A pointer to an array of 8
|
|
22
|
+
* @param {number[]|Float32Array|Float64Array} block A pointer to an array of 8 floating-point values.
|
|
23
23
|
* @param {number} offset
|
|
24
|
-
* @param {number} stride
|
|
24
|
+
* @param {number} stride for images, this will typically be number of channels.
|
|
25
25
|
*/
|
|
26
26
|
export function idct_1d(block, offset, stride) {
|
|
27
27
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_simplex_noise_2d.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/noise/create_simplex_noise_2d.js"],"names":[],"mappings":"AAyDA;;;;GAIG;AACH,6EAFwB,MAAM,
|
|
1
|
+
{"version":3,"file":"create_simplex_noise_2d.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/noise/create_simplex_noise_2d.js"],"names":[],"mappings":"AAyDA;;;;GAIG;AACH,6EAFwB,MAAM,CA0G7B"}
|
|
@@ -85,8 +85,10 @@ export function create_simplex_noise_2d(random = Math.random) {
|
|
|
85
85
|
// Skew the input space to determine which simplex cell we're in
|
|
86
86
|
const s = (x + y) * F2; // Hairy factor for 2D
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
// Math.floor, not `| 0`: `| 0` truncates toward zero, which is wrong for negative inputs and breaks
|
|
89
|
+
// noise continuity across the x<0 / y<0 half-planes.
|
|
90
|
+
const i = Math.floor(x + s);
|
|
91
|
+
const j = Math.floor(y + s);
|
|
90
92
|
|
|
91
93
|
const t = (i + j) * G2;
|
|
92
94
|
const X0 = i - t; // Unskew the cell origin back to (x,y) space
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdnoise.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/noise/sdnoise.js"],"names":[],"mappings":"AA6LA;;;;;;;GAOG;AACH,sCAHW,MAAM,EAAE,KADR,MAAM,GAEJ,MAAM,CAmDlB;AAUD;;;;;;;;GAQG;AACH,sCAHW,MAAM,EAAE,KAFR,MAAM,KACN,MAAM,GAEJ,MAAM,
|
|
1
|
+
{"version":3,"file":"sdnoise.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/noise/sdnoise.js"],"names":[],"mappings":"AA6LA;;;;;;;GAOG;AACH,sCAHW,MAAM,EAAE,KADR,MAAM,GAEJ,MAAM,CAmDlB;AAUD;;;;;;;;GAQG;AACH,sCAHW,MAAM,EAAE,KAFR,MAAM,KACN,MAAM,GAEJ,MAAM,CAkIlB;AAUD;;;;;;;;;GASG;AACH,sCAHW,MAAM,EAAE,KAHR,MAAM,KACN,MAAM,KACN,MAAM,GAEJ,MAAM,CA+OlB;AAMD;;;;;;;;;;GAUG;AACH,sCAPW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CA+RlB"}
|