@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.module.js
CHANGED
|
@@ -897,6 +897,36 @@ function m4_multiply(out, a, b) {
|
|
|
897
897
|
out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
898
898
|
}
|
|
899
899
|
|
|
900
|
+
/**
|
|
901
|
+
*
|
|
902
|
+
* @param {SignalHandler} first
|
|
903
|
+
* @param {function} handle
|
|
904
|
+
* @param {*} [thisArg]
|
|
905
|
+
*/
|
|
906
|
+
function signal_handler_list_find(first, handle, thisArg) {
|
|
907
|
+
let n = first;
|
|
908
|
+
|
|
909
|
+
for (; ;) {
|
|
910
|
+
|
|
911
|
+
if (n.handle === handle && n.context === thisArg) {
|
|
912
|
+
return n;
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
n = n.next;
|
|
916
|
+
|
|
917
|
+
if (n === null) {
|
|
918
|
+
return null;
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
const SignalFlags = {
|
|
924
|
+
/**
|
|
925
|
+
* If set - signal will not invoke handlers when dispatched
|
|
926
|
+
*/
|
|
927
|
+
Silent: 1
|
|
928
|
+
};
|
|
929
|
+
|
|
900
930
|
/**
|
|
901
931
|
*
|
|
902
932
|
* @enum {number}
|
|
@@ -909,6 +939,18 @@ const SignalHandlerFlags = {
|
|
|
909
939
|
};
|
|
910
940
|
|
|
911
941
|
class SignalHandler {
|
|
942
|
+
/**
|
|
943
|
+
* Optional field. Used for forming linked lists of handlers
|
|
944
|
+
* @type {SignalHandler|null}
|
|
945
|
+
*/
|
|
946
|
+
next = null;
|
|
947
|
+
|
|
948
|
+
/**
|
|
949
|
+
* @private
|
|
950
|
+
* @type {number|SignalHandlerFlags}
|
|
951
|
+
*/
|
|
952
|
+
flags = 0;
|
|
953
|
+
|
|
912
954
|
/**
|
|
913
955
|
*
|
|
914
956
|
* @param {function} handle
|
|
@@ -916,15 +958,9 @@ class SignalHandler {
|
|
|
916
958
|
*/
|
|
917
959
|
constructor(handle, context) {
|
|
918
960
|
|
|
919
|
-
|
|
920
961
|
this.handle = handle;
|
|
921
962
|
this.context = context;
|
|
922
963
|
|
|
923
|
-
/**
|
|
924
|
-
* @private
|
|
925
|
-
* @type {number|SignalHandlerFlags}
|
|
926
|
-
*/
|
|
927
|
-
this.flags = 0;
|
|
928
964
|
}
|
|
929
965
|
|
|
930
966
|
/**
|
|
@@ -975,126 +1011,6 @@ class SignalHandler {
|
|
|
975
1011
|
*/
|
|
976
1012
|
SignalHandler.prototype.isSignalHandler = true;
|
|
977
1013
|
|
|
978
|
-
/**
|
|
979
|
-
* Common dispatch stack
|
|
980
|
-
* @readonly
|
|
981
|
-
* @type {SignalHandler[]}
|
|
982
|
-
*/
|
|
983
|
-
const dispatch_stack$1 = [];
|
|
984
|
-
let dispatch_stack_top$1 = 0;
|
|
985
|
-
|
|
986
|
-
/**
|
|
987
|
-
*
|
|
988
|
-
* @param {function} f
|
|
989
|
-
* @param {*} context
|
|
990
|
-
* @param {Array} args
|
|
991
|
-
*/
|
|
992
|
-
function dispatchCallback(f, context, args) {
|
|
993
|
-
|
|
994
|
-
try {
|
|
995
|
-
f.apply(context, args);
|
|
996
|
-
} catch (e) {
|
|
997
|
-
}
|
|
998
|
-
}
|
|
999
|
-
|
|
1000
|
-
/**
|
|
1001
|
-
*
|
|
1002
|
-
* @param {SignalHandler[]} handlers
|
|
1003
|
-
* @param {Array} [args]
|
|
1004
|
-
*/
|
|
1005
|
-
function dispatchViaProxy(handlers, args) {
|
|
1006
|
-
const length = handlers.length;
|
|
1007
|
-
|
|
1008
|
-
const stack_pointer = dispatch_stack_top$1;
|
|
1009
|
-
const stack_frame_end = stack_pointer + length;
|
|
1010
|
-
dispatch_stack_top$1 = stack_frame_end;
|
|
1011
|
-
|
|
1012
|
-
let i, h;
|
|
1013
|
-
for (i = 0; i < length; i++) {
|
|
1014
|
-
//copy to proxy
|
|
1015
|
-
dispatch_stack$1[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1016
|
-
}
|
|
1017
|
-
|
|
1018
|
-
for (i = stack_frame_end - 1; i >= stack_pointer; i--) {
|
|
1019
|
-
h = dispatch_stack$1[i];
|
|
1020
|
-
|
|
1021
|
-
if (h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1022
|
-
//handler should be cut
|
|
1023
|
-
const p = handlers.indexOf(h);
|
|
1024
|
-
handlers.splice(p, 1);
|
|
1025
|
-
}
|
|
1026
|
-
|
|
1027
|
-
dispatchCallback(h.handle, h.context, args);
|
|
1028
|
-
}
|
|
1029
|
-
|
|
1030
|
-
//drop stack frame
|
|
1031
|
-
dispatch_stack_top$1 = stack_pointer;
|
|
1032
|
-
}
|
|
1033
|
-
|
|
1034
|
-
/**
|
|
1035
|
-
*
|
|
1036
|
-
* @param {SignalHandler[]} handlers
|
|
1037
|
-
* @param {function} f
|
|
1038
|
-
* @param {*} [thisArg]
|
|
1039
|
-
* @returns {number} index of the handler, or -1 if not found
|
|
1040
|
-
*/
|
|
1041
|
-
function findSignalHandlerIndexByHandle(handlers, f, thisArg) {
|
|
1042
|
-
const l = handlers.length;
|
|
1043
|
-
|
|
1044
|
-
for (let i = 0; i < l; i++) {
|
|
1045
|
-
const signalHandler = handlers[i];
|
|
1046
|
-
|
|
1047
|
-
if (signalHandler.handle === f) {
|
|
1048
|
-
|
|
1049
|
-
if (thisArg !== undefined && thisArg !== signalHandler.context) {
|
|
1050
|
-
//context variable doesn't match
|
|
1051
|
-
continue;
|
|
1052
|
-
}
|
|
1053
|
-
|
|
1054
|
-
return i;
|
|
1055
|
-
}
|
|
1056
|
-
}
|
|
1057
|
-
|
|
1058
|
-
return -1;
|
|
1059
|
-
}
|
|
1060
|
-
|
|
1061
|
-
/**
|
|
1062
|
-
*
|
|
1063
|
-
* @param {SignalHandler[]} handlers
|
|
1064
|
-
* @param {function} f
|
|
1065
|
-
* @param {*} ctx
|
|
1066
|
-
* @returns {number} index of the handler, or -1 if not found
|
|
1067
|
-
*/
|
|
1068
|
-
function findSignalHandlerIndexByHandleAndContext(handlers, f, ctx) {
|
|
1069
|
-
const l = handlers.length;
|
|
1070
|
-
|
|
1071
|
-
for (let i = 0; i < l; i++) {
|
|
1072
|
-
const handler = handlers[i];
|
|
1073
|
-
|
|
1074
|
-
if (handler.handle === f && handler.context === ctx) {
|
|
1075
|
-
return i;
|
|
1076
|
-
}
|
|
1077
|
-
|
|
1078
|
-
}
|
|
1079
|
-
|
|
1080
|
-
return -1;
|
|
1081
|
-
}
|
|
1082
|
-
|
|
1083
|
-
const SignalFlags = {
|
|
1084
|
-
/**
|
|
1085
|
-
* If set - signal will not invoke handlers when dispatched
|
|
1086
|
-
*/
|
|
1087
|
-
Silent: 1
|
|
1088
|
-
};
|
|
1089
|
-
|
|
1090
|
-
/**
|
|
1091
|
-
* Common dispatch stack
|
|
1092
|
-
* @readonly
|
|
1093
|
-
* @type {SignalHandler[]}
|
|
1094
|
-
*/
|
|
1095
|
-
const dispatch_stack = [];
|
|
1096
|
-
let dispatch_stack_top = 0;
|
|
1097
|
-
|
|
1098
1014
|
/**
|
|
1099
1015
|
* 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
|
|
1100
1016
|
* 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.
|
|
@@ -1102,10 +1018,11 @@ let dispatch_stack_top = 0;
|
|
|
1102
1018
|
*/
|
|
1103
1019
|
class Signal {
|
|
1104
1020
|
/**
|
|
1021
|
+
* Map is used to speed up lookup when removing handlers in case of large number of listeners.
|
|
1105
1022
|
* @private
|
|
1106
|
-
* @type {SignalHandler
|
|
1023
|
+
* @type {Map<function,SignalHandler>}
|
|
1107
1024
|
*/
|
|
1108
|
-
handlers =
|
|
1025
|
+
handlers = new Map();
|
|
1109
1026
|
|
|
1110
1027
|
/**
|
|
1111
1028
|
* Internal flag bitmask
|
|
@@ -1182,9 +1099,15 @@ class Signal {
|
|
|
1182
1099
|
contains(handler, thisArg) {
|
|
1183
1100
|
const handlers = this.handlers;
|
|
1184
1101
|
|
|
1185
|
-
const
|
|
1102
|
+
const sh = handlers.get(handler);
|
|
1186
1103
|
|
|
1187
|
-
|
|
1104
|
+
if (sh === undefined) {
|
|
1105
|
+
return false;
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
const existing = signal_handler_list_find(sh, handler, thisArg);
|
|
1109
|
+
|
|
1110
|
+
return existing !== null;
|
|
1188
1111
|
}
|
|
1189
1112
|
|
|
1190
1113
|
mute() {
|
|
@@ -1200,7 +1123,7 @@ class Signal {
|
|
|
1200
1123
|
* @returns {boolean}
|
|
1201
1124
|
*/
|
|
1202
1125
|
hasHandlers() {
|
|
1203
|
-
return this.handlers.
|
|
1126
|
+
return this.handlers.size > 0;
|
|
1204
1127
|
}
|
|
1205
1128
|
|
|
1206
1129
|
/**
|
|
@@ -1214,7 +1137,7 @@ class Signal {
|
|
|
1214
1137
|
|
|
1215
1138
|
handler.setFlag(SignalHandlerFlags.RemoveAfterExecution);
|
|
1216
1139
|
|
|
1217
|
-
this
|
|
1140
|
+
this.#add_handler(handler);
|
|
1218
1141
|
}
|
|
1219
1142
|
|
|
1220
1143
|
/**
|
|
@@ -1224,15 +1147,36 @@ class Signal {
|
|
|
1224
1147
|
*/
|
|
1225
1148
|
add(h, context) {
|
|
1226
1149
|
|
|
1227
|
-
// if (!ENV_PRODUCTION) {
|
|
1228
|
-
// if (this.handlers.length + 1 === 100) {
|
|
1229
|
-
// console.error(`Number of handlers has is 100 now, possible leak detected`);
|
|
1230
|
-
// }
|
|
1231
|
-
// }
|
|
1232
|
-
|
|
1233
1150
|
const handler = new SignalHandler(h, context);
|
|
1234
1151
|
|
|
1235
|
-
this
|
|
1152
|
+
this.#add_handler(handler);
|
|
1153
|
+
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
/**
|
|
1157
|
+
*
|
|
1158
|
+
* @param {SignalHandler} handler
|
|
1159
|
+
*/
|
|
1160
|
+
#add_handler(handler) {
|
|
1161
|
+
|
|
1162
|
+
const f = handler.handle;
|
|
1163
|
+
const first = this.handlers.get(f);
|
|
1164
|
+
|
|
1165
|
+
if (first === undefined) {
|
|
1166
|
+
this.handlers.set(f, handler);
|
|
1167
|
+
} else {
|
|
1168
|
+
|
|
1169
|
+
handler.next = first;
|
|
1170
|
+
this.handlers.set(f,handler);
|
|
1171
|
+
|
|
1172
|
+
// const last = signal_handler_list_last(first);
|
|
1173
|
+
|
|
1174
|
+
// last.next = handler;
|
|
1175
|
+
|
|
1176
|
+
// assert.ok(signal_handler_list_validate(first, console.error), 'invalid configuration');
|
|
1177
|
+
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1236
1180
|
}
|
|
1237
1181
|
|
|
1238
1182
|
/**
|
|
@@ -1243,11 +1187,44 @@ class Signal {
|
|
|
1243
1187
|
*/
|
|
1244
1188
|
remove(h, thisArg) {
|
|
1245
1189
|
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
return
|
|
1190
|
+
const first = this.handlers.get(h);
|
|
1191
|
+
|
|
1192
|
+
if (first === undefined) {
|
|
1193
|
+
return false;
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
if (first.handle === h && first.context === thisArg) {
|
|
1197
|
+
if (first.next === null) {
|
|
1198
|
+
this.handlers.delete(h);
|
|
1199
|
+
} else {
|
|
1200
|
+
this.handlers.set(h, first.next);
|
|
1201
|
+
// assert.ok(signal_handler_list_validate(first.next, console.error), 'invalid configuration');
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
return true;
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1207
|
+
let previous = first;
|
|
1208
|
+
let n = first.next;
|
|
1209
|
+
|
|
1210
|
+
while (n !== null) {
|
|
1211
|
+
|
|
1212
|
+
if (n.handle === h && n.context === thisArg) {
|
|
1213
|
+
|
|
1214
|
+
previous.next = n.next;
|
|
1215
|
+
|
|
1216
|
+
// assert.ok(signal_handler_list_validate(first, console.error), 'invalid configuration');
|
|
1217
|
+
|
|
1218
|
+
return true;
|
|
1219
|
+
|
|
1220
|
+
}
|
|
1221
|
+
|
|
1222
|
+
previous = n;
|
|
1223
|
+
n = n.next;
|
|
1224
|
+
|
|
1250
1225
|
}
|
|
1226
|
+
|
|
1227
|
+
return false;
|
|
1251
1228
|
}
|
|
1252
1229
|
|
|
1253
1230
|
/**
|
|
@@ -1258,8 +1235,58 @@ class Signal {
|
|
|
1258
1235
|
* @deprecated
|
|
1259
1236
|
*/
|
|
1260
1237
|
removeAll() {
|
|
1261
|
-
|
|
1262
|
-
|
|
1238
|
+
this.handlers.clear();
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
/**
|
|
1242
|
+
*
|
|
1243
|
+
* @param {SignalHandler} handler
|
|
1244
|
+
*/
|
|
1245
|
+
#remove_handler_internal(handler) {
|
|
1246
|
+
|
|
1247
|
+
const first = this.handlers.get(handler.handle);
|
|
1248
|
+
|
|
1249
|
+
if (first === undefined) {
|
|
1250
|
+
// nothing
|
|
1251
|
+
return false;
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
// special case for first
|
|
1255
|
+
if (first === handler) {
|
|
1256
|
+
|
|
1257
|
+
if (first.next === null) {
|
|
1258
|
+
// was the only one
|
|
1259
|
+
this.handlers.delete(handler.handle);
|
|
1260
|
+
} else {
|
|
1261
|
+
this.handlers.set(handler.handle, first.next);
|
|
1262
|
+
// assert.ok(signal_handler_list_validate(first.next, console.error), 'invalid configuration');
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
return true;
|
|
1266
|
+
}
|
|
1267
|
+
|
|
1268
|
+
let previous = first;
|
|
1269
|
+
let n = first.next;
|
|
1270
|
+
|
|
1271
|
+
while (n !== null) {
|
|
1272
|
+
|
|
1273
|
+
const next = n.next;
|
|
1274
|
+
|
|
1275
|
+
if (n === handler) {
|
|
1276
|
+
previous.next = next;
|
|
1277
|
+
|
|
1278
|
+
// assert.ok(signal_handler_list_validate(first, console.error), 'invalid configuration');
|
|
1279
|
+
|
|
1280
|
+
return true;
|
|
1281
|
+
}
|
|
1282
|
+
|
|
1283
|
+
previous = n;
|
|
1284
|
+
n = next;
|
|
1285
|
+
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
// not found
|
|
1289
|
+
return false;
|
|
1263
1290
|
}
|
|
1264
1291
|
|
|
1265
1292
|
/**
|
|
@@ -1272,10 +1299,38 @@ class Signal {
|
|
|
1272
1299
|
return;
|
|
1273
1300
|
}
|
|
1274
1301
|
|
|
1275
|
-
|
|
1302
|
+
const handlers = this.handlers;
|
|
1303
|
+
|
|
1304
|
+
for (const handle of handlers.values()) {
|
|
1305
|
+
|
|
1306
|
+
let _h = handle;
|
|
1307
|
+
|
|
1308
|
+
do {
|
|
1309
|
+
|
|
1310
|
+
const next = _h.next;
|
|
1311
|
+
|
|
1312
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1313
|
+
//handler should be cut
|
|
1314
|
+
this.#remove_handler_internal(_h);
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
const _f = _h.handle;
|
|
1318
|
+
|
|
1319
|
+
try {
|
|
1320
|
+
_f.apply(_h.context, args);
|
|
1321
|
+
} catch (e) {
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
_h = next;
|
|
1325
|
+
|
|
1326
|
+
} while (_h !== null);
|
|
1327
|
+
|
|
1328
|
+
|
|
1329
|
+
}
|
|
1276
1330
|
|
|
1277
1331
|
}
|
|
1278
1332
|
|
|
1333
|
+
|
|
1279
1334
|
/**
|
|
1280
1335
|
* dispatch without a value.
|
|
1281
1336
|
* Allows JS engine to optimize for monomorphic call sites
|
|
@@ -1288,41 +1343,33 @@ class Signal {
|
|
|
1288
1343
|
|
|
1289
1344
|
const handlers = this.handlers;
|
|
1290
1345
|
|
|
1291
|
-
const
|
|
1346
|
+
for (const handle of handlers.values()) {
|
|
1292
1347
|
|
|
1293
|
-
|
|
1294
|
-
const stack_frame_end = stack_pointer + length;
|
|
1295
|
-
dispatch_stack_top = stack_frame_end;
|
|
1348
|
+
let _h = handle;
|
|
1296
1349
|
|
|
1297
|
-
|
|
1350
|
+
do {
|
|
1298
1351
|
|
|
1299
|
-
|
|
1300
|
-
for (i = 0; i < length; i++) {
|
|
1301
|
-
//copy to proxy
|
|
1302
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1303
|
-
}
|
|
1352
|
+
const next = _h.next;
|
|
1304
1353
|
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1354
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1355
|
+
//handler should be cut
|
|
1356
|
+
this.#remove_handler_internal(_h);
|
|
1357
|
+
}
|
|
1308
1358
|
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1359
|
+
const _f = _h.handle;
|
|
1360
|
+
|
|
1361
|
+
try {
|
|
1362
|
+
_f.call(_h.context);
|
|
1363
|
+
} catch (e) {
|
|
1364
|
+
}
|
|
1314
1365
|
|
|
1315
|
-
|
|
1366
|
+
_h = next;
|
|
1367
|
+
|
|
1368
|
+
} while (_h !== null);
|
|
1316
1369
|
|
|
1317
|
-
try {
|
|
1318
|
-
f.call(h.context);
|
|
1319
|
-
} catch (e) {
|
|
1320
|
-
}
|
|
1321
1370
|
|
|
1322
1371
|
}
|
|
1323
1372
|
|
|
1324
|
-
//drop stack frame
|
|
1325
|
-
dispatch_stack_top = stack_pointer;
|
|
1326
1373
|
}
|
|
1327
1374
|
|
|
1328
1375
|
/**
|
|
@@ -1338,42 +1385,33 @@ class Signal {
|
|
|
1338
1385
|
|
|
1339
1386
|
const handlers = this.handlers;
|
|
1340
1387
|
|
|
1341
|
-
const
|
|
1388
|
+
for (const handle of handlers.values()) {
|
|
1342
1389
|
|
|
1343
|
-
|
|
1344
|
-
const stack_frame_end = stack_pointer + length;
|
|
1345
|
-
dispatch_stack_top = stack_frame_end;
|
|
1390
|
+
let _h = handle;
|
|
1346
1391
|
|
|
1392
|
+
do {
|
|
1347
1393
|
|
|
1348
|
-
|
|
1394
|
+
const next = _h.next;
|
|
1349
1395
|
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
}
|
|
1396
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1397
|
+
//handler should be cut
|
|
1398
|
+
this.#remove_handler_internal(_h);
|
|
1399
|
+
}
|
|
1355
1400
|
|
|
1356
|
-
|
|
1357
|
-
for (i = stack_frame_end - 1; i >= stack_pointer; i--) {
|
|
1358
|
-
h = dispatch_stack[i];
|
|
1401
|
+
const _f = _h.handle;
|
|
1359
1402
|
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
}
|
|
1403
|
+
try {
|
|
1404
|
+
_f.call(_h.context, arg);
|
|
1405
|
+
} catch (e) {
|
|
1406
|
+
}
|
|
1365
1407
|
|
|
1366
|
-
|
|
1408
|
+
_h = next;
|
|
1409
|
+
|
|
1410
|
+
} while (_h !== null);
|
|
1367
1411
|
|
|
1368
|
-
try {
|
|
1369
|
-
f.call(h.context, arg);
|
|
1370
|
-
} catch (e) {
|
|
1371
|
-
}
|
|
1372
1412
|
|
|
1373
1413
|
}
|
|
1374
1414
|
|
|
1375
|
-
//drop stack frame
|
|
1376
|
-
dispatch_stack_top = stack_pointer;
|
|
1377
1415
|
}
|
|
1378
1416
|
|
|
1379
1417
|
/**
|
|
@@ -1389,41 +1427,32 @@ class Signal {
|
|
|
1389
1427
|
|
|
1390
1428
|
const handlers = this.handlers;
|
|
1391
1429
|
|
|
1392
|
-
const
|
|
1430
|
+
for (const handle of handlers.values()) {
|
|
1393
1431
|
|
|
1394
|
-
|
|
1395
|
-
const stack_frame_end = stack_pointer + length;
|
|
1396
|
-
dispatch_stack_top = stack_frame_end;
|
|
1432
|
+
let _h = handle;
|
|
1397
1433
|
|
|
1398
|
-
|
|
1434
|
+
do {
|
|
1399
1435
|
|
|
1400
|
-
|
|
1401
|
-
for (i = 0; i < length; i++) {
|
|
1402
|
-
//copy to proxy
|
|
1403
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1404
|
-
}
|
|
1436
|
+
const next = _h.next;
|
|
1405
1437
|
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1438
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1439
|
+
//handler should be cut
|
|
1440
|
+
this.#remove_handler_internal(_h);
|
|
1441
|
+
}
|
|
1409
1442
|
|
|
1410
|
-
|
|
1411
|
-
//handler should be cut
|
|
1412
|
-
const p = handlers.indexOf(h);
|
|
1413
|
-
handlers.splice(p, 1);
|
|
1414
|
-
}
|
|
1443
|
+
const _f = _h.handle;
|
|
1415
1444
|
|
|
1416
|
-
|
|
1445
|
+
try {
|
|
1446
|
+
_f.call(_h.context, a, b);
|
|
1447
|
+
} catch (e) {
|
|
1448
|
+
}
|
|
1417
1449
|
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
}
|
|
1421
|
-
}
|
|
1450
|
+
_h = next;
|
|
1451
|
+
|
|
1452
|
+
} while (_h !== null);
|
|
1422
1453
|
|
|
1423
|
-
}
|
|
1424
1454
|
|
|
1425
|
-
|
|
1426
|
-
dispatch_stack_top = stack_pointer;
|
|
1455
|
+
}
|
|
1427
1456
|
}
|
|
1428
1457
|
|
|
1429
1458
|
/**
|
|
@@ -1438,43 +1467,35 @@ class Signal {
|
|
|
1438
1467
|
return;
|
|
1439
1468
|
}
|
|
1440
1469
|
|
|
1470
|
+
|
|
1441
1471
|
const handlers = this.handlers;
|
|
1442
1472
|
|
|
1443
|
-
const
|
|
1473
|
+
for (const handle of handlers.values()) {
|
|
1444
1474
|
|
|
1445
|
-
|
|
1446
|
-
const stack_frame_end = stack_pointer + length;
|
|
1447
|
-
dispatch_stack_top = stack_frame_end;
|
|
1475
|
+
let _h = handle;
|
|
1448
1476
|
|
|
1449
|
-
|
|
1477
|
+
do {
|
|
1450
1478
|
|
|
1451
|
-
|
|
1452
|
-
for (i = 0; i < length; i++) {
|
|
1453
|
-
//copy to proxy
|
|
1454
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1455
|
-
}
|
|
1479
|
+
const next = _h.next;
|
|
1456
1480
|
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1481
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1482
|
+
//handler should be cut
|
|
1483
|
+
this.#remove_handler_internal(_h);
|
|
1484
|
+
}
|
|
1460
1485
|
|
|
1461
|
-
|
|
1462
|
-
//handler should be cut
|
|
1463
|
-
const p = handlers.indexOf(h);
|
|
1464
|
-
handlers.splice(p, 1);
|
|
1465
|
-
}
|
|
1486
|
+
const _f = _h.handle;
|
|
1466
1487
|
|
|
1467
|
-
|
|
1488
|
+
try {
|
|
1489
|
+
_f.call(_h.context, a, b, c);
|
|
1490
|
+
} catch (e) {
|
|
1491
|
+
}
|
|
1468
1492
|
|
|
1469
|
-
|
|
1470
|
-
f.call(h.context, a, b, c);
|
|
1471
|
-
} catch (e) {
|
|
1472
|
-
}
|
|
1493
|
+
_h = next;
|
|
1473
1494
|
|
|
1474
|
-
|
|
1495
|
+
} while (_h !== null);
|
|
1475
1496
|
|
|
1476
|
-
|
|
1477
|
-
|
|
1497
|
+
|
|
1498
|
+
}
|
|
1478
1499
|
}
|
|
1479
1500
|
|
|
1480
1501
|
/**
|
|
@@ -1490,43 +1511,35 @@ class Signal {
|
|
|
1490
1511
|
return;
|
|
1491
1512
|
}
|
|
1492
1513
|
|
|
1514
|
+
|
|
1493
1515
|
const handlers = this.handlers;
|
|
1494
1516
|
|
|
1495
|
-
const
|
|
1517
|
+
for (const handle of handlers.values()) {
|
|
1496
1518
|
|
|
1497
|
-
|
|
1498
|
-
const stack_frame_end = stack_pointer + length;
|
|
1499
|
-
dispatch_stack_top = stack_frame_end;
|
|
1519
|
+
let _h = handle;
|
|
1500
1520
|
|
|
1501
|
-
|
|
1521
|
+
do {
|
|
1502
1522
|
|
|
1503
|
-
|
|
1504
|
-
for (i = 0; i < length; i++) {
|
|
1505
|
-
//copy to proxy
|
|
1506
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1507
|
-
}
|
|
1523
|
+
const next = _h.next;
|
|
1508
1524
|
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1525
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1526
|
+
//handler should be cut
|
|
1527
|
+
this.#remove_handler_internal(_h);
|
|
1528
|
+
}
|
|
1512
1529
|
|
|
1513
|
-
|
|
1514
|
-
//handler should be cut
|
|
1515
|
-
const p = handlers.indexOf(h);
|
|
1516
|
-
handlers.splice(p, 1);
|
|
1517
|
-
}
|
|
1530
|
+
const _f = _h.handle;
|
|
1518
1531
|
|
|
1519
|
-
|
|
1532
|
+
try {
|
|
1533
|
+
_f.call(_h.context, a, b, c, d);
|
|
1534
|
+
} catch (e) {
|
|
1535
|
+
}
|
|
1520
1536
|
|
|
1521
|
-
|
|
1522
|
-
f.call(h.context, a, b, c, d);
|
|
1523
|
-
} catch (e) {
|
|
1524
|
-
}
|
|
1537
|
+
_h = next;
|
|
1525
1538
|
|
|
1526
|
-
|
|
1539
|
+
} while (_h !== null);
|
|
1527
1540
|
|
|
1528
|
-
|
|
1529
|
-
|
|
1541
|
+
|
|
1542
|
+
}
|
|
1530
1543
|
}
|
|
1531
1544
|
|
|
1532
1545
|
/**
|
|
@@ -1544,43 +1557,35 @@ class Signal {
|
|
|
1544
1557
|
return;
|
|
1545
1558
|
}
|
|
1546
1559
|
|
|
1560
|
+
|
|
1547
1561
|
const handlers = this.handlers;
|
|
1548
1562
|
|
|
1549
|
-
const
|
|
1563
|
+
for (const handle of handlers.values()) {
|
|
1550
1564
|
|
|
1551
|
-
|
|
1552
|
-
const stack_frame_end = stack_pointer + length;
|
|
1553
|
-
dispatch_stack_top = stack_frame_end;
|
|
1565
|
+
let _h = handle;
|
|
1554
1566
|
|
|
1555
|
-
|
|
1567
|
+
do {
|
|
1556
1568
|
|
|
1557
|
-
|
|
1558
|
-
for (i = 0; i < length; i++) {
|
|
1559
|
-
//copy to proxy
|
|
1560
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1561
|
-
}
|
|
1569
|
+
const next = _h.next;
|
|
1562
1570
|
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1571
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1572
|
+
//handler should be cut
|
|
1573
|
+
this.#remove_handler_internal(_h);
|
|
1574
|
+
}
|
|
1566
1575
|
|
|
1567
|
-
|
|
1568
|
-
//handler should be cut
|
|
1569
|
-
const p = handlers.indexOf(h);
|
|
1570
|
-
handlers.splice(p, 1);
|
|
1571
|
-
}
|
|
1576
|
+
const _f = _h.handle;
|
|
1572
1577
|
|
|
1573
|
-
|
|
1578
|
+
try {
|
|
1579
|
+
_f.call(_h.context, a, b, c, d, e, f);
|
|
1580
|
+
} catch (e) {
|
|
1581
|
+
}
|
|
1574
1582
|
|
|
1575
|
-
|
|
1576
|
-
handle.call(h.context, a, b, c, d, e, f);
|
|
1577
|
-
} catch (e) {
|
|
1578
|
-
}
|
|
1583
|
+
_h = next;
|
|
1579
1584
|
|
|
1580
|
-
|
|
1585
|
+
} while (_h !== null);
|
|
1581
1586
|
|
|
1582
|
-
|
|
1583
|
-
|
|
1587
|
+
|
|
1588
|
+
}
|
|
1584
1589
|
}
|
|
1585
1590
|
|
|
1586
1591
|
/**
|
|
@@ -1602,41 +1607,32 @@ class Signal {
|
|
|
1602
1607
|
|
|
1603
1608
|
const handlers = this.handlers;
|
|
1604
1609
|
|
|
1605
|
-
const
|
|
1610
|
+
for (const handle of handlers.values()) {
|
|
1606
1611
|
|
|
1607
|
-
|
|
1608
|
-
const stack_frame_end = stack_pointer + length;
|
|
1609
|
-
dispatch_stack_top = stack_frame_end;
|
|
1612
|
+
let _h = handle;
|
|
1610
1613
|
|
|
1611
|
-
|
|
1614
|
+
do {
|
|
1612
1615
|
|
|
1613
|
-
|
|
1614
|
-
for (i = 0; i < length; i++) {
|
|
1615
|
-
//copy to proxy
|
|
1616
|
-
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
1617
|
-
}
|
|
1616
|
+
const next = _h.next;
|
|
1618
1617
|
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1618
|
+
if (_h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
1619
|
+
//handler should be cut
|
|
1620
|
+
this.#remove_handler_internal(_h);
|
|
1621
|
+
}
|
|
1622
1622
|
|
|
1623
|
-
|
|
1624
|
-
//handler should be cut
|
|
1625
|
-
const p = handlers.indexOf(handler);
|
|
1626
|
-
handlers.splice(p, 1);
|
|
1627
|
-
}
|
|
1623
|
+
const _f = _h.handle;
|
|
1628
1624
|
|
|
1629
|
-
|
|
1625
|
+
try {
|
|
1626
|
+
_f.call(_h.context, a, b, c, d, e, f, g, h);
|
|
1627
|
+
} catch (e) {
|
|
1628
|
+
}
|
|
1630
1629
|
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
}
|
|
1634
|
-
}
|
|
1630
|
+
_h = next;
|
|
1631
|
+
|
|
1632
|
+
} while (_h !== null);
|
|
1635
1633
|
|
|
1636
|
-
}
|
|
1637
1634
|
|
|
1638
|
-
|
|
1639
|
-
dispatch_stack_top = stack_pointer;
|
|
1635
|
+
}
|
|
1640
1636
|
}
|
|
1641
1637
|
|
|
1642
1638
|
/**
|
|
@@ -1663,44 +1659,7 @@ class Signal {
|
|
|
1663
1659
|
* @readonly
|
|
1664
1660
|
* @type {boolean}
|
|
1665
1661
|
*/
|
|
1666
|
-
Signal.prototype.isSignal = true;
|
|
1667
|
-
|
|
1668
|
-
/**
|
|
1669
|
-
*
|
|
1670
|
-
* @param {Signal} signal
|
|
1671
|
-
* @param {function} h
|
|
1672
|
-
* @returns {boolean}
|
|
1673
|
-
*/
|
|
1674
|
-
function removeHandlerByHandler(signal, h) {
|
|
1675
|
-
const handlers = signal.handlers;
|
|
1676
|
-
let i = findSignalHandlerIndexByHandle(handlers, h);
|
|
1677
|
-
|
|
1678
|
-
if (i >= 0) {
|
|
1679
|
-
handlers.splice(i, 1);
|
|
1680
|
-
return true;
|
|
1681
|
-
}
|
|
1682
|
-
|
|
1683
|
-
return false;
|
|
1684
|
-
}
|
|
1685
|
-
|
|
1686
|
-
/**
|
|
1687
|
-
*
|
|
1688
|
-
* @param {Signal} signal
|
|
1689
|
-
* @param {function} h
|
|
1690
|
-
* @param {*} ctx
|
|
1691
|
-
* @returns {boolean}
|
|
1692
|
-
*/
|
|
1693
|
-
function removeHandlerByHandlerAndContext(signal, h, ctx) {
|
|
1694
|
-
const handlers = signal.handlers;
|
|
1695
|
-
const i = findSignalHandlerIndexByHandleAndContext(handlers, h, ctx);
|
|
1696
|
-
|
|
1697
|
-
if (i >= 0) {
|
|
1698
|
-
handlers.splice(i, 1);
|
|
1699
|
-
return true;
|
|
1700
|
-
}
|
|
1701
|
-
|
|
1702
|
-
return false;
|
|
1703
|
-
}
|
|
1662
|
+
Signal.prototype.isSignal = true;
|
|
1704
1663
|
|
|
1705
1664
|
/**
|
|
1706
1665
|
* Constrain a value to lie between specified min/max values
|
|
@@ -69808,7 +69767,6 @@ function frustum_from_camera(camera, result, update_projection = true) {
|
|
|
69808
69767
|
result.setFromProjectionMatrix(matrix4);
|
|
69809
69768
|
}
|
|
69810
69769
|
|
|
69811
|
-
const m4_scratch = new Matrix4();
|
|
69812
69770
|
const v3_scratch_0 = new Vector3$1();
|
|
69813
69771
|
const v3_scratch_1 = new Vector3$1();
|
|
69814
69772
|
|
|
@@ -69817,7 +69775,7 @@ const v3_scratch_1 = new Vector3$1();
|
|
|
69817
69775
|
* @param {Quaternion} output
|
|
69818
69776
|
* @param {Quaternion} input
|
|
69819
69777
|
*/
|
|
69820
|
-
function
|
|
69778
|
+
function quaternion_invert_orientation(output, input) {
|
|
69821
69779
|
const forward = v3_scratch_0;
|
|
69822
69780
|
const up = v3_scratch_1;
|
|
69823
69781
|
|
|
@@ -69827,9 +69785,12 @@ function invertQuaternionOrientation(output, input) {
|
|
|
69827
69785
|
forward.applyQuaternion(input);
|
|
69828
69786
|
up.applyQuaternion(input);
|
|
69829
69787
|
|
|
69830
|
-
|
|
69788
|
+
// point in the opposite direction
|
|
69789
|
+
forward.negate();
|
|
69831
69790
|
|
|
69832
|
-
output.
|
|
69791
|
+
output.lookRotation(
|
|
69792
|
+
forward, up
|
|
69793
|
+
);
|
|
69833
69794
|
}
|
|
69834
69795
|
|
|
69835
69796
|
//
|
|
@@ -69905,7 +69866,7 @@ class Camera {
|
|
|
69905
69866
|
* @param {Quaternion} input
|
|
69906
69867
|
*/
|
|
69907
69868
|
getReciprocalRotation(output, input) {
|
|
69908
|
-
|
|
69869
|
+
quaternion_invert_orientation(output, input);
|
|
69909
69870
|
}
|
|
69910
69871
|
|
|
69911
69872
|
get clip_far() {
|
|
@@ -70184,6 +70145,8 @@ function update_camera_transform(camera) {
|
|
|
70184
70145
|
threeUpdateTransform(three_camera);
|
|
70185
70146
|
}
|
|
70186
70147
|
|
|
70148
|
+
const scratch_quat = new Quaternion$1();
|
|
70149
|
+
|
|
70187
70150
|
/**
|
|
70188
70151
|
*
|
|
70189
70152
|
* @param {THREE.Camera} object
|
|
@@ -70196,7 +70159,11 @@ function three_camera_set_transform_rotation(object, rotation) {
|
|
|
70196
70159
|
See: https://github.com/mrdoob/three.js/blob/412b99a7f26e117ea97f40eb53d010ab81aa3279/src/core/Object3D.js#L282
|
|
70197
70160
|
*/
|
|
70198
70161
|
|
|
70199
|
-
|
|
70162
|
+
quaternion_invert_orientation(scratch_quat, rotation);
|
|
70163
|
+
|
|
70164
|
+
object.quaternion.set(
|
|
70165
|
+
scratch_quat.x, scratch_quat.y, scratch_quat.z, scratch_quat.w
|
|
70166
|
+
);
|
|
70200
70167
|
|
|
70201
70168
|
object.rotation.setFromQuaternion(object.quaternion);
|
|
70202
70169
|
|
|
@@ -93737,6 +93704,55 @@ function promiseTask(promise, name) {
|
|
|
93737
93704
|
});
|
|
93738
93705
|
}
|
|
93739
93706
|
|
|
93707
|
+
/**
|
|
93708
|
+
*
|
|
93709
|
+
* @param {SignalHandler[]} handlers
|
|
93710
|
+
* @param {function} f
|
|
93711
|
+
* @param {*} [thisArg]
|
|
93712
|
+
* @returns {number} index of the handler, or -1 if not found
|
|
93713
|
+
*/
|
|
93714
|
+
function findSignalHandlerIndexByHandle(handlers, f, thisArg) {
|
|
93715
|
+
const l = handlers.length;
|
|
93716
|
+
|
|
93717
|
+
for (let i = 0; i < l; i++) {
|
|
93718
|
+
const signalHandler = handlers[i];
|
|
93719
|
+
|
|
93720
|
+
if (signalHandler.handle === f) {
|
|
93721
|
+
|
|
93722
|
+
if (thisArg !== undefined && thisArg !== signalHandler.context) {
|
|
93723
|
+
//context variable doesn't match
|
|
93724
|
+
continue;
|
|
93725
|
+
}
|
|
93726
|
+
|
|
93727
|
+
return i;
|
|
93728
|
+
}
|
|
93729
|
+
}
|
|
93730
|
+
|
|
93731
|
+
return -1;
|
|
93732
|
+
}
|
|
93733
|
+
|
|
93734
|
+
/**
|
|
93735
|
+
*
|
|
93736
|
+
* @param {SignalHandler[]} handlers
|
|
93737
|
+
* @param {function} f
|
|
93738
|
+
* @param {*} ctx
|
|
93739
|
+
* @returns {number} index of the handler, or -1 if not found
|
|
93740
|
+
*/
|
|
93741
|
+
function findSignalHandlerIndexByHandleAndContext(handlers, f, ctx) {
|
|
93742
|
+
const l = handlers.length;
|
|
93743
|
+
|
|
93744
|
+
for (let i = 0; i < l; i++) {
|
|
93745
|
+
const handler = handlers[i];
|
|
93746
|
+
|
|
93747
|
+
if (handler.handle === f && handler.context === ctx) {
|
|
93748
|
+
return i;
|
|
93749
|
+
}
|
|
93750
|
+
|
|
93751
|
+
}
|
|
93752
|
+
|
|
93753
|
+
return -1;
|
|
93754
|
+
}
|
|
93755
|
+
|
|
93740
93756
|
/**
|
|
93741
93757
|
* Matches a supplies component mask against a larger set
|
|
93742
93758
|
* @param {BitSet} componentOccupancy
|
|
@@ -96841,6 +96857,62 @@ class SoundEngine {
|
|
|
96841
96857
|
}
|
|
96842
96858
|
}
|
|
96843
96859
|
|
|
96860
|
+
/**
|
|
96861
|
+
* Common dispatch stack
|
|
96862
|
+
* @readonly
|
|
96863
|
+
* @type {SignalHandler[]}
|
|
96864
|
+
*/
|
|
96865
|
+
const dispatch_stack = [];
|
|
96866
|
+
let dispatch_stack_top = 0;
|
|
96867
|
+
|
|
96868
|
+
/**
|
|
96869
|
+
*
|
|
96870
|
+
* @param {function} f
|
|
96871
|
+
* @param {*} context
|
|
96872
|
+
* @param {Array} args
|
|
96873
|
+
*/
|
|
96874
|
+
function dispatchCallback(f, context, args) {
|
|
96875
|
+
|
|
96876
|
+
try {
|
|
96877
|
+
f.apply(context, args);
|
|
96878
|
+
} catch (e) {
|
|
96879
|
+
}
|
|
96880
|
+
}
|
|
96881
|
+
|
|
96882
|
+
/**
|
|
96883
|
+
*
|
|
96884
|
+
* @param {SignalHandler[]} handlers
|
|
96885
|
+
* @param {Array} [args]
|
|
96886
|
+
*/
|
|
96887
|
+
function dispatchViaProxy(handlers, args) {
|
|
96888
|
+
const length = handlers.length;
|
|
96889
|
+
|
|
96890
|
+
const stack_pointer = dispatch_stack_top;
|
|
96891
|
+
const stack_frame_end = stack_pointer + length;
|
|
96892
|
+
dispatch_stack_top = stack_frame_end;
|
|
96893
|
+
|
|
96894
|
+
let i, h;
|
|
96895
|
+
for (i = 0; i < length; i++) {
|
|
96896
|
+
//copy to proxy
|
|
96897
|
+
dispatch_stack[stack_pointer + i] = handlers[length - (i + 1)];
|
|
96898
|
+
}
|
|
96899
|
+
|
|
96900
|
+
for (i = stack_frame_end - 1; i >= stack_pointer; i--) {
|
|
96901
|
+
h = dispatch_stack[i];
|
|
96902
|
+
|
|
96903
|
+
if (h.getFlag(SignalHandlerFlags.RemoveAfterExecution)) {
|
|
96904
|
+
//handler should be cut
|
|
96905
|
+
const p = handlers.indexOf(h);
|
|
96906
|
+
handlers.splice(p, 1);
|
|
96907
|
+
}
|
|
96908
|
+
|
|
96909
|
+
dispatchCallback(h.handle, h.context, args);
|
|
96910
|
+
}
|
|
96911
|
+
|
|
96912
|
+
//drop stack frame
|
|
96913
|
+
dispatch_stack_top = stack_pointer;
|
|
96914
|
+
}
|
|
96915
|
+
|
|
96844
96916
|
class SimpleStateMachineDescription {
|
|
96845
96917
|
constructor() {
|
|
96846
96918
|
this.__states = new BitSet();
|