@woosh/meep-engine 2.110.14 → 2.111.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/meep.cjs +442 -370
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +442 -370
- package/editor/tools/v2/BlenderCameraOrientationGizmo.js +4 -2
- package/package.json +4 -2
- package/src/core/events/signal/Signal.d.ts.map +1 -1
- package/src/core/events/signal/Signal.js +289 -255
- package/src/core/events/signal/SignalHandler.d.ts +7 -2
- package/src/core/events/signal/SignalHandler.d.ts.map +1 -1
- package/src/core/events/signal/SignalHandler.js +12 -6
- package/src/core/events/signal/signal_handler_list_find.d.ts +8 -0
- package/src/core/events/signal/signal_handler_list_find.d.ts.map +1 -0
- package/src/core/events/signal/signal_handler_list_find.js +23 -0
- package/src/core/events/signal/signal_handler_list_last.d.ts +7 -0
- package/src/core/events/signal/signal_handler_list_last.d.ts.map +1 -0
- package/src/core/events/signal/signal_handler_list_last.js +14 -0
- package/src/core/events/signal/signal_handler_list_validate.d.ts +8 -0
- package/src/core/events/signal/signal_handler_list_validate.d.ts.map +1 -0
- package/src/core/events/signal/signal_handler_list_validate.js +29 -0
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.d.ts +2 -3
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.d.ts.map +1 -1
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.js +3 -3
- package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/Camera.js +2 -2
- package/src/engine/graphics/ecs/camera/CameraSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/CameraSystem.js +10 -2
- package/src/engine/graphics/ecs/camera/quaternion_invert_orientation.d.ts +7 -0
- package/src/engine/graphics/ecs/camera/quaternion_invert_orientation.d.ts.map +1 -0
- package/src/engine/graphics/ecs/camera/{InvertQuaternionOrientation.js → quaternion_invert_orientation.js} +6 -5
- package/editor/actions/concrete/ModifyPatchSampler2DAction.spec.js +0 -30
- package/src/core/IdPool.spec.js +0 -29
- package/src/core/UUID.spec.js +0 -8
- package/src/core/binary/32BitEncoder.spec.js +0 -11
- package/src/core/binary/Base64.spec.js +0 -14
- package/src/core/binary/BinaryBuffer.spec.js +0 -324
- package/src/core/binary/BitSet.spec.js +0 -468
- package/src/core/binary/EncodingBinaryBuffer.spec.js +0 -16
- package/src/core/binary/align_32.spec.js +0 -11
- package/src/core/binary/align_4.spec.js +0 -20
- package/src/core/binary/data_view/DataViewStructAccessor.spec.js +0 -20
- package/src/core/binary/de_interleave_2_bits.spec.js +0 -21
- package/src/core/binary/dec2hex.spec.js +0 -13
- package/src/core/binary/hex2dec.spec.js +0 -22
- package/src/core/binary/int32_to_binary_string.spec.js +0 -9
- package/src/core/binary/operations/bitCount.spec.js +0 -19
- package/src/core/binary/operations/ceilPowerOfTwo.spec.js +0 -17
- package/src/core/binary/reverse_bits_uint32.spec.js +0 -18
- package/src/core/binary/split_by_2.spec.js +0 -22
- package/src/core/binary/split_by_3.spec.js +0 -22
- package/src/core/binary/uint8_to_float.spec.js +0 -7
- package/src/core/bvh2/binary/2/BinaryUint32BVH.spec.js +0 -136
- package/src/core/bvh2/bvh3/BVH.spec.js +0 -361
- package/src/core/bvh2/bvh3/BvhClient.spec.js +0 -51
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.spec.js +0 -60
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_generic.spec.js +0 -22
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray.spec.js +0 -64
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_generic.spec.js +0 -29
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_nearest_to_point.spec.js +0 -209
- package/src/core/bvh2/bvh3/query/compute_tight_near_far_clipping_planes.spec.js +0 -41
- package/src/core/cache/Cache.spec.js +0 -277
- package/src/core/cache/FrequencySketch.spec.js +0 -5
- package/src/core/cache/LoadingCache.spec.js +0 -120
- package/src/core/codegen/LineBuilder.spec.js +0 -41
- package/src/core/collection/CuckooFilter.spec.js +0 -111
- package/src/core/collection/RingBuffer.spec.js +0 -59
- package/src/core/collection/Stack.spec.js +0 -63
- package/src/core/collection/array/arrayPickBestElement.spec.js +0 -7
- package/src/core/collection/array/arraySetSortingDiff.spec.js +0 -74
- package/src/core/collection/array/array_contains_duplicates.spec.js +0 -14
- package/src/core/collection/array/array_copy.spec.js +0 -19
- package/src/core/collection/array/array_deduplicate.spec.js +0 -11
- package/src/core/collection/array/array_get_index_in_range.spec.js +0 -16
- package/src/core/collection/array/array_remove_first.spec.js +0 -39
- package/src/core/collection/array/array_shuffle.spec.js +0 -27
- package/src/core/collection/array/binarySearchHighIndex.spec.js +0 -51
- package/src/core/collection/array/isArrayEqual.spec.js +0 -25
- package/src/core/collection/array/typed/is_typed_array_equals.spec.js +0 -71
- package/src/core/collection/array/weightedRandomFromArray.spec.js +0 -22
- package/src/core/collection/heap/BinaryHeap.spec.js +0 -137
- package/src/core/collection/heap/Uint32Heap.spec.js +0 -172
- package/src/core/collection/list/List.spec.js +0 -438
- package/src/core/collection/list/ListForwarder.spec.js +0 -101
- package/src/core/collection/map/HashMap.spec.js +0 -291
- package/src/core/collection/queue/Deque.spec.js +0 -276
- package/src/core/collection/set/HashSet.spec.js +0 -39
- package/src/core/collection/set/compute_set_difference.spec.js +0 -45
- package/src/core/collection/set/compute_set_intersection.spec.js +0 -45
- package/src/core/collection/table/RowFirstTable.spec.js +0 -323
- package/src/core/collection/table/RowFirstTableSpec.spec.js +0 -49
- package/src/core/collection/table/bind/TableRecord.spec.js +0 -27
- package/src/core/color/Color.spec.js +0 -174
- package/src/core/color/YCbCr/YCbCr.spec.js +0 -16
- package/src/core/color/hex/hex2rgb.spec.js +0 -10
- package/src/core/color/hex/rgb2hex.spec.js +0 -13
- package/src/core/color/hsv/hsv2rgb.spec.js +0 -43
- package/src/core/color/kelvin/kelvin_to_rgb.spec.js +0 -61
- package/src/core/color/kelvin/rgb_to_kelvin.spec.js +0 -15
- package/src/core/color/oklab/Okhsv.spec.js +0 -17
- package/src/core/color/oklab/XYZ.spec.js +0 -17
- package/src/core/color/oklab/oklab_to_xyz.spec.js +0 -31
- package/src/core/color/oklab/xyz_to_oklab.spec.js +0 -31
- package/src/core/color/parse_color.spec.js +0 -18
- package/src/core/color/sRGB/sRGB.spec.js +0 -16
- package/src/core/color/xyz/XYZ.spec.js +0 -16
- package/src/core/events/signal/Signal.spec.js +0 -253
- package/src/core/events/signal/SignalBinding.spec.js +0 -58
- package/src/core/fsm/simple/SimpleStateMachine.spec.js +0 -107
- package/src/core/fsm/simple/SimpleStateMachineDescription.spec.js +0 -103
- package/src/core/function/extractFunctionBody.spec.js +0 -15
- package/src/core/geom/2d/Rectangle.spec.js +0 -62
- package/src/core/geom/2d/aabb/AABB2.spec.js +0 -153
- package/src/core/geom/2d/aabb/aabb2_compute_center_from_multiple.spec.js +0 -11
- package/src/core/geom/2d/aabb/aabb2_compute_overlap.spec.js +0 -56
- package/src/core/geom/2d/aabb/aabb2_contains.spec.js +0 -40
- package/src/core/geom/2d/aabb/aabb2_distance_to_point.spec.js +0 -17
- package/src/core/geom/2d/aabb/aabb2_intersects_ray.spec.js +0 -28
- package/src/core/geom/2d/aabb/aabb2_signed_distance_sqr_to_point.spec.js +0 -40
- package/src/core/geom/2d/bvh/BVH2D.spec.js +0 -359
- package/src/core/geom/2d/bvh/bvh2d_query_all_data_by_circle.spec.js +0 -89
- package/src/core/geom/2d/circle/circle_compute_circle_intersection.spec.js +0 -79
- package/src/core/geom/2d/compute_polygon_area_2d.spec.js +0 -10
- package/src/core/geom/2d/compute_triangle_area_2d.spec.js +0 -9
- package/src/core/geom/2d/convex-hull/convex_hull_jarvis_2d.spec.js +0 -33
- package/src/core/geom/2d/convex-hull/convex_hull_monotone_2d.spec.js +0 -33
- package/src/core/geom/2d/hash-grid/SpatialHashGrid.spec.js +0 -254
- package/src/core/geom/2d/hash-grid/shg_query_elements_circle.spec.js +0 -85
- package/src/core/geom/2d/hash-grid/shg_query_elements_line.spec.js +0 -102
- package/src/core/geom/2d/quad-tree/QuadTreeNode.spec.js +0 -235
- package/src/core/geom/2d/quad-tree/qt_match_data_by_circle.spec.js +0 -86
- package/src/core/geom/2d/quad-tree-binary/QuadTree.spec.js +0 -53
- package/src/core/geom/2d/r-tree/StaticR2Tree.spec.js +0 -62
- package/src/core/geom/2d/spline_bezier2_2d.spec.js +0 -16
- package/src/core/geom/2d/uv_map_circle_to_square.spec.js +0 -28
- package/src/core/geom/2d/uv_map_square_to_circle.spec.js +0 -30
- package/src/core/geom/3d/SurfacePoint3.spec.js +0 -116
- package/src/core/geom/3d/aabb/AABB3.spec.js +0 -257
- package/src/core/geom/3d/aabb/aabb3_array_intersects_point.spec.js +0 -48
- package/src/core/geom/3d/aabb/aabb3_build_corners.spec.js +0 -27
- package/src/core/geom/3d/aabb/aabb3_compute_distance_above_plane_max.spec.js +0 -8
- package/src/core/geom/3d/aabb/aabb3_compute_plane_side.spec.js +0 -25
- package/src/core/geom/3d/aabb/aabb3_corner_edge_mapping.spec.js +0 -39
- package/src/core/geom/3d/aabb/aabb3_edge_corner_mapping.spec.js +0 -32
- package/src/core/geom/3d/aabb/aabb3_expand_array.spec.js +0 -16
- package/src/core/geom/3d/aabb/aabb3_from_v3_array.spec.js +0 -32
- package/src/core/geom/3d/aabb/aabb3_intersects_aabb3.spec.js +0 -115
- package/src/core/geom/3d/aabb/aabb3_intersects_ray.spec.js +0 -161
- package/src/core/geom/3d/aabb/aabb3_matrix4_project.spec.js +0 -54
- package/src/core/geom/3d/aabb/aabb3_raycast.spec.js +0 -37
- package/src/core/geom/3d/aabb/aabb3_score_boxes_SAH.spec.js +0 -14
- package/src/core/geom/3d/cone/computeConePlaneSide.spec.js +0 -13
- package/src/core/geom/3d/cone/compute_bounding_cone_of_2_cones.spec.js +0 -95
- package/src/core/geom/3d/line/line3_compute_nearest_point_to_point.spec.js +0 -61
- package/src/core/geom/3d/mat4/MATRIX_4_IDENTITY.spec.js +0 -10
- package/src/core/geom/3d/mat4/m4_multiply.spec.js +0 -34
- package/src/core/geom/3d/mat4/m4_multiply_alphatensor.spec.js +0 -35
- package/src/core/geom/3d/morton/v3_morton_encode_transformed.spec.js +0 -20
- package/src/core/geom/3d/normal/hemioct/unit_hemioct.spec.js +0 -41
- package/src/core/geom/3d/normal/octahedron/encoding.spec.js +0 -54
- package/src/core/geom/3d/plane/plane3_projectPoint.spec.js +0 -54
- package/src/core/geom/3d/plane/plane3_slerp.spec.js +0 -209
- package/src/core/geom/3d/ray/ray3_array_compose.spec.js +0 -14
- package/src/core/geom/3d/shape/TransformedShape3D.spec.js +0 -55
- package/src/core/geom/3d/shape/UnitCubeShape3D.spec.js +0 -42
- package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.spec.js +0 -53
- package/src/core/geom/3d/sphere/harmonics/sh3_vector_accumulate.spec.js +0 -27
- package/src/core/geom/3d/sphere/sphere_intersects_point.spec.js +0 -134
- package/src/core/geom/3d/sphere/sphere_intersects_ray.spec.js +0 -60
- package/src/core/geom/3d/sphere/sphere_radius_sqr_from_v3_array_transformed.spec.js +0 -8
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.spec.js +0 -233
- package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.spec.js +0 -66
- package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.spec.js +0 -36
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.spec.js +0 -61
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_sub_determinant.spec.js +0 -30
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.spec.js +0 -24
- package/src/core/geom/3d/tetrahedra/tetrahedron_contains_point.spec.js +0 -66
- package/src/core/geom/3d/topology/simplify/collapseEdge.spec.js +0 -24
- package/src/core/geom/3d/topology/struct/TopoEdge.spec.js +0 -52
- package/src/core/geom/3d/topology/struct/TopoVertex.spec.js +0 -128
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.spec.js +0 -36
- package/src/core/geom/3d/topology/struct/binary/BinaryTopology.spec.js +0 -16
- package/src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.spec.js +0 -84
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_has_vertex.spec.js +0 -15
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_other_vertex.spec.js +0 -16
- package/src/core/geom/3d/triangle/computeTriangleClosestPointToPointBarycentric.spec.js +0 -100
- package/src/core/geom/3d/triangle/computeTriangleRayIntersection.spec.js +0 -25
- package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentric.spec.js +0 -26
- package/src/core/geom/3d/v3_compute_triangle_normal.spec.js +0 -46
- package/src/core/geom/ConicRay.spec.js +0 -24
- package/src/core/geom/Quaternion.spec.js +0 -429
- package/src/core/geom/Vector1.spec.js +0 -74
- package/src/core/geom/Vector2.spec.js +0 -295
- package/src/core/geom/Vector3.spec.js +0 -285
- package/src/core/geom/Vector4.spec.js +0 -11
- package/src/core/geom/normalize_angle_rad.spec.js +0 -45
- package/src/core/geom/packing/computeBoundingSphereOfSpheres.spec.js +0 -24
- package/src/core/geom/packing/max-rect/MaxRectanglesPacker.spec.js +0 -60
- package/src/core/geom/packing/miniball/Miniball.spec.js +0 -35
- package/src/core/geom/packing/miniball/Subspan.spec.js +0 -51
- package/src/core/geom/random/randomPointOnBox.spec.js +0 -57
- package/src/core/geom/vec/vector_normalize.spec.js +0 -15
- package/src/core/geom/vec3/v3_angle_cos_between.spec.js +0 -124
- package/src/core/geom/vec3/v3_displace_in_direction.spec.js +0 -80
- package/src/core/geom/vec3/v3_distance_above_plane.spec.js +0 -40
- package/src/core/graph/Edge.spec.js +0 -85
- package/src/core/graph/SquareMatrix.spec.js +0 -102
- package/src/core/graph/coloring/colorizeGraphGreedy.spec.js +0 -26
- package/src/core/graph/convert_graph_to_dot_string.spec.js +0 -28
- package/src/core/graph/eigen/matrix_eigenvalues_in_place.spec.js +0 -57
- package/src/core/graph/graph_k_means_cluster.spec.js +0 -23
- package/src/core/graph/mn_graph_coarsen.spec.js +0 -45
- package/src/core/graph/v2/Graph.spec.js +0 -364
- package/src/core/json/resolvePath.spec.js +0 -14
- package/src/core/lang/reactive/compileReactiveExpression.spec.js +0 -169
- package/src/core/math/bessel_j0.spec.js +0 -43
- package/src/core/math/clamp.spec.js +0 -15
- package/src/core/math/computeGreatestCommonDivisor.spec.js +0 -9
- package/src/core/math/computeIsoscelesTriangleApexAngle.spec.js +0 -6
- package/src/core/math/computeWholeDivisorLow.spec.js +0 -9
- package/src/core/math/copysign.spec.js +0 -13
- package/src/core/math/epsilonEquals.spec.js +0 -17
- package/src/core/math/factorial.spec.js +0 -9
- package/src/core/math/fract.spec.js +0 -11
- package/src/core/math/hash/computeHashFloatArray.spec.js +0 -11
- package/src/core/math/hash/computeObjectHash.spec.js +0 -42
- package/src/core/math/hash/murmur3_32.spec.js +0 -8
- package/src/core/math/hash/squirrel3.spec.js +0 -16
- package/src/core/math/iabs.spec.js +0 -9
- package/src/core/math/interval/NumericInterval.spec.js +0 -89
- package/src/core/math/interval/isValueBetween.spec.js +0 -11
- package/src/core/math/interval/isValueBetweenInclusive.spec.js +0 -16
- package/src/core/math/interval/overlap1D.spec.js +0 -10
- package/src/core/math/inverseLerp.spec.js +0 -13
- package/src/core/math/isPowerOfTwo.spec.js +0 -9
- package/src/core/math/isqrt.spec.js +0 -9
- package/src/core/math/lerp.spec.js +0 -15
- package/src/core/math/linalg/solve_linear_system.spec.js +0 -70
- package/src/core/math/max.spec.js +0 -25
- package/src/core/math/max2.spec.js +0 -13
- package/src/core/math/max3.spec.js +0 -29
- package/src/core/math/min2.spec.js +0 -37
- package/src/core/math/min3.spec.js +0 -29
- package/src/core/math/newton_solver_1d.spec.js +0 -9
- package/src/core/math/nextOdd.spec.js +0 -9
- package/src/core/math/noise/create_simplex_noise_2d.spec.js +0 -21
- package/src/core/math/noise/sdnoise.spec.js +0 -87
- package/src/core/math/physics/irradiance/interpolate_irradiance_linear.spec.js +0 -20
- package/src/core/math/physics/irradiance/interpolate_irradiance_lograrithmic.spec.js +0 -18
- package/src/core/math/physics/irradiance/interpolate_irradiance_smith.spec.js +0 -20
- package/src/core/math/pingpong.spec.js +0 -11
- package/src/core/math/random/MersenneTwister.spec.js +0 -19
- package/src/core/math/random/randomFloatBetween.spec.js +0 -9
- package/src/core/math/random/randomGaussian.spec.js +0 -9
- package/src/core/math/random/randomIntegerBetween.spec.js +0 -8
- package/src/core/math/random/roundFair.spec.js +0 -12
- package/src/core/math/random/seededRandomMersenneTwister.spec.js +0 -10
- package/src/core/math/random/seededRandom_Mulberry32.spec.js +0 -19
- package/src/core/math/remap.spec.js +0 -15
- package/src/core/math/sign.spec.js +0 -13
- package/src/core/math/smoothStep.spec.js +0 -16
- package/src/core/math/smootherStep.spec.js +0 -16
- package/src/core/math/solveQuadratic.spec.js +0 -18
- package/src/core/math/spline/cubicCurve.spec.js +0 -13
- package/src/core/math/spline/makeCubicCurve.spec.js +0 -9
- package/src/core/math/spline/spline_bezier2.spec.js +0 -13
- package/src/core/math/spline/spline_bezier3_bounds.spec.js +0 -37
- package/src/core/math/spline/spline_hermite3.spec.js +0 -18
- package/src/core/math/spline/spline_hermite3_bounds.spec.js +0 -37
- package/src/core/math/statistics/computeSampleSize_Cochran.spec.js +0 -12
- package/src/core/math/statistics/computeStatisticalMean.spec.js +0 -9
- package/src/core/math/statistics/computeStatisticalPartialMedian.spec.js +0 -13
- package/src/core/math/statistics/computeStatisticalPercentile.spec.js +0 -11
- package/src/core/math/statistics/computeStatisticalVariance.spec.js +0 -10
- package/src/core/math/statistics/halton_sequence.spec.js +0 -40
- package/src/core/math/statistics/radical_inverse_VdC_base_2.spec.js +0 -9
- package/src/core/math/statistics/softmax.spec.js +0 -9
- package/src/core/model/BooleanVector3.spec.js +0 -51
- package/src/core/model/BoundedValue.spec.js +0 -17
- package/src/core/model/ModuleRegistry.spec.js +0 -31
- package/src/core/model/ObservedBoolean.spec.js +0 -81
- package/src/core/model/ObservedInteger.spec.js +0 -51
- package/src/core/model/node-graph/Connection.spec.js +0 -33
- package/src/core/model/node-graph/NodeGraph.spec.js +0 -107
- package/src/core/model/node-graph/node/NodeDescription.spec.js +0 -81
- package/src/core/model/node-graph/node/NodeInstance.spec.js +0 -82
- package/src/core/model/node-graph/node/NodeInstancePortReference.spec.js +0 -109
- package/src/core/model/node-graph/node/NodeRegistry.spec.js +0 -123
- package/src/core/model/node-graph/node/Port.spec.js +0 -102
- package/src/core/model/node-graph/type/DataType.spec.js +0 -47
- package/src/core/model/node-graph/type/ParametricDataType.spec.js +0 -63
- package/src/core/model/node-graph/visual/PortVisualData.spec.js +0 -16
- package/src/core/model/object/ObjectPoolFactory.spec.js +0 -54
- package/src/core/model/object/objectDeepEquals.spec.js +0 -54
- package/src/core/model/object/write_property.spec.js +0 -26
- package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.spec.js +0 -158
- package/src/core/model/reactive/js/compileReactiveToJS.spec.js +0 -14
- package/src/core/model/reactive/model/logic/ReactiveAnd.spec.js +0 -51
- package/src/core/model/reactive/model/logic/ReactiveOr.spec.js +0 -53
- package/src/core/model/reactive/model/terminal/ReactiveReference.spec.js +0 -26
- package/src/core/model/reactive/trigger/BlackboardTrigger.spec.js +0 -24
- package/src/core/model/reactive/trigger/ReactiveTrigger.spec.js +0 -5
- package/src/core/model/stat/LinearModifier.spec.js +0 -96
- package/src/core/model/stat/Stat.spec.js +0 -111
- package/src/core/parser/simple/readHexToken.spec.js +0 -21
- package/src/core/parser/simple/readIdentifierToken.spec.js +0 -32
- package/src/core/parser/simple/readNumberToken.spec.js +0 -17
- package/src/core/parser/simple/readReferenceToken.spec.js +0 -18
- package/src/core/parser/simple/readStringToken.spec.js +0 -57
- package/src/core/parser/simple/readUnsignedIntegerToken.spec.js +0 -6
- package/src/core/path/computeFileExtension.spec.js +0 -13
- package/src/core/path/computePathBase.spec.js +0 -13
- package/src/core/path/computePathDirectory.spec.js +0 -8
- package/src/core/primitives/array/computeStridedIntegerArrayHash.spec.js +0 -28
- package/src/core/primitives/numbers/computeHashFloat.spec.js +0 -14
- package/src/core/primitives/numbers/number_compare_ascending.spec.js +0 -9
- package/src/core/primitives/numbers/number_compare_descending.spec.js +0 -9
- package/src/core/primitives/numbers/number_format_by_thousands.spec.js +0 -12
- package/src/core/primitives/numbers/number_pretty_print.spec.js +0 -19
- package/src/core/primitives/strings/compareStrings.spec.js +0 -12
- package/src/core/primitives/strings/computeStringHash.spec.js +0 -20
- package/src/core/primitives/strings/insert_after.spec.js +0 -16
- package/src/core/primitives/strings/insert_before.spec.js +0 -16
- package/src/core/primitives/strings/string_capitalize.spec.js +0 -13
- package/src/core/primitives/strings/string_compute_common_prefix.spec.js +0 -23
- package/src/core/primitives/strings/string_format_camel_to_kebab.spec.js +0 -8
- package/src/core/primitives/strings/string_jaro_winkler.spec.js +0 -39
- package/src/core/primitives/strings/string_strip_trailing.spec.js +0 -27
- package/src/core/process/PromiseWatcher.spec.js +0 -69
- package/src/core/process/executor/ConcurrentExecutor.spec.js +0 -135
- package/src/core/process/task/util/actionTask.spec.js +0 -14
- package/src/core/process/task/util/countTask.spec.js +0 -18
- package/src/core/process/undo/ActionProcessor.spec.js +0 -64
- package/src/engine/Clock.spec.js +0 -26
- package/src/engine/Engine.spec.js +0 -15
- package/src/engine/achievements/Achievement.spec.js +0 -21
- package/src/engine/animation/curve/AnimationCurve.spec.js +0 -248
- package/src/engine/animation/curve/Keyframe.spec.js +0 -42
- package/src/engine/animation/curve/animation_curve_optimize.spec.js +0 -50
- package/src/engine/animation/curve/compression/downsample_float_array_curve_by_error.spec.js +0 -47
- package/src/engine/animation/curve/compression/sample_animation_curve_to_float_array.spec.js +0 -29
- package/src/engine/animation/keyed2/AnimationTrackPlayback.spec.js +0 -94
- package/src/engine/asset/AssetDescription.spec.js +0 -27
- package/src/engine/asset/AssetManager.spec.js +0 -50
- package/src/engine/asset/loaders/image/png/PNG.spec.js +0 -5
- package/src/engine/asset/loaders/image/png/PNGReader.spec.js +0 -5
- package/src/engine/asset/loaders/image/png/crc.spec.js +0 -15
- package/src/engine/control/ControlContext.spec.js +0 -81
- package/src/engine/ecs/Entity.spec.js +0 -188
- package/src/engine/ecs/EntityBlueprint.spec.js +0 -52
- package/src/engine/ecs/EntityComponentDataset.spec.js +0 -895
- package/src/engine/ecs/EntityManager.spec.js +0 -210
- package/src/engine/ecs/EntityObserver.spec.js +0 -184
- package/src/engine/ecs/animation/Animation.spec.js +0 -22
- package/src/engine/ecs/animation/AnimationClip.spec.js +0 -5
- package/src/engine/ecs/components/Tag.spec.js +0 -47
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescriptionTable.spec.js +0 -126
- package/src/engine/ecs/fow/FogOfWar.spec.js +0 -13
- package/src/engine/ecs/guid/UUID.spec.js +0 -100
- package/src/engine/ecs/guid/UUIDSerializationAdapter.spec.js +0 -21
- package/src/engine/ecs/parent/EntityNode.spec.js +0 -104
- package/src/engine/ecs/renderable/Renderable.spec.js +0 -10
- package/src/engine/ecs/storage/binary/BinarySerializationRegistry.spec.js +0 -139
- package/src/engine/ecs/storage/binary/collection/BinaryCollectionSerialization.spec.js +0 -259
- package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter.spec.js +0 -59
- package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter2.spec.js +0 -123
- package/src/engine/ecs/terrain/ecs/Terrain.spec.js +0 -5
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.spec.js +0 -38
- package/src/engine/ecs/terrain/overlay/TerrainOverlay.spec.js +0 -6
- package/src/engine/ecs/terrain/tiles/TerrainTile.spec.js +0 -25
- package/src/engine/ecs/tooltip/TooltipComponent.spec.js +0 -47
- package/src/engine/ecs/transform/Transform.spec.js +0 -310
- package/src/engine/ecs/transform/TransformSerializationAdapter.spec.js +0 -28
- package/src/engine/ecs/transform-attachment/TransformAttachment.spec.js +0 -103
- package/src/engine/graphics/ecs/animation/animator/graph/AnimationGraph.spec.js +0 -5
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.spec.js +0 -5
- package/src/engine/graphics/ecs/camera/InvertQuaternionOrientation.d.ts +0 -7
- package/src/engine/graphics/ecs/camera/InvertQuaternionOrientation.d.ts.map +0 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.spec.js +0 -94
- package/src/engine/graphics/ecs/decal/v2/Decal.spec.js +0 -5
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.spec.js +0 -19
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.spec.js +0 -5
- package/src/engine/graphics/ecs/mesh-v2/render/adapters/SGCacheKey.spec.js +0 -79
- package/src/engine/graphics/ecs/path/tube/TubePathStyle.spec.js +0 -5
- package/src/engine/graphics/ecs/path/tube/build/build_geometry_catmullrom.spec.js +0 -32
- package/src/engine/graphics/geometry/MikkT/MikkTSpace.spec.js +0 -28
- package/src/engine/graphics/geometry/bvh/buffered/bvh32_from_unindexed_geometry.spec.js +0 -22
- package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.spec.js +0 -70
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.spec.js +0 -47
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.spec.js +0 -100
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.spec.js +0 -225
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.spec.js +0 -215
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.spec.js +0 -75
- package/src/engine/graphics/particles/particular/group/ParticleGroup.spec.js +0 -270
- package/src/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameter.spec.js +0 -21
- package/src/engine/graphics/render/forward_plus/LightManager.spec.js +0 -94
- package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.spec.js +0 -79
- package/src/engine/graphics/render/visibility/IncrementalDeltaSet.spec.js +0 -102
- package/src/engine/graphics/texture/atlas/CachingTextureAtlas.spec.js +0 -78
- package/src/engine/graphics/texture/atlas/TextureAtlas.spec.js +0 -319
- package/src/engine/graphics/texture/sampler/HarmonicDiffusionGrid.spec.js +0 -99
- package/src/engine/graphics/texture/sampler/Sampler2D.spec.js +0 -224
- package/src/engine/graphics/texture/sampler/copy_Sampler2D_channel_data.spec.js +0 -90
- package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_NaiveFlood.spec.js +0 -183
- package/src/engine/graphics/texture/sampler/distance/computeUnsignedDistanceField.spec.js +0 -183
- package/src/engine/graphics/texture/sampler/resize/sampler2d_scale.spec.js +0 -73
- package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.spec.js +0 -31
- package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_linear.spec.js +0 -44
- package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_mipmap.spec.js +0 -13
- package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_up_linear.spec.js +0 -14
- package/src/engine/graphics/texture/sampler/sampler2d_channel_compute_max.spec.js +0 -40
- package/src/engine/graphics/texture/sampler/sampler2d_channel_compute_min_indices.spec.js +0 -15
- package/src/engine/graphics/texture/sampler/sampler2d_copy_with_margins.spec.js +0 -31
- package/src/engine/graphics/texture/sampler/sampler2d_to_data_url.spec.js +0 -10
- package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.spec.js +0 -52
- package/src/engine/graphics/texture/sampler/serialization/TextureBinaryBufferSerializer.spec.js +0 -38
- package/src/engine/graphics/three/expand_aabb_by_transformed_three_object.spec.js +0 -108
- package/src/engine/graphics/trail/x/RibbonX.spec.js +0 -5
- package/src/engine/grid/obstacle/GridObstacle.spec.js +0 -175
- package/src/engine/input/devices/InputDeviceSwitch.spec.js +0 -5
- package/src/engine/input/devices/KeyboardDevice.spec.js +0 -12
- package/src/engine/input/devices/PointerDevice.spec.js +0 -12
- package/src/engine/intelligence/behavior/Behavior.spec.js +0 -15
- package/src/engine/intelligence/behavior/SelectorBehavior.spec.js +0 -18
- package/src/engine/intelligence/behavior/behavior_to_dot.spec.js +0 -25
- package/src/engine/intelligence/behavior/composite/ParallelBehavior.spec.js +0 -166
- package/src/engine/intelligence/behavior/composite/SequenceBehavior.spec.js +0 -17
- package/src/engine/intelligence/behavior/decorator/RepeatBehavior.spec.js +0 -32
- package/src/engine/intelligence/behavior/ecs/BehaviorSystem.spec.js +0 -75
- package/src/engine/intelligence/behavior/util/ConditionBehavior.spec.js +0 -24
- package/src/engine/intelligence/blackboard/Blackboard.spec.js +0 -111
- package/src/engine/intelligence/blackboard/BlackboardSerializationAdapter.spec.js +0 -30
- package/src/engine/intelligence/blackboard/make_blackboard_proxy.spec.js +0 -23
- package/src/engine/intelligence/mcts/MonteCarlo.spec.js +0 -244
- package/src/engine/intelligence/mcts/StateNode.spec.js +0 -49
- package/src/engine/intelligence/optimization/RandomOptimizer.spec.js +0 -57
- package/src/engine/intelligence/resource/ResourceAllocationSolver.spec.js +0 -104
- package/src/engine/intelligence/resource/StrategicResourceAllocator.spec.js +0 -46
- package/src/engine/knowledge/database/StaticKnowledgeDataTable.spec.js +0 -26
- package/src/engine/knowledge/database/StaticKnowledgeDatabase.spec.js +0 -23
- package/src/engine/navigation/ecs/components/Path.spec.js +0 -195
- package/src/engine/navigation/ecs/path_following/PathFollower.spec.js +0 -27
- package/src/engine/navigation/grid/find_path_on_grid_astar.spec.js +0 -87
- package/src/engine/notify/NotificationLog.spec.js +0 -17
- package/src/engine/options/Option.spec.js +0 -69
- package/src/engine/options/OptionGroup.spec.js +0 -61
- package/src/engine/physics/gjk/expanding_polytope_algorithm.spec.js +0 -46
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.spec.js +0 -43
- package/src/engine/plugin/EnginePlugin.spec.js +0 -5
- package/src/engine/reference/v2/Reference.spec.js +0 -44
- package/src/engine/scene/Scene.spec.js +0 -20
- package/src/engine/scene/SceneManager.spec.js +0 -131
- package/src/engine/sound/ecs/emitter/SoundEmitterSerializationAdapter.spec.js +0 -49
- package/src/engine/ui/tiles2d/TileGrid.spec.js +0 -20
- package/src/engine/ui/tiles2d/computeTileGridMove.spec.js +0 -54
- package/src/generation/automata/CaveGeneratorCellularAutomata.spec.js +0 -12
- package/src/generation/filtering/numeric/complex/CellFilterAngleToNormal.spec.js +0 -30
- package/src/generation/filtering/numeric/complex/CellFilterGaussianBlur.spec.js +0 -17
- package/src/generation/filtering/numeric/process/computeCellFilterGradient.spec.js +0 -288
- package/src/generation/grid/GridData.spec.js +0 -46
- package/src/generation/markers/actions/probability/MarkerNodeActionSelectWeighted.spec.js +0 -116
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.spec.js +0 -106
- package/src/generation/placement/action/GridCellActionPlaceTags.spec.js +0 -21
- package/src/generation/rules/CellMatcherLayerBitMaskTest.spec.js +0 -22
- package/src/generation/rules/cell/GridPatternMatcher.spec.js +0 -285
- package/src/generation/theme/ThemeEngine.spec.js +0 -7
- package/src/view/tooltip/gml/TooltipParser.spec.js +0 -142
package/build/meep.cjs
CHANGED
|
@@ -899,6 +899,36 @@ function m4_multiply(out, a, b) {
|
|
|
899
899
|
out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
900
900
|
}
|
|
901
901
|
|
|
902
|
+
/**
|
|
903
|
+
*
|
|
904
|
+
* @param {SignalHandler} first
|
|
905
|
+
* @param {function} handle
|
|
906
|
+
* @param {*} [thisArg]
|
|
907
|
+
*/
|
|
908
|
+
function signal_handler_list_find(first, handle, thisArg) {
|
|
909
|
+
let n = first;
|
|
910
|
+
|
|
911
|
+
for (; ;) {
|
|
912
|
+
|
|
913
|
+
if (n.handle === handle && n.context === thisArg) {
|
|
914
|
+
return n;
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
n = n.next;
|
|
918
|
+
|
|
919
|
+
if (n === null) {
|
|
920
|
+
return null;
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
const SignalFlags = {
|
|
926
|
+
/**
|
|
927
|
+
* If set - signal will not invoke handlers when dispatched
|
|
928
|
+
*/
|
|
929
|
+
Silent: 1
|
|
930
|
+
};
|
|
931
|
+
|
|
902
932
|
/**
|
|
903
933
|
*
|
|
904
934
|
* @enum {number}
|
|
@@ -911,6 +941,18 @@ const SignalHandlerFlags = {
|
|
|
911
941
|
};
|
|
912
942
|
|
|
913
943
|
class SignalHandler {
|
|
944
|
+
/**
|
|
945
|
+
* Optional field. Used for forming linked lists of handlers
|
|
946
|
+
* @type {SignalHandler|null}
|
|
947
|
+
*/
|
|
948
|
+
next = null;
|
|
949
|
+
|
|
950
|
+
/**
|
|
951
|
+
* @private
|
|
952
|
+
* @type {number|SignalHandlerFlags}
|
|
953
|
+
*/
|
|
954
|
+
flags = 0;
|
|
955
|
+
|
|
914
956
|
/**
|
|
915
957
|
*
|
|
916
958
|
* @param {function} handle
|
|
@@ -918,15 +960,9 @@ class SignalHandler {
|
|
|
918
960
|
*/
|
|
919
961
|
constructor(handle, context) {
|
|
920
962
|
|
|
921
|
-
|
|
922
963
|
this.handle = handle;
|
|
923
964
|
this.context = context;
|
|
924
965
|
|
|
925
|
-
/**
|
|
926
|
-
* @private
|
|
927
|
-
* @type {number|SignalHandlerFlags}
|
|
928
|
-
*/
|
|
929
|
-
this.flags = 0;
|
|
930
966
|
}
|
|
931
967
|
|
|
932
968
|
/**
|
|
@@ -977,126 +1013,6 @@ class SignalHandler {
|
|
|
977
1013
|
*/
|
|
978
1014
|
SignalHandler.prototype.isSignalHandler = true;
|
|
979
1015
|
|
|
980
|
-
/**
|
|
981
|
-
* Common dispatch stack
|
|
982
|
-
* @readonly
|
|
983
|
-
* @type {SignalHandler[]}
|
|
984
|
-
*/
|
|
985
|
-
const dispatch_stack$1 = [];
|
|
986
|
-
let dispatch_stack_top$1 = 0;
|
|
987
|
-
|
|
988
|
-
/**
|
|
989
|
-
*
|
|
990
|
-
* @param {function} f
|
|
991
|
-
* @param {*} context
|
|
992
|
-
* @param {Array} args
|
|
993
|
-
*/
|
|
994
|
-
function dispatchCallback(f, context, args) {
|
|
995
|
-
|
|
996
|
-
try {
|
|
997
|
-
f.apply(context, args);
|
|
998
|
-
} catch (e) {
|
|
999
|
-
}
|
|
1000
|
-
}
|
|
1001
|
-
|
|
1002
|
-
/**
|
|
1003
|
-
*
|
|
1004
|
-
* @param {SignalHandler[]} handlers
|
|
1005
|
-
* @param {Array} [args]
|
|
1006
|
-
*/
|
|
1007
|
-
function dispatchViaProxy(handlers, args) {
|
|
1008
|
-
const length = handlers.length;
|
|
1009
|
-
|
|
1010
|
-
const stack_pointer = dispatch_stack_top$1;
|
|
1011
|
-
const stack_frame_end = stack_pointer + length;
|
|
1012
|
-
dispatch_stack_top$1 = stack_frame_end;
|
|
1013
|
-
|
|
1014
|
-
let i, h;
|
|
1015
|
-
for (i = 0; i < length; i++) {
|
|
1016
|
-
//copy to proxy
|
|
1017
|
-
dispatch_stack$1[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1018
|
-
}
|
|
1019
|
-
|
|
1020
|
-
for (i = stack_frame_end - 1; i >= stack_pointer; i--) {
|
|
1021
|
-
h = dispatch_stack$1[i];
|
|
1022
|
-
|
|
1023
|
-
if (h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1024
|
-
//handler should be cut
|
|
1025
|
-
const p = handlers.indexOf(h);
|
|
1026
|
-
handlers.splice(p, 1);
|
|
1027
|
-
}
|
|
1028
|
-
|
|
1029
|
-
dispatchCallback(h.handle, h.context, args);
|
|
1030
|
-
}
|
|
1031
|
-
|
|
1032
|
-
//drop stack frame
|
|
1033
|
-
dispatch_stack_top$1 = stack_pointer;
|
|
1034
|
-
}
|
|
1035
|
-
|
|
1036
|
-
/**
|
|
1037
|
-
*
|
|
1038
|
-
* @param {SignalHandler[]} handlers
|
|
1039
|
-
* @param {function} f
|
|
1040
|
-
* @param {*} [thisArg]
|
|
1041
|
-
* @returns {number} index of the handler, or -1 if not found
|
|
1042
|
-
*/
|
|
1043
|
-
function findSignalHandlerIndexByHandle(handlers, f, thisArg) {
|
|
1044
|
-
const l = handlers.length;
|
|
1045
|
-
|
|
1046
|
-
for (let i = 0; i < l; i++) {
|
|
1047
|
-
const signalHandler = handlers[i];
|
|
1048
|
-
|
|
1049
|
-
if (signalHandler.handle === f) {
|
|
1050
|
-
|
|
1051
|
-
if (thisArg !== undefined && thisArg !== signalHandler.context) {
|
|
1052
|
-
//context variable doesn't match
|
|
1053
|
-
continue;
|
|
1054
|
-
}
|
|
1055
|
-
|
|
1056
|
-
return i;
|
|
1057
|
-
}
|
|
1058
|
-
}
|
|
1059
|
-
|
|
1060
|
-
return -1;
|
|
1061
|
-
}
|
|
1062
|
-
|
|
1063
|
-
/**
|
|
1064
|
-
*
|
|
1065
|
-
* @param {SignalHandler[]} handlers
|
|
1066
|
-
* @param {function} f
|
|
1067
|
-
* @param {*} ctx
|
|
1068
|
-
* @returns {number} index of the handler, or -1 if not found
|
|
1069
|
-
*/
|
|
1070
|
-
function findSignalHandlerIndexByHandleAndContext(handlers, f, ctx) {
|
|
1071
|
-
const l = handlers.length;
|
|
1072
|
-
|
|
1073
|
-
for (let i = 0; i < l; i++) {
|
|
1074
|
-
const handler = handlers[i];
|
|
1075
|
-
|
|
1076
|
-
if (handler.handle === f && handler.context === ctx) {
|
|
1077
|
-
return i;
|
|
1078
|
-
}
|
|
1079
|
-
|
|
1080
|
-
}
|
|
1081
|
-
|
|
1082
|
-
return -1;
|
|
1083
|
-
}
|
|
1084
|
-
|
|
1085
|
-
const SignalFlags = {
|
|
1086
|
-
/**
|
|
1087
|
-
* If set - signal will not invoke handlers when dispatched
|
|
1088
|
-
*/
|
|
1089
|
-
Silent: 1
|
|
1090
|
-
};
|
|
1091
|
-
|
|
1092
|
-
/**
|
|
1093
|
-
* Common dispatch stack
|
|
1094
|
-
* @readonly
|
|
1095
|
-
* @type {SignalHandler[]}
|
|
1096
|
-
*/
|
|
1097
|
-
const dispatch_stack = [];
|
|
1098
|
-
let dispatch_stack_top = 0;
|
|
1099
|
-
|
|
1100
1016
|
/**
|
|
1101
1017
|
* Signal is a type of event bus. You can subscribe to events using {@link add} method and dispatch using sendN method where N is the number of arguments you wish to pass
|
|
1102
1018
|
* Signal is different from a normal event bus in that 1 signal corresponds to 1 event type. For example, in HTML you have `addEventListener` which lets you subscribe to any kind of event, let's use "mousedown" as a reference. Using a Signal you would instead have a signal corresponding to "mousedown" and dispatch this signal only for this event.
|
|
@@ -1104,10 +1020,11 @@ let dispatch_stack_top = 0;
|
|
|
1104
1020
|
*/
|
|
1105
1021
|
class Signal {
|
|
1106
1022
|
/**
|
|
1023
|
+
* Map is used to speed up lookup when removing handlers in case of large number of listeners.
|
|
1107
1024
|
* @private
|
|
1108
|
-
* @type {SignalHandler
|
|
1025
|
+
* @type {Map<function,SignalHandler>}
|
|
1109
1026
|
*/
|
|
1110
|
-
handlers =
|
|
1027
|
+
handlers = new Map();
|
|
1111
1028
|
|
|
1112
1029
|
/**
|
|
1113
1030
|
* Internal flag bitmask
|
|
@@ -1184,9 +1101,15 @@ class Signal {
|
|
|
1184
1101
|
contains(handler, thisArg) {
|
|
1185
1102
|
const handlers = this.handlers;
|
|
1186
1103
|
|
|
1187
|
-
const
|
|
1104
|
+
const sh = handlers.get(handler);
|
|
1188
1105
|
|
|
1189
|
-
|
|
1106
|
+
if (sh === undefined) {
|
|
1107
|
+
return false;
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
const existing = signal_handler_list_find(sh, handler, thisArg);
|
|
1111
|
+
|
|
1112
|
+
return existing !== null;
|
|
1190
1113
|
}
|
|
1191
1114
|
|
|
1192
1115
|
mute() {
|
|
@@ -1202,7 +1125,7 @@ class Signal {
|
|
|
1202
1125
|
* @returns {boolean}
|
|
1203
1126
|
*/
|
|
1204
1127
|
hasHandlers() {
|
|
1205
|
-
return this.handlers.
|
|
1128
|
+
return this.handlers.size > 0;
|
|
1206
1129
|
}
|
|
1207
1130
|
|
|
1208
1131
|
/**
|
|
@@ -1216,7 +1139,7 @@ class Signal {
|
|
|
1216
1139
|
|
|
1217
1140
|
handler.setFlag(SignalHandlerFlags.RemoveAfterExecution);
|
|
1218
1141
|
|
|
1219
|
-
this
|
|
1142
|
+
this.#add_handler(handler);
|
|
1220
1143
|
}
|
|
1221
1144
|
|
|
1222
1145
|
/**
|
|
@@ -1226,15 +1149,36 @@ class Signal {
|
|
|
1226
1149
|
*/
|
|
1227
1150
|
add(h, context) {
|
|
1228
1151
|
|
|
1229
|
-
// if (!ENV_PRODUCTION) {
|
|
1230
|
-
// if (this.handlers.length + 1 === 100) {
|
|
1231
|
-
// console.error(`Number of handlers has is 100 now, possible leak detected`);
|
|
1232
|
-
// }
|
|
1233
|
-
// }
|
|
1234
|
-
|
|
1235
1152
|
const handler = new SignalHandler(h, context);
|
|
1236
1153
|
|
|
1237
|
-
this
|
|
1154
|
+
this.#add_handler(handler);
|
|
1155
|
+
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
/**
|
|
1159
|
+
*
|
|
1160
|
+
* @param {SignalHandler} handler
|
|
1161
|
+
*/
|
|
1162
|
+
#add_handler(handler) {
|
|
1163
|
+
|
|
1164
|
+
const f = handler.handle;
|
|
1165
|
+
const first = this.handlers.get(f);
|
|
1166
|
+
|
|
1167
|
+
if (first === undefined) {
|
|
1168
|
+
this.handlers.set(f, handler);
|
|
1169
|
+
} else {
|
|
1170
|
+
|
|
1171
|
+
handler.next = first;
|
|
1172
|
+
this.handlers.set(f,handler);
|
|
1173
|
+
|
|
1174
|
+
// const last = signal_handler_list_last(first);
|
|
1175
|
+
|
|
1176
|
+
// last.next = handler;
|
|
1177
|
+
|
|
1178
|
+
// assert.ok(signal_handler_list_validate(first, console.error), 'invalid configuration');
|
|
1179
|
+
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1238
1182
|
}
|
|
1239
1183
|
|
|
1240
1184
|
/**
|
|
@@ -1245,11 +1189,44 @@ class Signal {
|
|
|
1245
1189
|
*/
|
|
1246
1190
|
remove(h, thisArg) {
|
|
1247
1191
|
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
return
|
|
1192
|
+
const first = this.handlers.get(h);
|
|
1193
|
+
|
|
1194
|
+
if (first === undefined) {
|
|
1195
|
+
return false;
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
if (first.handle === h && first.context === thisArg) {
|
|
1199
|
+
if (first.next === null) {
|
|
1200
|
+
this.handlers.delete(h);
|
|
1201
|
+
} else {
|
|
1202
|
+
this.handlers.set(h, first.next);
|
|
1203
|
+
// assert.ok(signal_handler_list_validate(first.next, console.error), 'invalid configuration');
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1206
|
+
return true;
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
let previous = first;
|
|
1210
|
+
let n = first.next;
|
|
1211
|
+
|
|
1212
|
+
while (n !== null) {
|
|
1213
|
+
|
|
1214
|
+
if (n.handle === h && n.context === thisArg) {
|
|
1215
|
+
|
|
1216
|
+
previous.next = n.next;
|
|
1217
|
+
|
|
1218
|
+
// assert.ok(signal_handler_list_validate(first, console.error), 'invalid configuration');
|
|
1219
|
+
|
|
1220
|
+
return true;
|
|
1221
|
+
|
|
1222
|
+
}
|
|
1223
|
+
|
|
1224
|
+
previous = n;
|
|
1225
|
+
n = n.next;
|
|
1226
|
+
|
|
1252
1227
|
}
|
|
1228
|
+
|
|
1229
|
+
return false;
|
|
1253
1230
|
}
|
|
1254
1231
|
|
|
1255
1232
|
/**
|
|
@@ -1260,8 +1237,58 @@ class Signal {
|
|
|
1260
1237
|
* @deprecated
|
|
1261
1238
|
*/
|
|
1262
1239
|
removeAll() {
|
|
1263
|
-
|
|
1264
|
-
|
|
1240
|
+
this.handlers.clear();
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
/**
|
|
1244
|
+
*
|
|
1245
|
+
* @param {SignalHandler} handler
|
|
1246
|
+
*/
|
|
1247
|
+
#remove_handler_internal(handler) {
|
|
1248
|
+
|
|
1249
|
+
const first = this.handlers.get(handler.handle);
|
|
1250
|
+
|
|
1251
|
+
if (first === undefined) {
|
|
1252
|
+
// nothing
|
|
1253
|
+
return false;
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1256
|
+
// special case for first
|
|
1257
|
+
if (first === handler) {
|
|
1258
|
+
|
|
1259
|
+
if (first.next === null) {
|
|
1260
|
+
// was the only one
|
|
1261
|
+
this.handlers.delete(handler.handle);
|
|
1262
|
+
} else {
|
|
1263
|
+
this.handlers.set(handler.handle, first.next);
|
|
1264
|
+
// assert.ok(signal_handler_list_validate(first.next, console.error), 'invalid configuration');
|
|
1265
|
+
}
|
|
1266
|
+
|
|
1267
|
+
return true;
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
let previous = first;
|
|
1271
|
+
let n = first.next;
|
|
1272
|
+
|
|
1273
|
+
while (n !== null) {
|
|
1274
|
+
|
|
1275
|
+
const next = n.next;
|
|
1276
|
+
|
|
1277
|
+
if (n === handler) {
|
|
1278
|
+
previous.next = next;
|
|
1279
|
+
|
|
1280
|
+
// assert.ok(signal_handler_list_validate(first, console.error), 'invalid configuration');
|
|
1281
|
+
|
|
1282
|
+
return true;
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1285
|
+
previous = n;
|
|
1286
|
+
n = next;
|
|
1287
|
+
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
// not found
|
|
1291
|
+
return false;
|
|
1265
1292
|
}
|
|
1266
1293
|
|
|
1267
1294
|
/**
|
|
@@ -1274,10 +1301,38 @@ class Signal {
|
|
|
1274
1301
|
return;
|
|
1275
1302
|
}
|
|
1276
1303
|
|
|
1277
|
-
|
|
1304
|
+
const handlers = this.handlers;
|
|
1305
|
+
|
|
1306
|
+
for (const handle of handlers.values()) {
|
|
1307
|
+
|
|
1308
|
+
let _h = handle;
|
|
1309
|
+
|
|
1310
|
+
do {
|
|
1311
|
+
|
|
1312
|
+
const next = _h.next;
|
|
1313
|
+
|
|
1314
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1315
|
+
//handler should be cut
|
|
1316
|
+
this.#remove_handler_internal(_h);
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
const _f = _h.handle;
|
|
1320
|
+
|
|
1321
|
+
try {
|
|
1322
|
+
_f.apply(_h.context, args);
|
|
1323
|
+
} catch (e) {
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
_h = next;
|
|
1327
|
+
|
|
1328
|
+
} while (_h !== null);
|
|
1329
|
+
|
|
1330
|
+
|
|
1331
|
+
}
|
|
1278
1332
|
|
|
1279
1333
|
}
|
|
1280
1334
|
|
|
1335
|
+
|
|
1281
1336
|
/**
|
|
1282
1337
|
* dispatch without a value.
|
|
1283
1338
|
* Allows JS engine to optimize for monomorphic call sites
|
|
@@ -1290,41 +1345,33 @@ class Signal {
|
|
|
1290
1345
|
|
|
1291
1346
|
const handlers = this.handlers;
|
|
1292
1347
|
|
|
1293
|
-
const
|
|
1348
|
+
for (const handle of handlers.values()) {
|
|
1294
1349
|
|
|
1295
|
-
|
|
1296
|
-
const stack_frame_end = stack_pointer + length;
|
|
1297
|
-
dispatch_stack_top = stack_frame_end;
|
|
1350
|
+
let _h = handle;
|
|
1298
1351
|
|
|
1299
|
-
|
|
1352
|
+
do {
|
|
1300
1353
|
|
|
1301
|
-
|
|
1302
|
-
for (i = 0; i < length; i++) {
|
|
1303
|
-
//copy to proxy
|
|
1304
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1305
|
-
}
|
|
1354
|
+
const next = _h.next;
|
|
1306
1355
|
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1356
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1357
|
+
//handler should be cut
|
|
1358
|
+
this.#remove_handler_internal(_h);
|
|
1359
|
+
}
|
|
1310
1360
|
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1361
|
+
const _f = _h.handle;
|
|
1362
|
+
|
|
1363
|
+
try {
|
|
1364
|
+
_f.call(_h.context);
|
|
1365
|
+
} catch (e) {
|
|
1366
|
+
}
|
|
1316
1367
|
|
|
1317
|
-
|
|
1368
|
+
_h = next;
|
|
1369
|
+
|
|
1370
|
+
} while (_h !== null);
|
|
1318
1371
|
|
|
1319
|
-
try {
|
|
1320
|
-
f.call(h.context);
|
|
1321
|
-
} catch (e) {
|
|
1322
|
-
}
|
|
1323
1372
|
|
|
1324
1373
|
}
|
|
1325
1374
|
|
|
1326
|
-
//drop stack frame
|
|
1327
|
-
dispatch_stack_top = stack_pointer;
|
|
1328
1375
|
}
|
|
1329
1376
|
|
|
1330
1377
|
/**
|
|
@@ -1340,42 +1387,33 @@ class Signal {
|
|
|
1340
1387
|
|
|
1341
1388
|
const handlers = this.handlers;
|
|
1342
1389
|
|
|
1343
|
-
const
|
|
1390
|
+
for (const handle of handlers.values()) {
|
|
1344
1391
|
|
|
1345
|
-
|
|
1346
|
-
const stack_frame_end = stack_pointer + length;
|
|
1347
|
-
dispatch_stack_top = stack_frame_end;
|
|
1392
|
+
let _h = handle;
|
|
1348
1393
|
|
|
1394
|
+
do {
|
|
1349
1395
|
|
|
1350
|
-
|
|
1396
|
+
const next = _h.next;
|
|
1351
1397
|
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
}
|
|
1398
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1399
|
+
//handler should be cut
|
|
1400
|
+
this.#remove_handler_internal(_h);
|
|
1401
|
+
}
|
|
1357
1402
|
|
|
1358
|
-
|
|
1359
|
-
for (i = stack_frame_end - 1; i >= stack_pointer; i--) {
|
|
1360
|
-
h = dispatch_stack[i];
|
|
1403
|
+
const _f = _h.handle;
|
|
1361
1404
|
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
}
|
|
1405
|
+
try {
|
|
1406
|
+
_f.call(_h.context, arg);
|
|
1407
|
+
} catch (e) {
|
|
1408
|
+
}
|
|
1367
1409
|
|
|
1368
|
-
|
|
1410
|
+
_h = next;
|
|
1411
|
+
|
|
1412
|
+
} while (_h !== null);
|
|
1369
1413
|
|
|
1370
|
-
try {
|
|
1371
|
-
f.call(h.context, arg);
|
|
1372
|
-
} catch (e) {
|
|
1373
|
-
}
|
|
1374
1414
|
|
|
1375
1415
|
}
|
|
1376
1416
|
|
|
1377
|
-
//drop stack frame
|
|
1378
|
-
dispatch_stack_top = stack_pointer;
|
|
1379
1417
|
}
|
|
1380
1418
|
|
|
1381
1419
|
/**
|
|
@@ -1391,41 +1429,32 @@ class Signal {
|
|
|
1391
1429
|
|
|
1392
1430
|
const handlers = this.handlers;
|
|
1393
1431
|
|
|
1394
|
-
const
|
|
1432
|
+
for (const handle of handlers.values()) {
|
|
1395
1433
|
|
|
1396
|
-
|
|
1397
|
-
const stack_frame_end = stack_pointer + length;
|
|
1398
|
-
dispatch_stack_top = stack_frame_end;
|
|
1434
|
+
let _h = handle;
|
|
1399
1435
|
|
|
1400
|
-
|
|
1436
|
+
do {
|
|
1401
1437
|
|
|
1402
|
-
|
|
1403
|
-
for (i = 0; i < length; i++) {
|
|
1404
|
-
//copy to proxy
|
|
1405
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1406
|
-
}
|
|
1438
|
+
const next = _h.next;
|
|
1407
1439
|
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1440
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1441
|
+
//handler should be cut
|
|
1442
|
+
this.#remove_handler_internal(_h);
|
|
1443
|
+
}
|
|
1411
1444
|
|
|
1412
|
-
|
|
1413
|
-
//handler should be cut
|
|
1414
|
-
const p = handlers.indexOf(h);
|
|
1415
|
-
handlers.splice(p, 1);
|
|
1416
|
-
}
|
|
1445
|
+
const _f = _h.handle;
|
|
1417
1446
|
|
|
1418
|
-
|
|
1447
|
+
try {
|
|
1448
|
+
_f.call(_h.context, a, b);
|
|
1449
|
+
} catch (e) {
|
|
1450
|
+
}
|
|
1419
1451
|
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
}
|
|
1423
|
-
}
|
|
1452
|
+
_h = next;
|
|
1453
|
+
|
|
1454
|
+
} while (_h !== null);
|
|
1424
1455
|
|
|
1425
|
-
}
|
|
1426
1456
|
|
|
1427
|
-
|
|
1428
|
-
dispatch_stack_top = stack_pointer;
|
|
1457
|
+
}
|
|
1429
1458
|
}
|
|
1430
1459
|
|
|
1431
1460
|
/**
|
|
@@ -1440,43 +1469,35 @@ class Signal {
|
|
|
1440
1469
|
return;
|
|
1441
1470
|
}
|
|
1442
1471
|
|
|
1472
|
+
|
|
1443
1473
|
const handlers = this.handlers;
|
|
1444
1474
|
|
|
1445
|
-
const
|
|
1475
|
+
for (const handle of handlers.values()) {
|
|
1446
1476
|
|
|
1447
|
-
|
|
1448
|
-
const stack_frame_end = stack_pointer + length;
|
|
1449
|
-
dispatch_stack_top = stack_frame_end;
|
|
1477
|
+
let _h = handle;
|
|
1450
1478
|
|
|
1451
|
-
|
|
1479
|
+
do {
|
|
1452
1480
|
|
|
1453
|
-
|
|
1454
|
-
for (i = 0; i < length; i++) {
|
|
1455
|
-
//copy to proxy
|
|
1456
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1457
|
-
}
|
|
1481
|
+
const next = _h.next;
|
|
1458
1482
|
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1483
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1484
|
+
//handler should be cut
|
|
1485
|
+
this.#remove_handler_internal(_h);
|
|
1486
|
+
}
|
|
1462
1487
|
|
|
1463
|
-
|
|
1464
|
-
//handler should be cut
|
|
1465
|
-
const p = handlers.indexOf(h);
|
|
1466
|
-
handlers.splice(p, 1);
|
|
1467
|
-
}
|
|
1488
|
+
const _f = _h.handle;
|
|
1468
1489
|
|
|
1469
|
-
|
|
1490
|
+
try {
|
|
1491
|
+
_f.call(_h.context, a, b, c);
|
|
1492
|
+
} catch (e) {
|
|
1493
|
+
}
|
|
1470
1494
|
|
|
1471
|
-
|
|
1472
|
-
f.call(h.context, a, b, c);
|
|
1473
|
-
} catch (e) {
|
|
1474
|
-
}
|
|
1495
|
+
_h = next;
|
|
1475
1496
|
|
|
1476
|
-
|
|
1497
|
+
} while (_h !== null);
|
|
1477
1498
|
|
|
1478
|
-
|
|
1479
|
-
|
|
1499
|
+
|
|
1500
|
+
}
|
|
1480
1501
|
}
|
|
1481
1502
|
|
|
1482
1503
|
/**
|
|
@@ -1492,43 +1513,35 @@ class Signal {
|
|
|
1492
1513
|
return;
|
|
1493
1514
|
}
|
|
1494
1515
|
|
|
1516
|
+
|
|
1495
1517
|
const handlers = this.handlers;
|
|
1496
1518
|
|
|
1497
|
-
const
|
|
1519
|
+
for (const handle of handlers.values()) {
|
|
1498
1520
|
|
|
1499
|
-
|
|
1500
|
-
const stack_frame_end = stack_pointer + length;
|
|
1501
|
-
dispatch_stack_top = stack_frame_end;
|
|
1521
|
+
let _h = handle;
|
|
1502
1522
|
|
|
1503
|
-
|
|
1523
|
+
do {
|
|
1504
1524
|
|
|
1505
|
-
|
|
1506
|
-
for (i = 0; i < length; i++) {
|
|
1507
|
-
//copy to proxy
|
|
1508
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1509
|
-
}
|
|
1525
|
+
const next = _h.next;
|
|
1510
1526
|
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1527
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1528
|
+
//handler should be cut
|
|
1529
|
+
this.#remove_handler_internal(_h);
|
|
1530
|
+
}
|
|
1514
1531
|
|
|
1515
|
-
|
|
1516
|
-
//handler should be cut
|
|
1517
|
-
const p = handlers.indexOf(h);
|
|
1518
|
-
handlers.splice(p, 1);
|
|
1519
|
-
}
|
|
1532
|
+
const _f = _h.handle;
|
|
1520
1533
|
|
|
1521
|
-
|
|
1534
|
+
try {
|
|
1535
|
+
_f.call(_h.context, a, b, c, d);
|
|
1536
|
+
} catch (e) {
|
|
1537
|
+
}
|
|
1522
1538
|
|
|
1523
|
-
|
|
1524
|
-
f.call(h.context, a, b, c, d);
|
|
1525
|
-
} catch (e) {
|
|
1526
|
-
}
|
|
1539
|
+
_h = next;
|
|
1527
1540
|
|
|
1528
|
-
|
|
1541
|
+
} while (_h !== null);
|
|
1529
1542
|
|
|
1530
|
-
|
|
1531
|
-
|
|
1543
|
+
|
|
1544
|
+
}
|
|
1532
1545
|
}
|
|
1533
1546
|
|
|
1534
1547
|
/**
|
|
@@ -1546,43 +1559,35 @@ class Signal {
|
|
|
1546
1559
|
return;
|
|
1547
1560
|
}
|
|
1548
1561
|
|
|
1562
|
+
|
|
1549
1563
|
const handlers = this.handlers;
|
|
1550
1564
|
|
|
1551
|
-
const
|
|
1565
|
+
for (const handle of handlers.values()) {
|
|
1552
1566
|
|
|
1553
|
-
|
|
1554
|
-
const stack_frame_end = stack_pointer + length;
|
|
1555
|
-
dispatch_stack_top = stack_frame_end;
|
|
1567
|
+
let _h = handle;
|
|
1556
1568
|
|
|
1557
|
-
|
|
1569
|
+
do {
|
|
1558
1570
|
|
|
1559
|
-
|
|
1560
|
-
for (i = 0; i < length; i++) {
|
|
1561
|
-
//copy to proxy
|
|
1562
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1563
|
-
}
|
|
1571
|
+
const next = _h.next;
|
|
1564
1572
|
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1573
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1574
|
+
//handler should be cut
|
|
1575
|
+
this.#remove_handler_internal(_h);
|
|
1576
|
+
}
|
|
1568
1577
|
|
|
1569
|
-
|
|
1570
|
-
//handler should be cut
|
|
1571
|
-
const p = handlers.indexOf(h);
|
|
1572
|
-
handlers.splice(p, 1);
|
|
1573
|
-
}
|
|
1578
|
+
const _f = _h.handle;
|
|
1574
1579
|
|
|
1575
|
-
|
|
1580
|
+
try {
|
|
1581
|
+
_f.call(_h.context, a, b, c, d, e, f);
|
|
1582
|
+
} catch (e) {
|
|
1583
|
+
}
|
|
1576
1584
|
|
|
1577
|
-
|
|
1578
|
-
handle.call(h.context, a, b, c, d, e, f);
|
|
1579
|
-
} catch (e) {
|
|
1580
|
-
}
|
|
1585
|
+
_h = next;
|
|
1581
1586
|
|
|
1582
|
-
|
|
1587
|
+
} while (_h !== null);
|
|
1583
1588
|
|
|
1584
|
-
|
|
1585
|
-
|
|
1589
|
+
|
|
1590
|
+
}
|
|
1586
1591
|
}
|
|
1587
1592
|
|
|
1588
1593
|
/**
|
|
@@ -1604,41 +1609,32 @@ class Signal {
|
|
|
1604
1609
|
|
|
1605
1610
|
const handlers = this.handlers;
|
|
1606
1611
|
|
|
1607
|
-
const
|
|
1612
|
+
for (const handle of handlers.values()) {
|
|
1608
1613
|
|
|
1609
|
-
|
|
1610
|
-
const stack_frame_end = stack_pointer + length;
|
|
1611
|
-
dispatch_stack_top = stack_frame_end;
|
|
1614
|
+
let _h = handle;
|
|
1612
1615
|
|
|
1613
|
-
|
|
1616
|
+
do {
|
|
1614
1617
|
|
|
1615
|
-
|
|
1616
|
-
for (i = 0; i < length; i++) {
|
|
1617
|
-
//copy to proxy
|
|
1618
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1619
|
-
}
|
|
1618
|
+
const next = _h.next;
|
|
1620
1619
|
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1620
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1621
|
+
//handler should be cut
|
|
1622
|
+
this.#remove_handler_internal(_h);
|
|
1623
|
+
}
|
|
1624
1624
|
|
|
1625
|
-
|
|
1626
|
-
//handler should be cut
|
|
1627
|
-
const p = handlers.indexOf(handler);
|
|
1628
|
-
handlers.splice(p, 1);
|
|
1629
|
-
}
|
|
1625
|
+
const _f = _h.handle;
|
|
1630
1626
|
|
|
1631
|
-
|
|
1627
|
+
try {
|
|
1628
|
+
_f.call(_h.context, a, b, c, d, e, f, g, h);
|
|
1629
|
+
} catch (e) {
|
|
1630
|
+
}
|
|
1632
1631
|
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
}
|
|
1636
|
-
}
|
|
1632
|
+
_h = next;
|
|
1633
|
+
|
|
1634
|
+
} while (_h !== null);
|
|
1637
1635
|
|
|
1638
|
-
}
|
|
1639
1636
|
|
|
1640
|
-
|
|
1641
|
-
dispatch_stack_top = stack_pointer;
|
|
1637
|
+
}
|
|
1642
1638
|
}
|
|
1643
1639
|
|
|
1644
1640
|
/**
|
|
@@ -1665,44 +1661,7 @@ class Signal {
|
|
|
1665
1661
|
* @readonly
|
|
1666
1662
|
* @type {boolean}
|
|
1667
1663
|
*/
|
|
1668
|
-
Signal.prototype.isSignal = true;
|
|
1669
|
-
|
|
1670
|
-
/**
|
|
1671
|
-
*
|
|
1672
|
-
* @param {Signal} signal
|
|
1673
|
-
* @param {function} h
|
|
1674
|
-
* @returns {boolean}
|
|
1675
|
-
*/
|
|
1676
|
-
function removeHandlerByHandler(signal, h) {
|
|
1677
|
-
const handlers = signal.handlers;
|
|
1678
|
-
let i = findSignalHandlerIndexByHandle(handlers, h);
|
|
1679
|
-
|
|
1680
|
-
if (i >= 0) {
|
|
1681
|
-
handlers.splice(i, 1);
|
|
1682
|
-
return true;
|
|
1683
|
-
}
|
|
1684
|
-
|
|
1685
|
-
return false;
|
|
1686
|
-
}
|
|
1687
|
-
|
|
1688
|
-
/**
|
|
1689
|
-
*
|
|
1690
|
-
* @param {Signal} signal
|
|
1691
|
-
* @param {function} h
|
|
1692
|
-
* @param {*} ctx
|
|
1693
|
-
* @returns {boolean}
|
|
1694
|
-
*/
|
|
1695
|
-
function removeHandlerByHandlerAndContext(signal, h, ctx) {
|
|
1696
|
-
const handlers = signal.handlers;
|
|
1697
|
-
const i = findSignalHandlerIndexByHandleAndContext(handlers, h, ctx);
|
|
1698
|
-
|
|
1699
|
-
if (i >= 0) {
|
|
1700
|
-
handlers.splice(i, 1);
|
|
1701
|
-
return true;
|
|
1702
|
-
}
|
|
1703
|
-
|
|
1704
|
-
return false;
|
|
1705
|
-
}
|
|
1664
|
+
Signal.prototype.isSignal = true;
|
|
1706
1665
|
|
|
1707
1666
|
/**
|
|
1708
1667
|
* Constrain a value to lie between specified min/max values
|
|
@@ -69810,7 +69769,6 @@ function frustum_from_camera(camera, result, update_projection = true) {
|
|
|
69810
69769
|
result.setFromProjectionMatrix(matrix4);
|
|
69811
69770
|
}
|
|
69812
69771
|
|
|
69813
|
-
const m4_scratch = new Matrix4();
|
|
69814
69772
|
const v3_scratch_0 = new Vector3$1();
|
|
69815
69773
|
const v3_scratch_1 = new Vector3$1();
|
|
69816
69774
|
|
|
@@ -69819,7 +69777,7 @@ const v3_scratch_1 = new Vector3$1();
|
|
|
69819
69777
|
* @param {Quaternion} output
|
|
69820
69778
|
* @param {Quaternion} input
|
|
69821
69779
|
*/
|
|
69822
|
-
function
|
|
69780
|
+
function quaternion_invert_orientation(output, input) {
|
|
69823
69781
|
const forward = v3_scratch_0;
|
|
69824
69782
|
const up = v3_scratch_1;
|
|
69825
69783
|
|
|
@@ -69829,9 +69787,12 @@ function invertQuaternionOrientation(output, input) {
|
|
|
69829
69787
|
forward.applyQuaternion(input);
|
|
69830
69788
|
up.applyQuaternion(input);
|
|
69831
69789
|
|
|
69832
|
-
|
|
69790
|
+
// point in the opposite direction
|
|
69791
|
+
forward.negate();
|
|
69833
69792
|
|
|
69834
|
-
output.
|
|
69793
|
+
output.lookRotation(
|
|
69794
|
+
forward, up
|
|
69795
|
+
);
|
|
69835
69796
|
}
|
|
69836
69797
|
|
|
69837
69798
|
//
|
|
@@ -69907,7 +69868,7 @@ class Camera {
|
|
|
69907
69868
|
* @param {Quaternion} input
|
|
69908
69869
|
*/
|
|
69909
69870
|
getReciprocalRotation(output, input) {
|
|
69910
|
-
|
|
69871
|
+
quaternion_invert_orientation(output, input);
|
|
69911
69872
|
}
|
|
69912
69873
|
|
|
69913
69874
|
get clip_far() {
|
|
@@ -70186,6 +70147,8 @@ function update_camera_transform(camera) {
|
|
|
70186
70147
|
threeUpdateTransform(three_camera);
|
|
70187
70148
|
}
|
|
70188
70149
|
|
|
70150
|
+
const scratch_quat = new Quaternion$1();
|
|
70151
|
+
|
|
70189
70152
|
/**
|
|
70190
70153
|
*
|
|
70191
70154
|
* @param {THREE.Camera} object
|
|
@@ -70198,7 +70161,11 @@ function three_camera_set_transform_rotation(object, rotation) {
|
|
|
70198
70161
|
See: https://github.com/mrdoob/three.js/blob/412b99a7f26e117ea97f40eb53d010ab81aa3279/src/core/Object3D.js#L282
|
|
70199
70162
|
*/
|
|
70200
70163
|
|
|
70201
|
-
|
|
70164
|
+
quaternion_invert_orientation(scratch_quat, rotation);
|
|
70165
|
+
|
|
70166
|
+
object.quaternion.set(
|
|
70167
|
+
scratch_quat.x, scratch_quat.y, scratch_quat.z, scratch_quat.w
|
|
70168
|
+
);
|
|
70202
70169
|
|
|
70203
70170
|
object.rotation.setFromQuaternion(object.quaternion);
|
|
70204
70171
|
|
|
@@ -93739,6 +93706,55 @@ function promiseTask(promise, name) {
|
|
|
93739
93706
|
});
|
|
93740
93707
|
}
|
|
93741
93708
|
|
|
93709
|
+
/**
|
|
93710
|
+
*
|
|
93711
|
+
* @param {SignalHandler[]} handlers
|
|
93712
|
+
* @param {function} f
|
|
93713
|
+
* @param {*} [thisArg]
|
|
93714
|
+
* @returns {number} index of the handler, or -1 if not found
|
|
93715
|
+
*/
|
|
93716
|
+
function findSignalHandlerIndexByHandle(handlers, f, thisArg) {
|
|
93717
|
+
const l = handlers.length;
|
|
93718
|
+
|
|
93719
|
+
for (let i = 0; i < l; i++) {
|
|
93720
|
+
const signalHandler = handlers[i];
|
|
93721
|
+
|
|
93722
|
+
if (signalHandler.handle === f) {
|
|
93723
|
+
|
|
93724
|
+
if (thisArg !== undefined && thisArg !== signalHandler.context) {
|
|
93725
|
+
//context variable doesn't match
|
|
93726
|
+
continue;
|
|
93727
|
+
}
|
|
93728
|
+
|
|
93729
|
+
return i;
|
|
93730
|
+
}
|
|
93731
|
+
}
|
|
93732
|
+
|
|
93733
|
+
return -1;
|
|
93734
|
+
}
|
|
93735
|
+
|
|
93736
|
+
/**
|
|
93737
|
+
*
|
|
93738
|
+
* @param {SignalHandler[]} handlers
|
|
93739
|
+
* @param {function} f
|
|
93740
|
+
* @param {*} ctx
|
|
93741
|
+
* @returns {number} index of the handler, or -1 if not found
|
|
93742
|
+
*/
|
|
93743
|
+
function findSignalHandlerIndexByHandleAndContext(handlers, f, ctx) {
|
|
93744
|
+
const l = handlers.length;
|
|
93745
|
+
|
|
93746
|
+
for (let i = 0; i < l; i++) {
|
|
93747
|
+
const handler = handlers[i];
|
|
93748
|
+
|
|
93749
|
+
if (handler.handle === f && handler.context === ctx) {
|
|
93750
|
+
return i;
|
|
93751
|
+
}
|
|
93752
|
+
|
|
93753
|
+
}
|
|
93754
|
+
|
|
93755
|
+
return -1;
|
|
93756
|
+
}
|
|
93757
|
+
|
|
93742
93758
|
/**
|
|
93743
93759
|
* Matches a supplies component mask against a larger set
|
|
93744
93760
|
* @param {BitSet} componentOccupancy
|
|
@@ -96843,6 +96859,62 @@ class SoundEngine {
|
|
|
96843
96859
|
}
|
|
96844
96860
|
}
|
|
96845
96861
|
|
|
96862
|
+
/**
|
|
96863
|
+
* Common dispatch stack
|
|
96864
|
+
* @readonly
|
|
96865
|
+
* @type {SignalHandler[]}
|
|
96866
|
+
*/
|
|
96867
|
+
const dispatch_stack = [];
|
|
96868
|
+
let dispatch_stack_top = 0;
|
|
96869
|
+
|
|
96870
|
+
/**
|
|
96871
|
+
*
|
|
96872
|
+
* @param {function} f
|
|
96873
|
+
* @param {*} context
|
|
96874
|
+
* @param {Array} args
|
|
96875
|
+
*/
|
|
96876
|
+
function dispatchCallback(f, context, args) {
|
|
96877
|
+
|
|
96878
|
+
try {
|
|
96879
|
+
f.apply(context, args);
|
|
96880
|
+
} catch (e) {
|
|
96881
|
+
}
|
|
96882
|
+
}
|
|
96883
|
+
|
|
96884
|
+
/**
|
|
96885
|
+
*
|
|
96886
|
+
* @param {SignalHandler[]} handlers
|
|
96887
|
+
* @param {Array} [args]
|
|
96888
|
+
*/
|
|
96889
|
+
function dispatchViaProxy(handlers, args) {
|
|
96890
|
+
const length = handlers.length;
|
|
96891
|
+
|
|
96892
|
+
const stack_pointer = dispatch_stack_top;
|
|
96893
|
+
const stack_frame_end = stack_pointer + length;
|
|
96894
|
+
dispatch_stack_top = stack_frame_end;
|
|
96895
|
+
|
|
96896
|
+
let i, h;
|
|
96897
|
+
for (i = 0; i < length; i++) {
|
|
96898
|
+
//copy to proxy
|
|
96899
|
+
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
96900
|
+
}
|
|
96901
|
+
|
|
96902
|
+
for (i = stack_frame_end - 1; i >= stack_pointer; i--) {
|
|
96903
|
+
h = dispatch_stack[i];
|
|
96904
|
+
|
|
96905
|
+
if (h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
96906
|
+
//handler should be cut
|
|
96907
|
+
const p = handlers.indexOf(h);
|
|
96908
|
+
handlers.splice(p, 1);
|
|
96909
|
+
}
|
|
96910
|
+
|
|
96911
|
+
dispatchCallback(h.handle, h.context, args);
|
|
96912
|
+
}
|
|
96913
|
+
|
|
96914
|
+
//drop stack frame
|
|
96915
|
+
dispatch_stack_top = stack_pointer;
|
|
96916
|
+
}
|
|
96917
|
+
|
|
96846
96918
|
class SimpleStateMachineDescription {
|
|
96847
96919
|
constructor() {
|
|
96848
96920
|
this.__states = new BitSet();
|