@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
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smallest non-zero gain to ramp toward. Ramping a GainNode to exactly 0 (especially with an
|
|
3
|
+
* exponential ramp) is the classic WebAudio click/throw trap, so we always target this epsilon and
|
|
4
|
+
* stop the source just after the gain has effectively reached silence.
|
|
5
|
+
* @type {number}
|
|
6
|
+
*/
|
|
7
|
+
export const FADE_EPSILON = 0.0001;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* The ONE click-safe gain ramp. Anchor-then-ramp: pin the current value at the ramp start so the
|
|
11
|
+
* origin is well-defined and re-trigger-safe (D1). Prefers `cancelAndHoldAtTime` but FEATURE-DETECTS
|
|
12
|
+
* it (unimplemented in Firefox) and falls back to the portable `cancelScheduledValues` +
|
|
13
|
+
* `setValueAtTime` idiom. Linear-ramps to `targetLinear` (use {@link FADE_EPSILON}, never 0, for fades
|
|
14
|
+
* to silence). Shared by every fade so no call site hand-rolls one.
|
|
15
|
+
*
|
|
16
|
+
* @param {AudioParam} param the gain param to ramp
|
|
17
|
+
* @param {number} targetLinear target linear gain
|
|
18
|
+
* @param {number} duration ramp duration in seconds
|
|
19
|
+
* @param {BaseAudioContext} ctx
|
|
20
|
+
* @param {number} [startAfter=0] delay before the ramp begins, in seconds
|
|
21
|
+
* @returns {number} the absolute context time at which the ramp completes
|
|
22
|
+
*/
|
|
23
|
+
export function rampGain(param, targetLinear, duration, ctx, startAfter = 0) {
|
|
24
|
+
const startTime = ctx.currentTime + startAfter;
|
|
25
|
+
const endTime = startTime + duration;
|
|
26
|
+
|
|
27
|
+
const currentValue = param.value;
|
|
28
|
+
|
|
29
|
+
if (typeof param.cancelAndHoldAtTime === "function") {
|
|
30
|
+
// holds the current automation value at startTime, discarding later scheduled events
|
|
31
|
+
param.cancelAndHoldAtTime(startTime);
|
|
32
|
+
} else {
|
|
33
|
+
// portable fallback (Firefox): clear future events then explicitly anchor the value
|
|
34
|
+
param.cancelScheduledValues(startTime);
|
|
35
|
+
param.setValueAtTime(currentValue, startTime);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
param.linearRampToValueAtTime(targetLinear, endTime);
|
|
39
|
+
|
|
40
|
+
return endTime;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Click-safe fade-out of a single gain that also stops a source node once silent. Used for node-level
|
|
45
|
+
* fades; EventInstance fades use {@link rampGain} directly on its instance gain.
|
|
46
|
+
*
|
|
47
|
+
* @param {GainNode} gainNode the gain to fade
|
|
48
|
+
* @param {AudioScheduledSourceNode|null} source source to stop once silent (may be null)
|
|
49
|
+
* @param {BaseAudioContext} ctx
|
|
50
|
+
* @param {number} duration fade duration in seconds
|
|
51
|
+
* @param {number} [startAfter=0] delay before the fade begins, in seconds
|
|
52
|
+
*/
|
|
53
|
+
export function fadeOutAndStop(gainNode, source, ctx, duration, startAfter = 0) {
|
|
54
|
+
const endTime = rampGain(gainNode.gain, FADE_EPSILON, duration, ctx, startAfter);
|
|
55
|
+
|
|
56
|
+
if (source !== null) {
|
|
57
|
+
// stop a hair after silence so we never cut a still-audible tail (no click)
|
|
58
|
+
source.stop(endTime + 0.01);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"volume2dB.d.ts","sourceRoot":"","sources":["../../../../src/engine/sound/volume2dB.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"volume2dB.d.ts","sourceRoot":"","sources":["../../../../src/engine/sound/volume2dB.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,kCAHW,MAAM,GACJ,MAAM,CAIlB"}
|
package/src/engine/graphics/sh3/path_tracer/sampling/v3_orthonormal_matrix_from_normal.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v3_orthonormal_matrix_from_normal.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/sh3/path_tracer/sampling/v3_orthonormal_matrix_from_normal.js"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,uDANW,MAAM,EAAE,cACR,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,QAsChB"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* # Local-frame ray ↔ primitive intersections (raycast narrowphase)
|
|
3
|
-
*
|
|
4
|
-
* Each function intersects a ray, **expressed in the shape's local frame**,
|
|
5
|
-
* against a canonical primitive at the origin (sphere at the origin; box
|
|
6
|
-
* axis-aligned spanning `[-h, +h]`; capsule along the local Y axis). They
|
|
7
|
-
* return the hit distance `t` along the ray (`Infinity` on a miss) and write
|
|
8
|
-
* the **local** outward surface normal (unit) into `outNormal[0..2]`.
|
|
9
|
-
*
|
|
10
|
-
* The ray-narrowphase dispatch transforms the world ray into the body's local
|
|
11
|
-
* frame once (rotate by the inverse body rotation — a unit direction stays
|
|
12
|
-
* unit, so `t` is preserved), calls the matching primitive, then rotates the
|
|
13
|
-
* returned local normal back to world. Keeping the primitives canonical lets
|
|
14
|
-
* the box and capsule tests be axis-aligned (cheap slab / cylinder math) and
|
|
15
|
-
* shares a single transform across them.
|
|
16
|
-
*
|
|
17
|
-
* Conventions:
|
|
18
|
-
* - the ray direction is unit length (the caller guarantees it);
|
|
19
|
-
* - the first surface crossing at or after the origin within `tMax` is
|
|
20
|
-
* returned; a ray starting inside the shape returns its exit crossing;
|
|
21
|
-
* - the normal is the geometric outward surface normal at the hit.
|
|
22
|
-
*
|
|
23
|
-
* @author Alex Goldring
|
|
24
|
-
* @copyright Company Named Limited (c) 2026
|
|
25
|
-
*/
|
|
26
|
-
/**
|
|
27
|
-
* Ray vs a sphere of radius `r` centred at the local origin.
|
|
28
|
-
*
|
|
29
|
-
* @param {Float64Array} outNormal length-3, written on hit
|
|
30
|
-
* @param {number} ox @param {number} oy @param {number} oz ray origin (local)
|
|
31
|
-
* @param {number} dx @param {number} dy @param {number} dz ray dir (local, unit)
|
|
32
|
-
* @param {number} tMax
|
|
33
|
-
* @param {number} r sphere radius
|
|
34
|
-
* @returns {number} hit distance, or `Infinity` on miss
|
|
35
|
-
*/
|
|
36
|
-
export function ray_sphere_local(outNormal: Float64Array, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, tMax: number, r: number): number;
|
|
37
|
-
/**
|
|
38
|
-
* Ray vs an axis-aligned box spanning `[-hx,hx] × [-hy,hy] × [-hz,hz]` at the
|
|
39
|
-
* local origin (the canonical pose of {@link BoxShape3D}). Slab method, with
|
|
40
|
-
* the entry (or, origin-inside, exit) face's outward normal.
|
|
41
|
-
*
|
|
42
|
-
* @param {Float64Array} outNormal length-3, written on hit
|
|
43
|
-
* @param {number} ox @param {number} oy @param {number} oz ray origin (local)
|
|
44
|
-
* @param {number} dx @param {number} dy @param {number} dz ray dir (local, unit)
|
|
45
|
-
* @param {number} tMax
|
|
46
|
-
* @param {number} hx @param {number} hy @param {number} hz half-extents
|
|
47
|
-
* @returns {number} hit distance, or `Infinity` on miss
|
|
48
|
-
*/
|
|
49
|
-
export function ray_box_local(outNormal: Float64Array, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, tMax: number, hx: number, hy: number, hz: number): number;
|
|
50
|
-
/**
|
|
51
|
-
* Ray vs a capsule along the local Y axis: a cylinder of radius `r` over
|
|
52
|
-
* `y ∈ [−hh, hh]` capped by hemispheres of radius `r` at `(0, ±hh, 0)` — the
|
|
53
|
-
* canonical pose of {@link CapsuleShape3D} (`hh = height/2`). Tests the
|
|
54
|
-
* infinite cylinder (clamped to the segment) and the two cap spheres, taking
|
|
55
|
-
* the nearest valid crossing.
|
|
56
|
-
*
|
|
57
|
-
* @param {Float64Array} outNormal length-3, written on hit
|
|
58
|
-
* @param {number} ox @param {number} oy @param {number} oz ray origin (local)
|
|
59
|
-
* @param {number} dx @param {number} dy @param {number} dz ray dir (local, unit)
|
|
60
|
-
* @param {number} tMax
|
|
61
|
-
* @param {number} r capsule radius
|
|
62
|
-
* @param {number} hh half-height of the cylindrical section (`height/2`)
|
|
63
|
-
* @returns {number} hit distance, or `Infinity` on miss
|
|
64
|
-
*/
|
|
65
|
-
export function ray_capsule_local(outNormal: Float64Array, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, tMax: number, r: number, hh: number): number;
|
|
66
|
-
//# sourceMappingURL=ray_shapes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ray_shapes.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/narrowphase/ray_shapes.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;;;;;GASG;AACH,4CAPW,YAAY,MACZ,MAAM,MAAa,MAAM,MAAa,MAAM,MAC5C,MAAM,MAAa,MAAM,MAAa,MAAM,QAC5C,MAAM,KACN,MAAM,GACJ,MAAM,CAiBlB;AAED;;;;;;;;;;;GAWG;AACH,yCAPW,YAAY,MACZ,MAAM,MAAa,MAAM,MAAa,MAAM,MAC5C,MAAM,MAAa,MAAM,MAAa,MAAM,QAC5C,MAAM,MACN,MAAM,MAAa,MAAM,MAAa,MAAM,GAC1C,MAAM,CA+ClB;AAED;;;;;;;;;;;;;;GAcG;AACH,6CARW,YAAY,MACZ,MAAM,MAAa,MAAM,MAAa,MAAM,MAC5C,MAAM,MAAa,MAAM,MAAa,MAAM,QAC5C,MAAM,KACN,MAAM,MACN,MAAM,GACJ,MAAM,CA6DlB"}
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* # Local-frame ray ↔ primitive intersections (raycast narrowphase)
|
|
3
|
-
*
|
|
4
|
-
* Each function intersects a ray, **expressed in the shape's local frame**,
|
|
5
|
-
* against a canonical primitive at the origin (sphere at the origin; box
|
|
6
|
-
* axis-aligned spanning `[-h, +h]`; capsule along the local Y axis). They
|
|
7
|
-
* return the hit distance `t` along the ray (`Infinity` on a miss) and write
|
|
8
|
-
* the **local** outward surface normal (unit) into `outNormal[0..2]`.
|
|
9
|
-
*
|
|
10
|
-
* The ray-narrowphase dispatch transforms the world ray into the body's local
|
|
11
|
-
* frame once (rotate by the inverse body rotation — a unit direction stays
|
|
12
|
-
* unit, so `t` is preserved), calls the matching primitive, then rotates the
|
|
13
|
-
* returned local normal back to world. Keeping the primitives canonical lets
|
|
14
|
-
* the box and capsule tests be axis-aligned (cheap slab / cylinder math) and
|
|
15
|
-
* shares a single transform across them.
|
|
16
|
-
*
|
|
17
|
-
* Conventions:
|
|
18
|
-
* - the ray direction is unit length (the caller guarantees it);
|
|
19
|
-
* - the first surface crossing at or after the origin within `tMax` is
|
|
20
|
-
* returned; a ray starting inside the shape returns its exit crossing;
|
|
21
|
-
* - the normal is the geometric outward surface normal at the hit.
|
|
22
|
-
*
|
|
23
|
-
* @author Alex Goldring
|
|
24
|
-
* @copyright Company Named Limited (c) 2026
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Ray vs a sphere of radius `r` centred at the local origin.
|
|
29
|
-
*
|
|
30
|
-
* @param {Float64Array} outNormal length-3, written on hit
|
|
31
|
-
* @param {number} ox @param {number} oy @param {number} oz ray origin (local)
|
|
32
|
-
* @param {number} dx @param {number} dy @param {number} dz ray dir (local, unit)
|
|
33
|
-
* @param {number} tMax
|
|
34
|
-
* @param {number} r sphere radius
|
|
35
|
-
* @returns {number} hit distance, or `Infinity` on miss
|
|
36
|
-
*/
|
|
37
|
-
export function ray_sphere_local(outNormal, ox, oy, oz, dx, dy, dz, tMax, r) {
|
|
38
|
-
// |o + t·d|² = r², d unit → t² + 2(o·d)t + (|o|² − r²) = 0.
|
|
39
|
-
const b = ox * dx + oy * dy + oz * dz;
|
|
40
|
-
const c = ox * ox + oy * oy + oz * oz - r * r;
|
|
41
|
-
const disc = b * b - c;
|
|
42
|
-
if (disc < 0) return Infinity;
|
|
43
|
-
const sq = Math.sqrt(disc);
|
|
44
|
-
let t = -b - sq; // near root (entry)
|
|
45
|
-
if (t < 0) t = -b + sq; // origin inside the sphere → far root (exit)
|
|
46
|
-
if (t < 0 || t > tMax) return Infinity;
|
|
47
|
-
const inv = 1 / r;
|
|
48
|
-
outNormal[0] = (ox + dx * t) * inv;
|
|
49
|
-
outNormal[1] = (oy + dy * t) * inv;
|
|
50
|
-
outNormal[2] = (oz + dz * t) * inv;
|
|
51
|
-
return t;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Ray vs an axis-aligned box spanning `[-hx,hx] × [-hy,hy] × [-hz,hz]` at the
|
|
56
|
-
* local origin (the canonical pose of {@link BoxShape3D}). Slab method, with
|
|
57
|
-
* the entry (or, origin-inside, exit) face's outward normal.
|
|
58
|
-
*
|
|
59
|
-
* @param {Float64Array} outNormal length-3, written on hit
|
|
60
|
-
* @param {number} ox @param {number} oy @param {number} oz ray origin (local)
|
|
61
|
-
* @param {number} dx @param {number} dy @param {number} dz ray dir (local, unit)
|
|
62
|
-
* @param {number} tMax
|
|
63
|
-
* @param {number} hx @param {number} hy @param {number} hz half-extents
|
|
64
|
-
* @returns {number} hit distance, or `Infinity` on miss
|
|
65
|
-
*/
|
|
66
|
-
export function ray_box_local(outNormal, ox, oy, oz, dx, dy, dz, tMax, hx, hy, hz) {
|
|
67
|
-
let tmin = -Infinity, tmax = Infinity;
|
|
68
|
-
let enterAxis = 0, enterSign = 0, exitAxis = 0, exitSign = 0;
|
|
69
|
-
|
|
70
|
-
// X slab.
|
|
71
|
-
if (dx !== 0) {
|
|
72
|
-
const inv = 1 / dx;
|
|
73
|
-
let tn = (-hx - ox) * inv, tf = (hx - ox) * inv, nsign = -1;
|
|
74
|
-
if (tn > tf) { const tmp = tn; tn = tf; tf = tmp; nsign = 1; }
|
|
75
|
-
if (tn > tmin) { tmin = tn; enterAxis = 0; enterSign = nsign; }
|
|
76
|
-
if (tf < tmax) { tmax = tf; exitAxis = 0; exitSign = -nsign; }
|
|
77
|
-
} else if (ox < -hx || ox > hx) {
|
|
78
|
-
return Infinity;
|
|
79
|
-
}
|
|
80
|
-
// Y slab.
|
|
81
|
-
if (dy !== 0) {
|
|
82
|
-
const inv = 1 / dy;
|
|
83
|
-
let tn = (-hy - oy) * inv, tf = (hy - oy) * inv, nsign = -1;
|
|
84
|
-
if (tn > tf) { const tmp = tn; tn = tf; tf = tmp; nsign = 1; }
|
|
85
|
-
if (tn > tmin) { tmin = tn; enterAxis = 1; enterSign = nsign; }
|
|
86
|
-
if (tf < tmax) { tmax = tf; exitAxis = 1; exitSign = -nsign; }
|
|
87
|
-
} else if (oy < -hy || oy > hy) {
|
|
88
|
-
return Infinity;
|
|
89
|
-
}
|
|
90
|
-
// Z slab.
|
|
91
|
-
if (dz !== 0) {
|
|
92
|
-
const inv = 1 / dz;
|
|
93
|
-
let tn = (-hz - oz) * inv, tf = (hz - oz) * inv, nsign = -1;
|
|
94
|
-
if (tn > tf) { const tmp = tn; tn = tf; tf = tmp; nsign = 1; }
|
|
95
|
-
if (tn > tmin) { tmin = tn; enterAxis = 2; enterSign = nsign; }
|
|
96
|
-
if (tf < tmax) { tmax = tf; exitAxis = 2; exitSign = -nsign; }
|
|
97
|
-
} else if (oz < -hz || oz > hz) {
|
|
98
|
-
return Infinity;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
if (tmax < tmin || tmax < 0) return Infinity;
|
|
102
|
-
|
|
103
|
-
let t, axis, sign;
|
|
104
|
-
if (tmin >= 0) { t = tmin; axis = enterAxis; sign = enterSign; }
|
|
105
|
-
else { t = tmax; axis = exitAxis; sign = exitSign; } // origin inside the box
|
|
106
|
-
|
|
107
|
-
if (t > tMax) return Infinity;
|
|
108
|
-
outNormal[0] = 0; outNormal[1] = 0; outNormal[2] = 0;
|
|
109
|
-
outNormal[axis] = sign;
|
|
110
|
-
return t;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Ray vs a capsule along the local Y axis: a cylinder of radius `r` over
|
|
115
|
-
* `y ∈ [−hh, hh]` capped by hemispheres of radius `r` at `(0, ±hh, 0)` — the
|
|
116
|
-
* canonical pose of {@link CapsuleShape3D} (`hh = height/2`). Tests the
|
|
117
|
-
* infinite cylinder (clamped to the segment) and the two cap spheres, taking
|
|
118
|
-
* the nearest valid crossing.
|
|
119
|
-
*
|
|
120
|
-
* @param {Float64Array} outNormal length-3, written on hit
|
|
121
|
-
* @param {number} ox @param {number} oy @param {number} oz ray origin (local)
|
|
122
|
-
* @param {number} dx @param {number} dy @param {number} dz ray dir (local, unit)
|
|
123
|
-
* @param {number} tMax
|
|
124
|
-
* @param {number} r capsule radius
|
|
125
|
-
* @param {number} hh half-height of the cylindrical section (`height/2`)
|
|
126
|
-
* @returns {number} hit distance, or `Infinity` on miss
|
|
127
|
-
*/
|
|
128
|
-
export function ray_capsule_local(outNormal, ox, oy, oz, dx, dy, dz, tMax, r, hh) {
|
|
129
|
-
let best = Infinity;
|
|
130
|
-
let nx = 0, ny = 0, nz = 0;
|
|
131
|
-
const r2 = r * r;
|
|
132
|
-
const inv_r = 1 / r;
|
|
133
|
-
|
|
134
|
-
// --- Cylinder side (infinite cylinder about Y, projected to XZ). ---
|
|
135
|
-
const a = dx * dx + dz * dz;
|
|
136
|
-
if (a > 1e-12) {
|
|
137
|
-
const b = ox * dx + oz * dz;
|
|
138
|
-
const c = ox * ox + oz * oz - r2;
|
|
139
|
-
const disc = b * b - a * c;
|
|
140
|
-
if (disc >= 0) {
|
|
141
|
-
const sq = Math.sqrt(disc);
|
|
142
|
-
const inv_a = 1 / a;
|
|
143
|
-
// Both roots; the smaller non-negative one whose hit lies on the
|
|
144
|
-
// cylindrical section is the side contact.
|
|
145
|
-
const roots = (-b - sq) * inv_a;
|
|
146
|
-
const rootf = (-b + sq) * inv_a;
|
|
147
|
-
for (let i = 0; i < 2; i++) {
|
|
148
|
-
const t = i === 0 ? roots : rootf;
|
|
149
|
-
if (t < 0 || t >= best || t > tMax) continue;
|
|
150
|
-
const y = oy + dy * t;
|
|
151
|
-
if (y < -hh || y > hh) continue; // off the cylinder, onto a cap
|
|
152
|
-
best = t;
|
|
153
|
-
const px = ox + dx * t, pz = oz + dz * t;
|
|
154
|
-
nx = px * inv_r; ny = 0; nz = pz * inv_r;
|
|
155
|
-
break; // roots is the nearer; if it qualified we're done
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
// --- Cap spheres at (0, ±hh, 0), each valid only on its outer hemisphere. ---
|
|
161
|
-
for (let cap = 0; cap < 2; cap++) {
|
|
162
|
-
const cy = cap === 0 ? hh : -hh;
|
|
163
|
-
const oyc = oy - cy;
|
|
164
|
-
const bb = ox * dx + oyc * dy + oz * dz;
|
|
165
|
-
const cc = ox * ox + oyc * oyc + oz * oz - r2;
|
|
166
|
-
const disc = bb * bb - cc;
|
|
167
|
-
if (disc < 0) continue;
|
|
168
|
-
const sq = Math.sqrt(disc);
|
|
169
|
-
const tn = -bb - sq, tf = -bb + sq;
|
|
170
|
-
for (let i = 0; i < 2; i++) {
|
|
171
|
-
const t = i === 0 ? tn : tf;
|
|
172
|
-
if (t < 0 || t >= best || t > tMax) continue;
|
|
173
|
-
const hy = oy + dy * t;
|
|
174
|
-
// Only the hemisphere beyond the segment end belongs to this cap.
|
|
175
|
-
if (cap === 0 ? hy < hh : hy > -hh) continue;
|
|
176
|
-
best = t;
|
|
177
|
-
nx = (ox + dx * t) * inv_r;
|
|
178
|
-
ny = (hy - cy) * inv_r;
|
|
179
|
-
nz = (oz + dz * t) * inv_r;
|
|
180
|
-
break;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
if (best === Infinity) return Infinity;
|
|
185
|
-
outNormal[0] = nx; outNormal[1] = ny; outNormal[2] = nz;
|
|
186
|
-
return best;
|
|
187
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export class SoundEmitterChannel {
|
|
2
|
-
/**
|
|
3
|
-
* Unique name identifying the channel
|
|
4
|
-
* @type {string}
|
|
5
|
-
*/
|
|
6
|
-
id: string;
|
|
7
|
-
/**
|
|
8
|
-
* Output to which all sound should be attached to
|
|
9
|
-
* @type {GainNode}
|
|
10
|
-
*/
|
|
11
|
-
sink: GainNode;
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* @param {number} v
|
|
15
|
-
*/
|
|
16
|
-
set volume(arg: number);
|
|
17
|
-
/**
|
|
18
|
-
*
|
|
19
|
-
* @return {number}
|
|
20
|
-
*/
|
|
21
|
-
get volume(): number;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=SoundEmitterChannel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SoundEmitterChannel.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/ecs/emitter/SoundEmitterChannel.js"],"names":[],"mappings":"AAAA;IAEQ;;;OAGG;IACH,IAFU,MAAM,CAEJ;IAEZ;;;OAGG;IACH,MAFU,QAAQ,CAEF;IAGpB;;;OAGG;IACH,wBAGC;IAED;;;OAGG;IACH,qBAEC;CACJ"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export class SoundEmitterChannel {
|
|
2
|
-
constructor() {
|
|
3
|
-
/**
|
|
4
|
-
* Unique name identifying the channel
|
|
5
|
-
* @type {string}
|
|
6
|
-
*/
|
|
7
|
-
this.id = '';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Output to which all sound should be attached to
|
|
11
|
-
* @type {GainNode}
|
|
12
|
-
*/
|
|
13
|
-
this.sink = null;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
* @param {number} v
|
|
19
|
-
*/
|
|
20
|
-
set volume(v) {
|
|
21
|
-
// TODO consider if direct writing to .value is handled well on all supported platforms
|
|
22
|
-
this.sink.gain.value = v;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
*
|
|
27
|
-
* @return {number}
|
|
28
|
-
*/
|
|
29
|
-
get volume() {
|
|
30
|
-
return this.sink.gain.value;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export class SoundTrackNodes {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @param {AudioContext} context
|
|
5
|
-
*/
|
|
6
|
-
constructor(context: AudioContext);
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* @type {AudioBufferSourceNode}
|
|
10
|
-
*/
|
|
11
|
-
source: AudioBufferSourceNode;
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* @type {GainNode}
|
|
15
|
-
*/
|
|
16
|
-
volume: GainNode;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=SoundTrackNodes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SoundTrackNodes.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/ecs/emitter/SoundTrackNodes.js"],"names":[],"mappings":"AAAA;IACI;;;OAGG;IACH,qBAFW,YAAY,EAatB;IAVG;;;OAGG;IACH,QAFU,qBAAqB,CAEb;IAClB;;;OAGG;IACH,QAFU,QAAQ,CAEgB;CAEzC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export class SoundTrackNodes {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @param {AudioContext} context
|
|
5
|
-
*/
|
|
6
|
-
constructor(context) {
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* @type {AudioBufferSourceNode}
|
|
10
|
-
*/
|
|
11
|
-
this.source = null;
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* @type {GainNode}
|
|
15
|
-
*/
|
|
16
|
-
this.volume = context.createGain();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base class for all audio clips
|
|
3
|
-
*/
|
|
4
|
-
export class AbstractAudioClip {
|
|
5
|
-
/**
|
|
6
|
-
* Parent clip, if set - will propagate various parameters to the child at play-time
|
|
7
|
-
* @type {null}
|
|
8
|
-
*/
|
|
9
|
-
parent: null;
|
|
10
|
-
/**
|
|
11
|
-
* Relative offset from source
|
|
12
|
-
* @type {number}
|
|
13
|
-
*/
|
|
14
|
-
pitch: number;
|
|
15
|
-
/**
|
|
16
|
-
* Gain offset in decibel
|
|
17
|
-
* @type {number}
|
|
18
|
-
*/
|
|
19
|
-
gain: number;
|
|
20
|
-
/**
|
|
21
|
-
* Output channel, if not set - will use a settings from parent
|
|
22
|
-
* @type {null}
|
|
23
|
-
*/
|
|
24
|
-
channel: null;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=AbstractAudioClip.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractAudioClip.d.ts","sourceRoot":"","sources":["../../../../../src/engine/sound/sopra/AbstractAudioClip.js"],"names":[],"mappings":"AAAA;;GAEG;AACH;IACI;;;OAGG;IACH,QAFU,IAAI,CAEA;IAEd;;;OAGG;IACH,OAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,MAFU,MAAM,CAEP;IAET;;;OAGG;IACH,SAFU,IAAI,CAEC;CAElB"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base class for all audio clips
|
|
3
|
-
*/
|
|
4
|
-
export class AbstractAudioClip {
|
|
5
|
-
/**
|
|
6
|
-
* Parent clip, if set - will propagate various parameters to the child at play-time
|
|
7
|
-
* @type {null}
|
|
8
|
-
*/
|
|
9
|
-
parent = null;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Relative offset from source
|
|
13
|
-
* @type {number}
|
|
14
|
-
*/
|
|
15
|
-
pitch = 0;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Gain offset in decibel
|
|
19
|
-
* @type {number}
|
|
20
|
-
*/
|
|
21
|
-
gain = 0;
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Output channel, if not set - will use a settings from parent
|
|
25
|
-
* @type {null}
|
|
26
|
-
*/
|
|
27
|
-
channel = null;
|
|
28
|
-
|
|
29
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base container class
|
|
3
|
-
*/
|
|
4
|
-
export class ContainerAudioClip extends AbstractAudioClip {
|
|
5
|
-
/**
|
|
6
|
-
*
|
|
7
|
-
* @type {AbstractAudioClip[]}
|
|
8
|
-
*/
|
|
9
|
-
children: AbstractAudioClip[];
|
|
10
|
-
}
|
|
11
|
-
import { AbstractAudioClip } from "./AbstractAudioClip.js";
|
|
12
|
-
//# sourceMappingURL=ContainerAudioClip.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerAudioClip.d.ts","sourceRoot":"","sources":["../../../../../src/engine/sound/sopra/ContainerAudioClip.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAEI;;;OAGG;IACH,UAFU,iBAAiB,EAAE,CAEhB;CAChB;kCAZiC,wBAAwB"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* When being played back, will play a random child element
|
|
3
|
-
*/
|
|
4
|
-
export class RandomContainerAudioClip extends ContainerAudioClip {
|
|
5
|
-
/**
|
|
6
|
-
* Try not to repeat last X played sounds
|
|
7
|
-
* @type {number}
|
|
8
|
-
*/
|
|
9
|
-
avoid_repeating_last: number;
|
|
10
|
-
}
|
|
11
|
-
import { ContainerAudioClip } from "./ContainerAudioClip.js";
|
|
12
|
-
//# sourceMappingURL=RandomContainerAudioClip.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RandomContainerAudioClip.d.ts","sourceRoot":"","sources":["../../../../../src/engine/sound/sopra/RandomContainerAudioClip.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAGI;;;OAGG;IACH,sBAFU,MAAM,CAES;CAE5B;mCAdkC,yBAAyB"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ContainerAudioClip } from "./ContainerAudioClip.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* When being played back, will play a random child element
|
|
5
|
-
*/
|
|
6
|
-
export class RandomContainerAudioClip extends ContainerAudioClip {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Try not to repeat last X played sounds
|
|
11
|
-
* @type {number}
|
|
12
|
-
*/
|
|
13
|
-
avoid_repeating_last = 1;
|
|
14
|
-
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SequenceContainerAudioClip.d.ts","sourceRoot":"","sources":["../../../../../src/engine/sound/sopra/SequenceContainerAudioClip.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;CAEC;mCAPkC,yBAAyB"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Represents dead air
|
|
3
|
-
* @example useful for introducing pauses in sequences
|
|
4
|
-
*/
|
|
5
|
-
export class SilenceAudioClip extends AbstractAudioClip {
|
|
6
|
-
/**
|
|
7
|
-
* Duration of the silence
|
|
8
|
-
* @type {number}
|
|
9
|
-
*/
|
|
10
|
-
duration: number;
|
|
11
|
-
}
|
|
12
|
-
import { AbstractAudioClip } from "./AbstractAudioClip.js";
|
|
13
|
-
//# sourceMappingURL=SilenceAudioClip.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SilenceAudioClip.d.ts","sourceRoot":"","sources":["../../../../../src/engine/sound/sopra/SilenceAudioClip.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IAEI;;;OAGG;IACH,UAFU,MAAM,CAEH;CAEhB;kCAdiC,wBAAwB"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AbstractAudioClip } from "./AbstractAudioClip.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Represents dead air
|
|
5
|
-
* @example useful for introducing pauses in sequences
|
|
6
|
-
*/
|
|
7
|
-
export class SilenceAudioClip extends AbstractAudioClip {
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Duration of the silence
|
|
11
|
-
* @type {number}
|
|
12
|
-
*/
|
|
13
|
-
duration = 0;
|
|
14
|
-
|
|
15
|
-
}
|
|
File without changes
|