@woosh/meep-engine 2.165.6 → 2.166.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bundle-worker-image-decoder.js +1 -1
- package/editor/tools/v2/GizmoNode.d.ts +21 -0
- package/editor/tools/v2/GizmoNode.d.ts.map +1 -0
- package/editor/tools/v2/TransformControls.d.ts +87 -20
- package/editor/tools/v2/TransformControls.d.ts.map +1 -0
- package/editor/tools/v2/TransformControlsGizmo.d.ts +22 -0
- package/editor/tools/v2/TransformControlsGizmo.d.ts.map +1 -0
- package/editor/tools/v2/TransformControlsPlane.d.ts +6 -0
- package/editor/tools/v2/TransformControlsPlane.d.ts.map +1 -0
- package/editor/tools/v2/TranslateHelperGeometry.d.ts +6 -0
- package/editor/tools/v2/TranslateHelperGeometry.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/CORRECTNESS_HUNT_2026_07_24.md +142 -0
- package/src/core/binary/BinaryBuffer.js +1 -1
- package/src/core/binary/EncodingBinaryBuffer.d.ts.map +1 -1
- package/src/core/binary/EncodingBinaryBuffer.js +3 -1
- package/src/core/binary/data_view/DataType2DataViewReaders.d.ts +8 -12
- package/src/core/binary/data_view/DataType2DataViewReaders.d.ts.map +1 -1
- package/src/core/binary/data_view/DataType2DataViewWriters.d.ts +8 -12
- package/src/core/binary/data_view/DataType2DataViewWriters.d.ts.map +1 -1
- package/src/core/binary/data_view/DataViewStructAccessor.d.ts +39 -18
- package/src/core/binary/type/BinaryDataType.d.ts +15 -15
- package/src/core/binary/type/DataType2TypedArrayConstructorMapping.d.ts +7 -11
- package/src/core/binary/type/DataType2TypedArrayConstructorMapping.d.ts.map +1 -1
- package/src/core/binary/type/DataTypeByteSizes.d.ts +7 -13
- package/src/core/binary/type/DataTypeByteSizes.d.ts.map +1 -1
- package/src/core/binary/type/DataTypeIndices.d.ts +8 -11
- package/src/core/binary/type/DataTypeIndices.d.ts.map +1 -1
- package/src/core/cache/Cache.d.ts +226 -56
- package/src/core/cache/Cache.d.ts.map +1 -1
- package/src/core/cache/Cache.js +0 -4
- package/src/core/cache/CacheElement.d.ts.map +1 -1
- package/src/core/cache/CacheElement.js +4 -0
- package/src/core/cache/FrequencySketch.d.ts +0 -21
- package/src/core/cache/FrequencySketch.d.ts.map +1 -1
- package/src/core/cache/FrequencySketch.js +66 -65
- package/src/core/cache/LoadingCache.d.ts +72 -23
- package/src/core/cache/wtinylfu/CacheElementWTinylfu.d.ts +17 -0
- package/src/core/cache/wtinylfu/CacheElementWTinylfu.d.ts.map +1 -0
- package/src/core/cache/wtinylfu/CacheElementWTinylfu.js +18 -0
- package/src/core/cache/wtinylfu/CacheRegionType.d.ts +10 -0
- package/src/core/cache/wtinylfu/CacheRegionType.d.ts.map +1 -0
- package/src/core/cache/wtinylfu/CacheRegionType.js +10 -0
- package/src/core/cache/wtinylfu/CacheRegionWTinylfu.d.ts +66 -0
- package/src/core/cache/wtinylfu/CacheRegionWTinylfu.d.ts.map +1 -0
- package/src/core/cache/wtinylfu/CacheRegionWTinylfu.js +183 -0
- package/src/core/cache/wtinylfu/CacheWTinylfu.d.ts +279 -0
- package/src/core/cache/wtinylfu/CacheWTinylfu.d.ts.map +1 -0
- package/src/core/cache/wtinylfu/CacheWTinylfu.js +807 -0
- package/src/core/cache/wtinylfu/benchmark/CacheWTinylfu.bench.md +243 -0
- package/src/core/cache/wtinylfu/wtinylfuDecisions.d.ts +80 -0
- package/src/core/cache/wtinylfu/wtinylfuDecisions.d.ts.map +1 -0
- package/src/core/cache/wtinylfu/wtinylfuDecisions.js +102 -0
- package/src/core/collection/RingBuffer.d.ts.map +1 -1
- package/src/core/collection/RingBuffer.js +15 -3
- package/src/core/collection/Stack.d.ts +2 -2
- package/src/core/collection/array/array_copy.d.ts +12 -7
- package/src/core/collection/array/computeHashArray.d.ts +9 -1
- package/src/core/collection/array/isArrayEqualStrict.d.ts +8 -1
- package/src/core/collection/array/isArraysEqualWithComparator.d.ts +10 -1
- package/src/core/collection/array/iterator/ArrayIteratorRandom.d.ts +3 -1
- package/src/core/collection/array/iterator/ArrayIteratorRandom.d.ts.map +1 -1
- package/src/core/collection/list/List.d.ts +334 -45
- package/src/core/collection/list/List.d.ts.map +1 -1
- package/src/core/collection/list/ListForwarder.d.ts +37 -18
- package/src/core/collection/map/HashMap.d.ts +199 -40
- package/src/core/collection/map/HashMap.d.ts.map +1 -1
- package/src/core/collection/map/HashMap.js +5 -17
- package/src/core/collection/queue/Deque.d.ts +113 -37
- package/src/core/collection/set/ArraySet.d.ts +87 -26
- package/src/core/collection/set/HashSet.d.ts +66 -33
- package/src/core/collection/set/HashSet.d.ts.map +1 -1
- package/src/core/collection/table/bind/TableRecord.d.ts +21 -20
- package/src/core/color/Color.d.ts +1 -2
- package/src/core/color/Color.d.ts.map +1 -1
- package/src/core/events/signal/Signal.d.ts +210 -57
- package/src/core/events/signal/signal_filter.d.ts +1 -1
- package/src/core/fsm/simple/SimpleStateMachine.d.ts +83 -27
- package/src/core/fsm/simple/SimpleStateMachineDescription.d.ts +90 -21
- package/src/core/geom/2d/aabb/AABB2.d.ts +335 -51
- package/src/core/geom/2d/line/line2_compute_segment_point_distance_sqr.d.ts.map +1 -1
- package/src/core/geom/2d/line/line2_compute_segment_point_distance_sqr.js +5 -0
- package/src/core/geom/2d/quad-tree/QuadTreeDatum.d.ts +1 -6
- package/src/core/geom/2d/quad-tree/QuadTreeDatum.d.ts.map +1 -1
- package/src/core/geom/2d/quad-tree/QuadTreeNode.d.ts +1 -2
- package/src/core/geom/2d/quad-tree/QuadTreeNode.d.ts.map +1 -1
- package/src/core/geom/3d/SurfacePoint3.d.ts +62 -17
- package/src/core/geom/3d/aabb/aabb3_build_corners.d.ts +13 -1
- package/src/core/geom/3d/frustum/read_three_planes_to_array.d.ts +7 -3
- package/src/core/geom/3d/line/line3_compute_nearest_point_to_point.d.ts +7 -6
- package/src/core/geom/3d/sphere/harmonics/sh3_sample_by_direction.d.ts +16 -6
- package/src/core/geom/ConicRay.d.ts.map +1 -1
- package/src/core/geom/ConicRay.js +9 -2
- package/src/core/geom/Quaternion.d.ts +1 -2
- package/src/core/geom/Quaternion.d.ts.map +1 -1
- package/src/core/geom/Quaternion.js +7 -3
- package/src/core/geom/Vector1.d.ts +1 -2
- package/src/core/geom/Vector1.d.ts.map +1 -1
- package/src/core/geom/Vector2.d.ts +1 -2
- package/src/core/geom/Vector2.d.ts.map +1 -1
- package/src/core/geom/Vector3.d.ts +1 -2
- package/src/core/geom/Vector3.d.ts.map +1 -1
- package/src/core/geom/Vector4.d.ts +1 -1
- package/src/core/geom/Vector4.d.ts.map +1 -1
- package/src/core/graph/v2/Graph.d.ts +4 -4
- package/src/core/graph/v2/Graph.d.ts.map +1 -1
- package/src/core/json/resolvePathByArray.d.ts +10 -1
- package/src/core/math/build_gaussian_kernel_1d.d.ts +2 -2
- package/src/core/math/build_gaussian_kernel_1d.d.ts.map +1 -1
- package/src/core/math/build_gaussian_kernel_1d.js +4 -2
- package/src/core/math/build_gaussian_kernel_2d.d.ts +2 -2
- package/src/core/math/build_gaussian_kernel_2d.d.ts.map +1 -1
- package/src/core/math/build_gaussian_kernel_2d.js +4 -2
- package/src/core/math/clamp.d.ts +9 -1
- package/src/core/math/epsilonEquals.d.ts +9 -1
- package/src/core/math/gaussian.d.ts +2 -2
- package/src/core/math/gaussian.js +2 -2
- package/src/core/math/interval/NumericInterval.d.ts +1 -2
- package/src/core/math/interval/NumericInterval.d.ts.map +1 -1
- package/src/core/math/noise/create_simplex_noise_2d.d.ts +7 -1
- package/src/core/math/random/seededRandom.d.ts +3 -1
- package/src/core/math/remap.d.ts +12 -5
- package/src/core/math/sign.d.ts +10 -1
- package/src/core/math/spline/spline3_bezier_bounds.d.ts.map +1 -1
- package/src/core/math/spline/spline3_bezier_bounds.js +10 -3
- package/src/core/math/spline/spline3_bezier_to_hermite.d.ts +8 -7
- package/src/core/math/spline/spline3_bezier_to_hermite.d.ts.map +1 -1
- package/src/core/math/spline/spline3_bezier_to_hermite.js +13 -12
- package/src/core/math/spline/spline3_hermite_bounds.d.ts.map +1 -1
- package/src/core/math/spline/spline3_hermite_bounds.js +10 -3
- package/src/core/math/spline/spline3_hermite_bounds_t.d.ts.map +1 -1
- package/src/core/math/spline/spline3_hermite_bounds_t.js +115 -109
- package/src/core/math/spline/spline3_hermite_to_bezier.d.ts +2 -0
- package/src/core/math/spline/spline3_hermite_to_bezier.d.ts.map +1 -1
- package/src/core/math/spline/spline3_hermite_to_bezier.js +2 -0
- package/src/core/math/statistics/computeStatisticalMean.js +1 -1
- package/src/core/math/statistics/gaussian_amplitude.d.ts.map +1 -1
- package/src/core/math/statistics/gaussian_amplitude.js +3 -1
- package/src/core/model/BooleanVector3.d.ts +77 -28
- package/src/core/model/BooleanVector3.d.ts.map +1 -1
- package/src/core/model/BoundedValue.d.ts +5 -5
- package/src/core/model/BoundedValue.d.ts.map +1 -1
- package/src/core/model/ModuleRegistry.d.ts +45 -3
- package/src/core/model/ObservedBoolean.d.ts +1 -2
- package/src/core/model/ObservedBoolean.d.ts.map +1 -1
- package/src/core/model/ObservedEnum.d.ts +91 -7
- package/src/core/model/ObservedEnum.d.ts.map +1 -1
- package/src/core/model/ObservedString.d.ts +1 -2
- package/src/core/model/ObservedString.d.ts.map +1 -1
- package/src/core/model/ObservedValue.d.ts +1 -1
- package/src/core/model/ObservedValue.d.ts.map +1 -1
- package/src/core/model/node-graph/Connection.d.ts +57 -12
- package/src/core/model/node-graph/NodeGraph.d.ts +2 -2
- package/src/core/model/node-graph/node/NodeDescription.d.ts +166 -15
- package/src/core/model/node-graph/node/NodeDescription.d.ts.map +1 -1
- package/src/core/model/node-graph/node/NodeInstance.d.ts +181 -22
- package/src/core/model/node-graph/node/NodeInstance.d.ts.map +1 -1
- package/src/core/model/node-graph/node/NodeInstancePortReference.d.ts +82 -3
- package/src/core/model/node-graph/node/Port.d.ts +72 -3
- package/src/core/model/node-graph/node/Port.d.ts.map +1 -1
- package/src/core/model/node-graph/node/PortDirection.d.ts +7 -5
- package/src/core/model/node-graph/type/DataType.d.ts +61 -4
- package/src/core/model/node-graph/type/ParametricDataType.d.ts +0 -1
- package/src/core/model/node-graph/type/ParametricDataType.d.ts.map +1 -1
- package/src/core/model/object/ImmutableObjectPool.d.ts +1 -2
- package/src/core/model/object/ImmutableObjectPool.d.ts.map +1 -1
- package/src/core/model/object/invokeObjectEquals.d.ts +9 -5
- package/src/core/model/object/invokeObjectHash.d.ts +7 -5
- package/src/core/model/object/objectDeepEquals.d.ts +10 -1
- package/src/core/model/object/objectKeyByValue.d.ts +10 -1
- package/src/core/model/object/read_property.d.ts +11 -1
- package/src/core/model/object/write_property.d.ts +10 -1
- package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.d.ts +6 -0
- package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.d.ts.map +1 -1
- package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.js +12 -12
- package/src/core/model/reactive/js/compileReactiveToJS.d.ts.map +1 -1
- package/src/core/model/reactive/js/compileReactiveToJS.js +35 -1
- package/src/core/model/reactive/model/ReactiveBinaryExpression.d.ts +1 -3
- package/src/core/model/reactive/model/ReactiveBinaryExpression.d.ts.map +1 -1
- package/src/core/model/reactive/model/ReactiveExpression.d.ts +63 -10
- package/src/core/model/reactive/model/ReactiveExpression.d.ts.map +1 -1
- package/src/core/model/reactive/model/ReactiveUnaryExpression.d.ts +0 -12
- package/src/core/model/reactive/model/ReactiveUnaryExpression.d.ts.map +1 -1
- package/src/core/model/reactive/model/arithmetic/ReactiveAdd.d.ts +1 -1
- package/src/core/model/reactive/model/arithmetic/ReactiveAdd.d.ts.map +1 -1
- package/src/core/model/reactive/model/arithmetic/ReactiveDivide.d.ts +1 -1
- package/src/core/model/reactive/model/arithmetic/ReactiveDivide.d.ts.map +1 -1
- package/src/core/model/reactive/model/arithmetic/ReactiveMultiply.d.ts +1 -1
- package/src/core/model/reactive/model/arithmetic/ReactiveMultiply.d.ts.map +1 -1
- package/src/core/model/reactive/model/arithmetic/ReactiveNegate.d.ts +1 -1
- package/src/core/model/reactive/model/arithmetic/ReactiveNegate.d.ts.map +1 -1
- package/src/core/model/reactive/model/arithmetic/ReactiveSubtract.d.ts +1 -1
- package/src/core/model/reactive/model/arithmetic/ReactiveSubtract.d.ts.map +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveEquals.d.ts +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveEquals.d.ts.map +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveGreaterThan.d.ts +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveGreaterThan.d.ts.map +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveGreaterThanOrEqual.d.ts +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveGreaterThanOrEqual.d.ts.map +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveLessThan.d.ts +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveLessThan.d.ts.map +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveLessThanOrEqual.d.ts +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveLessThanOrEqual.d.ts.map +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveNotEquals.d.ts +1 -1
- package/src/core/model/reactive/model/comparative/ReactiveNotEquals.d.ts.map +1 -1
- package/src/core/model/reactive/model/logic/ReactiveAnd.d.ts +41 -5
- package/src/core/model/reactive/model/logic/ReactiveAnd.d.ts.map +1 -1
- package/src/core/model/reactive/model/logic/ReactiveNot.d.ts +1 -1
- package/src/core/model/reactive/model/logic/ReactiveNot.d.ts.map +1 -1
- package/src/core/model/reactive/model/logic/ReactiveOr.d.ts +2 -1
- package/src/core/model/reactive/model/logic/ReactiveOr.d.ts.map +1 -1
- package/src/core/model/reactive/model/terminal/ReactiveLiteralBoolean.d.ts +2 -1
- package/src/core/model/reactive/model/terminal/ReactiveLiteralBoolean.d.ts.map +1 -1
- package/src/core/model/reactive/model/terminal/ReactiveLiteralNumber.d.ts +2 -3
- package/src/core/model/reactive/model/terminal/ReactiveLiteralNumber.d.ts.map +1 -1
- package/src/core/model/reactive/model/terminal/ReactiveLiteralString.d.ts +2 -4
- package/src/core/model/reactive/model/terminal/ReactiveLiteralString.d.ts.map +1 -1
- package/src/core/model/reactive/model/terminal/ReactiveReference.d.ts +68 -11
- package/src/core/model/reactive/model/terminal/ReactiveReference.d.ts.map +1 -1
- package/src/core/model/stat/LinearModifier.d.ts +79 -24
- package/src/core/parser/simple/DataType.d.ts +13 -5
- package/src/core/parser/simple/Token.d.ts +52 -13
- package/src/core/parser/simple/readArrayLiteral.d.ts +1 -0
- package/src/core/parser/simple/readArrayLiteral.d.ts.map +1 -1
- package/src/core/parser/simple/readBooleanToken.d.ts +1 -0
- package/src/core/parser/simple/readBooleanToken.d.ts.map +1 -1
- package/src/core/parser/simple/readHexToken.d.ts +1 -0
- package/src/core/parser/simple/readHexToken.d.ts.map +1 -1
- package/src/core/parser/simple/readIdentifierToken.d.ts +1 -0
- package/src/core/parser/simple/readIdentifierToken.d.ts.map +1 -1
- package/src/core/parser/simple/readNumberToken.d.ts +1 -0
- package/src/core/parser/simple/readNumberToken.d.ts.map +1 -1
- package/src/core/parser/simple/readReferenceToken.d.ts +1 -0
- package/src/core/parser/simple/readReferenceToken.d.ts.map +1 -1
- package/src/core/parser/simple/readStringToken.d.ts +1 -0
- package/src/core/parser/simple/readStringToken.d.ts.map +1 -1
- package/src/core/parser/simple/readUnsignedIntegerToken.d.ts +1 -0
- package/src/core/parser/simple/readUnsignedIntegerToken.d.ts.map +1 -1
- package/src/core/process/BaseProcess.d.ts +17 -5
- package/src/core/process/BaseProcess.d.ts.map +1 -1
- package/src/core/process/CompositeProcess.d.ts +0 -1
- package/src/core/process/CompositeProcess.d.ts.map +1 -1
- package/src/core/process/action/AsynchronousAction.d.ts +3 -3
- package/src/core/process/executor/ConcurrentExecutor.d.ts +3 -3
- package/src/core/process/filter/MutableFilter.d.ts +1 -1
- package/src/core/process/filter/MutableFilter.d.ts.map +1 -1
- package/src/core/process/task/Task.d.ts +1 -1
- package/src/core/process/task/Task.d.ts.map +1 -1
- package/src/core/process/task/TaskGroup.d.ts +3 -3
- package/src/core/process/task/TaskSignal.d.ts +8 -6
- package/src/core/process/undo/Action.d.ts +31 -9
- package/src/core/process/undo/ActionGroup.d.ts +20 -5
- package/src/core/process/undo/ActionProcessor.d.ts +163 -27
- package/src/core/process/undo/ActionProcessor.d.ts.map +1 -1
- package/src/engine/Engine.d.ts +178 -42
- package/src/engine/Engine.d.ts.map +1 -1
- package/src/engine/EngineConfiguration.d.ts +74 -20
- package/src/engine/achievements/AchievementGateway.d.ts +17 -5
- package/src/engine/achievements/AchievementManager.d.ts +0 -1
- package/src/engine/achievements/AchievementManager.d.ts.map +1 -1
- package/src/engine/animation/Tween.d.ts +1 -1
- package/src/engine/animation/clip/AnimationClip.d.ts +24 -4
- package/src/engine/animation/clip/AnimationClipBinding.d.ts +35 -14
- package/src/engine/animation/clip/ecd_bind_animation_curve.d.ts.map +1 -1
- package/src/engine/animation/clip/ecd_bind_animation_curve.js +10 -1
- package/src/engine/animation/clip/hemisphere_align_quaternion_values.d.ts +20 -0
- package/src/engine/animation/clip/hemisphere_align_quaternion_values.d.ts.map +1 -0
- package/src/engine/animation/clip/hemisphere_align_quaternion_values.js +37 -0
- package/src/engine/animation/curve/actionProcessorOperations/curveActions.d.ts +2 -2
- package/src/engine/animation/curve/actionProcessorOperations/curveActions.d.ts.map +1 -1
- package/src/engine/animation/curve/editor/createKeyframeMarker.d.ts +1 -1
- package/src/engine/animation/curve/editor/createKeyframeMarker.d.ts.map +1 -1
- package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts +1 -1
- package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts.map +1 -1
- package/src/engine/animation/keyed2/AnimationTrackPlayback.js +5 -1
- package/src/engine/animation/keyed2/behavior/AnimationBehavior.d.ts +0 -1
- package/src/engine/animation/keyed2/behavior/AnimationBehavior.d.ts.map +1 -1
- package/src/engine/asset/Asset.d.ts +47 -7
- package/src/engine/asset/AssetManager.d.ts +258 -60
- package/src/engine/asset/AssetRequestScope.d.ts +27 -3
- package/src/engine/asset/AssetTransformer.d.ts +16 -5
- package/src/engine/asset/CORS/CrossOriginConfig.d.ts +8 -5
- package/src/engine/asset/CORS/CrossOriginConfig.d.ts.map +1 -1
- package/src/engine/asset/CORS/CrossOriginKind.d.ts +5 -4
- package/src/engine/asset/loaders/AssetLoader.d.ts +50 -12
- package/src/engine/asset/loaders/GLTFAssetLoader.d.ts +71 -6
- package/src/engine/asset/loaders/image/ImageRGBADataAsset.d.ts +0 -1
- package/src/engine/asset/loaders/image/ImageRGBADataAsset.d.ts.map +1 -1
- package/src/engine/asset/loaders/material/StaticMaterialCache.d.ts +30 -7
- package/src/engine/asset/loaders/material/computeMaterialEquality.d.ts +8 -3
- package/src/engine/asset/loaders/material/computeMaterialHash.d.ts +7 -3
- package/src/engine/asset/loaders/material/traverseMaterialTextures.d.ts +8 -3
- package/src/engine/asset/loaders/texture/TextureAssetLoader.d.ts +6 -6
- package/src/engine/asset/preloader/AssetPreloader.d.ts +6 -15
- package/src/engine/asset/preloader/AssetPreloader.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerController.d.ts +13 -13
- package/src/engine/control/first-person/FirstPersonPlayerController.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +14 -4
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts +1 -1
- package/src/engine/ecs/Entity.d.ts +228 -41
- package/src/engine/ecs/EntityBlueprint.d.ts +43 -17
- package/src/engine/ecs/EntityComponentDataset.d.ts +580 -60
- package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
- package/src/engine/ecs/EntityComponentDataset.js +5 -21
- package/src/engine/ecs/EntityManager.d.ts +10 -9
- package/src/engine/ecs/EntityManager.d.ts.map +1 -1
- package/src/engine/ecs/EntityObserver.d.ts +80 -13
- package/src/engine/ecs/System.d.ts +162 -33
- package/src/engine/ecs/animation/AnimationSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/animation/AnimationSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/attachment/AttachmentSystem.d.ts +1 -1
- package/src/engine/ecs/attachment/AttachmentSystem.d.ts.map +1 -1
- package/src/engine/ecs/components/PropertySetSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/components/PropertySetSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/components/SerializationMetadataSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/components/SerializationMetadataSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/components/TagSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/components/TagSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescriptionTable.d.ts +1 -1
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescriptionTable.d.ts.map +1 -1
- package/src/engine/ecs/fow/FogOfWar.d.ts +10 -1
- package/src/engine/ecs/fow/FogOfWar.d.ts.map +1 -1
- package/src/engine/ecs/fow/FogOfWar.js +133 -54
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts +1 -1
- package/src/engine/ecs/fow/FogOfWarSystem.d.ts +1 -6
- package/src/engine/ecs/fow/FogOfWarSystem.d.ts.map +1 -1
- package/src/engine/ecs/fow/serialization/FogOfWarRevealerSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/fow/serialization/FogOfWarRevealerSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/fow/serialization/FogOfWarSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/fow/serialization/FogOfWarSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/fow/serialization/FogOfWarSerializationAdapter.js +3 -0
- package/src/engine/ecs/gui/GUIElement.d.ts +115 -5
- package/src/engine/ecs/gui/GUIElementSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/gui/GUIElementSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/gui/GUIElementSystem.d.ts +59 -8
- package/src/engine/ecs/gui/GUIElementSystem.d.ts.map +1 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts +42 -6
- package/src/engine/ecs/gui/menu/radial/RadialContextMenu.d.ts +23 -22
- package/src/engine/ecs/gui/parallax/GuiElementParallaxSystem.d.ts +1 -1
- package/src/engine/ecs/gui/position/ViewportPositionSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/gui/position/ViewportPositionSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/gui/position/ViewportPositionSystem.d.ts +1 -1
- package/src/engine/ecs/gui/view/ViewEntity.d.ts +1 -2
- package/src/engine/ecs/gui/view/ViewEntity.d.ts.map +1 -1
- package/src/engine/ecs/guid/UUIDSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/guid/UUIDSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/ik/InverseKinematicsSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/ik/InverseKinematicsSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts +1 -1
- package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts.map +1 -1
- package/src/engine/ecs/name/NameSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/name/NameSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/parent/ChildEntities.d.ts +23 -3
- package/src/engine/ecs/parent/EntityNode.d.ts +157 -25
- package/src/engine/ecs/parent/ParentEntity.d.ts +31 -11
- package/src/engine/ecs/parent/ParentEntitySystem.d.ts +44 -11
- package/src/engine/ecs/renderable/RenderSystem.d.ts +65 -7
- package/src/engine/ecs/renderable/Renderable.d.ts +95 -25
- package/src/engine/ecs/speaker/VoiceSystem.d.ts +3 -3
- package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
- package/src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.d.ts +86 -21
- package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.d.ts.map +1 -1
- package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.js +3 -1
- package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.d.ts +1 -1
- package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.d.ts.map +1 -1
- package/src/engine/ecs/system/AbstractContextSystem.d.ts +1 -1
- package/src/engine/ecs/system_validate_class.d.ts +1 -1
- package/src/engine/ecs/system_validate_class.d.ts.map +1 -1
- package/src/engine/ecs/systems/AnimationSystem.d.ts +41 -6
- package/src/engine/ecs/systems/AnimationSystem.d.ts.map +1 -1
- package/src/engine/ecs/systems/ScriptSystem.d.ts +9 -5
- package/src/engine/ecs/systems/ScriptSystem.d.ts.map +1 -1
- package/src/engine/ecs/systems/TimerSystem.d.ts +1 -1
- package/src/engine/ecs/systems/TimerSystem.d.ts.map +1 -1
- package/src/engine/ecs/team/TeamSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/team/TeamSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/OffsetScaleTransform2D.d.ts +7 -6
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts +389 -17
- package/src/engine/ecs/terrain/ecs/TerrainSystem.d.ts +65 -8
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/serialization/TerrainSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/terrain/serialization/TerrainSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts +2 -2
- package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts.map +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts +2 -2
- package/src/engine/ecs/tooltip/TooltipComponentSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/tooltip/TooltipComponentSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/tooltip/TooltipComponentSystem.d.ts +1 -1
- package/src/engine/ecs/transform/TransformSerializationAdapter.d.ts +0 -1
- package/src/engine/ecs/transform/TransformSerializationAdapter.d.ts.map +1 -1
- package/src/engine/ecs/transform-attachment/TransformAttachment.d.ts +116 -19
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts +58 -6
- package/src/engine/graphics/GraphicsEngine.d.ts +224 -41
- package/src/engine/graphics/GraphicsEngine.d.ts.map +1 -1
- package/src/engine/graphics/GraphicsEngine.js +14 -3
- package/src/engine/graphics/camera/CameraShake.d.ts +6 -6
- package/src/engine/graphics/camera/CameraShake.d.ts.map +1 -1
- package/src/engine/graphics/camera/CameraShakeBehavior.d.ts +1 -2
- package/src/engine/graphics/camera/CameraShakeBehavior.d.ts.map +1 -1
- package/src/engine/graphics/camera/CameraShakeTraumaBehavior.d.ts +1 -2
- package/src/engine/graphics/camera/CameraShakeTraumaBehavior.d.ts.map +1 -1
- package/src/engine/graphics/camera/camera_compute_distance_to_fit_length.d.ts +8 -1
- package/src/engine/graphics/camera/makeScreenScissorFrustum.d.ts +8 -4
- package/src/engine/graphics/composit/CompositLayer.d.ts +1 -1
- package/src/engine/graphics/composit/CompositLayer.d.ts.map +1 -1
- package/src/engine/graphics/composit/CompositLayer.js +258 -255
- package/src/engine/graphics/composit/LayerCompositer.d.ts +12 -0
- package/src/engine/graphics/composit/LayerCompositer.d.ts.map +1 -1
- package/src/engine/graphics/composit/LayerCompositer.js +19 -10
- package/src/engine/graphics/ecs/animation/AnimationControllerSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/ecs/animation/AnimationControllerSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/AnimationControllerSystem.d.ts +1 -2
- package/src/engine/graphics/ecs/animation/AnimationControllerSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/animator/AnimationGraphSystem.d.ts +1 -1
- package/src/engine/graphics/ecs/animation/animator/graph/AnimationGraphSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/ecs/animation/animator/graph/AnimationGraphSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/AnimationGraphDefinitionSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/AnimationGraphDefinitionSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/Camera.d.ts +113 -18
- package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/CameraSystem.d.ts +74 -10
- package/src/engine/graphics/ecs/camera/serialization/CameraSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/ecs/camera/serialization/CameraSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts +90 -33
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts +34 -5
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraLander.d.ts +0 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraLander.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraLanderSystem.d.ts +1 -1
- package/src/engine/graphics/ecs/decal/v2/Decal.d.ts +52 -15
- package/src/engine/graphics/ecs/decal/v2/DecalSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/ecs/decal/v2/DecalSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.d.ts +70 -24
- package/src/engine/graphics/ecs/highlight/Highlight.d.ts +61 -16
- package/src/engine/graphics/ecs/highlight/HighlightDefinition.d.ts +57 -19
- package/src/engine/graphics/ecs/highlight/HighlightSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/ecs/highlight/HighlightSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.d.ts +1 -2
- package/src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.js +10 -4
- package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.d.ts +6 -0
- package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.js +21 -0
- package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.d.ts +57 -8
- package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.d.ts +62 -8
- package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts +68 -8
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/Light.d.ts +79 -19
- package/src/engine/graphics/ecs/light/Light.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/LightSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/ecs/light/LightSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/LightSystem.d.ts +123 -11
- package/src/engine/graphics/ecs/light/LightType.d.ts +8 -6
- package/src/engine/graphics/ecs/mesh/Mesh.d.ts +176 -30
- package/src/engine/graphics/ecs/mesh/MeshEvents.d.ts +6 -12
- package/src/engine/graphics/ecs/mesh/MeshSystem.d.ts +99 -7
- package/src/engine/graphics/ecs/mesh/serialization/MeshSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/ecs/mesh/serialization/MeshSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/DrawMode.d.ts +8 -6
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts +147 -32
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +37 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGAnimationPlayback.d.ts +6 -5
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.d.ts +162 -25
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationController.d.ts +40 -12
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationControllerSystem.d.ts +31 -11
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshEvents.d.ts +5 -12
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.d.ts +36 -7
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshSystem.d.ts +63 -8
- package/src/engine/graphics/ecs/mesh-v2/sg_hierarchy_compute_bounding_box_via_parent_entity.d.ts +9 -4
- package/src/engine/graphics/ecs/path/PathDisplay.d.ts +21 -9
- package/src/engine/graphics/ecs/path/PathDisplayEvents.d.ts +6 -3
- package/src/engine/graphics/ecs/path/PathDisplaySpec.d.ts +28 -11
- package/src/engine/graphics/ecs/path/PathDisplaySystem.d.ts +55 -10
- package/src/engine/graphics/ecs/path/PathDisplaySystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/path/PathDisplayType.d.ts +8 -6
- package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.d.ts +39 -8
- package/src/engine/graphics/ecs/path/entity/EntityPathStyle.d.ts +38 -12
- package/src/engine/graphics/ecs/path/highlight/PathDisplayHighlightSystem.d.ts +31 -7
- package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.d.ts.map +1 -1
- package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.js +5 -23
- package/src/engine/graphics/ecs/path/ribbon/RibbonPathStyle.d.ts +24 -7
- package/src/engine/graphics/ecs/path/tube/BasicMaterialDefinition.d.ts +4 -3
- package/src/engine/graphics/ecs/path/tube/CapType.d.ts +7 -5
- package/src/engine/graphics/ecs/path/tube/MatcapMaterialDefinition.d.ts +11 -3
- package/src/engine/graphics/ecs/path/tube/PathNormalType.d.ts +6 -4
- package/src/engine/graphics/ecs/path/tube/StandardMaterialDefinition.d.ts +9 -4
- package/src/engine/graphics/ecs/path/tube/TubeMaterialType.d.ts +7 -6
- package/src/engine/graphics/ecs/path/tube/TubePathStyle.d.ts +114 -35
- package/src/engine/graphics/ecs/path/tube/TubePathStyle.d.ts.map +1 -1
- package/src/engine/graphics/ecs/path/tube/build/estimatePathViaIterativeIntegral.d.ts.map +1 -1
- package/src/engine/graphics/ecs/path/tube/build/estimatePathViaIterativeIntegral.js +6 -4
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts +85 -6
- package/src/engine/graphics/ecs/trail3d/Trail3DSystem.d.ts +1 -1
- package/src/engine/graphics/ecs/water/WaterSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/ecs/water/WaterSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterSystem.d.ts +1 -1
- package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterSystem.js +9 -3
- package/src/engine/graphics/geometry/AttributeGroupSpec.d.ts +75 -25
- package/src/engine/graphics/geometry/AttributeSpec.d.ts +85 -12
- package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.d.ts +1 -2
- package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/grid/OctahedralUvEncoder.d.ts +6 -4
- package/src/engine/graphics/material/manager/MaterialManager.d.ts +12 -0
- package/src/engine/graphics/material/manager/MaterialManager.d.ts.map +1 -1
- package/src/engine/graphics/material/manager/MaterialManager.js +78 -41
- package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.d.ts +67 -7
- package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.js +46 -9
- package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.d.ts +9 -9
- package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.d.ts +1 -2
- package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/FloatConstant.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/FloatConstant.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.d.ts +10 -9
- package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Split.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Split.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.d.ts +0 -1
- package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.d.ts +18 -18
- package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts +5 -0
- package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/ParticularEngine.js +8 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts +252 -2
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.d.ts +2 -15
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.d.ts +5 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts +1 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.d.ts +5 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/shader/MaterialRecord.d.ts +7 -0
- package/src/engine/graphics/particles/particular/engine/shader/MaterialRecord.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/shader/MaterialRecord.js +8 -0
- package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts +10 -2
- package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.js +42 -10
- package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts +76 -16
- package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.d.ts +6 -4
- package/src/engine/graphics/render/buffer/FrameBuffer.d.ts.map +1 -1
- package/src/engine/graphics/render/buffer/FrameBuffer.js +5 -2
- package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts +104 -8
- package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts.map +1 -1
- package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js +40 -7
- package/src/engine/graphics/render/buffer/simple-fx/ao/SAOUpscaleShader.js +78 -37
- package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.d.ts +0 -3
- package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.d.ts.map +1 -1
- package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.js +10 -4
- package/src/engine/graphics/render/forward_plus/LightManager.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/LightManager.js +1235 -1232
- package/src/engine/graphics/render/forward_plus/model/Decal.d.ts +1 -1
- package/src/engine/graphics/render/forward_plus/model/Decal.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.d.ts +32 -5
- package/src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.js +11 -10
- package/src/engine/graphics/render/forward_plus/plugin/MaterialTransformer.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/plugin/MaterialTransformer.js +4 -9
- package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.d.ts +16 -0
- package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.d.ts.map +1 -0
- package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.js +18 -0
- package/src/engine/graphics/render/forward_plus/plugin/isForwardPlusLightingSkipped.d.ts +16 -0
- package/src/engine/graphics/render/forward_plus/plugin/isForwardPlusLightingSkipped.d.ts.map +1 -0
- package/src/engine/graphics/render/forward_plus/plugin/isForwardPlusLightingSkipped.js +31 -0
- package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts +1 -1
- package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.d.ts +1 -1
- package/src/engine/graphics/render/gizmo/Gizmo.d.ts +7 -3
- package/src/engine/graphics/render/gizmo/GizmoRenderingPlugin.d.ts +5 -5
- package/src/engine/graphics/render/gizmo/GizmoRenderingPlugin.d.ts.map +1 -1
- package/src/engine/graphics/render/gizmo/GizmoShapeRenderingInterface.d.ts +72 -13
- package/src/engine/graphics/render/layers/RenderLayer.d.ts +78 -22
- package/src/engine/graphics/render/layers/RenderLayerManager.d.ts +72 -17
- package/src/engine/graphics/render/layers/RenderLayerState.d.ts +18 -3
- package/src/engine/graphics/render/view/CameraView.d.ts +3 -3
- package/src/engine/graphics/render/view/CameraViewManager.d.ts +2 -2
- package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts +143 -24
- package/src/engine/graphics/sh3/lpg/serialization/LightProbeGridSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/sh3/lpg/serialization/LightProbeGridSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts +3 -1
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/serialization/LightProbeVolumeSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/sh3/lpv/serialization/LightProbeVolumeSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/material/StandardTexture.d.ts +1 -2
- package/src/engine/graphics/sh3/path_tracer/material/StandardTexture.d.ts.map +1 -1
- package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts +3 -3
- package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts.map +1 -1
- package/src/engine/graphics/texture/cubemap/load_environment_map.d.ts +13 -8
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +1 -1
- package/src/engine/graphics/texture/sampler/serialization/Sampler2DSerializationAdapter.d.ts +0 -1
- package/src/engine/graphics/texture/sampler/serialization/Sampler2DSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts +1 -3
- package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts.map +1 -1
- package/src/engine/graphics/three/cloneObject3D.d.ts +7 -3
- package/src/engine/graphics/trail/tube/TubeX.d.ts.map +1 -1
- package/src/engine/graphics/trail/tube/TubeX.js +557 -555
- package/src/engine/graphics/trail/tube/TubeXPlugin.d.ts +0 -1
- package/src/engine/graphics/trail/tube/TubeXPlugin.d.ts.map +1 -1
- package/src/engine/graphics/trail/x/RibbonXMaterialSpec.d.ts +13 -3
- package/src/engine/graphics/trail/x/RibbonXPlugin.d.ts +12 -4
- package/src/engine/graphics/trail/x/RibbonXPlugin.d.ts.map +1 -1
- package/src/engine/graphics/trail/x/RibbonXPlugin.js +15 -8
- package/src/engine/graphics/util/promiseMaterialLoaded.d.ts +7 -3
- package/src/engine/grid/grid2transform/GridPosition2TransformSerializationAdapter.d.ts +0 -1
- package/src/engine/grid/grid2transform/GridPosition2TransformSerializationAdapter.d.ts.map +1 -1
- package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts +1 -1
- package/src/engine/grid/obstacle/GridObstacleSerializationAdapter.d.ts +0 -1
- package/src/engine/grid/obstacle/GridObstacleSerializationAdapter.d.ts.map +1 -1
- package/src/engine/grid/position/GridPositionSerializationAdapter.d.ts +0 -1
- package/src/engine/grid/position/GridPositionSerializationAdapter.d.ts.map +1 -1
- package/src/engine/grid/position/GridPositionSystem.d.ts +1 -1
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.d.ts +1 -1
- package/src/engine/input/GAMEPAD_API_PROPOSAL.md +717 -0
- package/src/engine/input/analog/apply_radial_dead_zone.d.ts +23 -0
- package/src/engine/input/analog/apply_radial_dead_zone.d.ts.map +1 -0
- package/src/engine/input/analog/apply_radial_dead_zone.js +38 -0
- package/src/engine/input/devices/GamepadDevice.d.ts +140 -23
- package/src/engine/input/devices/GamepadDevice.d.ts.map +1 -1
- package/src/engine/input/devices/GamepadDevice.js +202 -16
- package/src/engine/input/devices/InputDeviceSwitch.d.ts +44 -11
- package/src/engine/input/devices/InputDeviceSwitch.d.ts.map +1 -1
- package/src/engine/input/devices/KeyCodes.d.ts +112 -1
- package/src/engine/input/devices/KeyboardDevice.d.ts +2 -3
- package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
- package/src/engine/input/devices/PointerDevice.d.ts +96 -31
- package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
- package/src/engine/input/devices/events/KeyboardEvents.d.ts +5 -4
- package/src/engine/input/devices/events/MouseEvents.d.ts +18 -12
- package/src/engine/input/devices/events/TouchEvents.d.ts +12 -6
- package/src/engine/input/devices/gamepad/GamepadAxes.d.ts +5 -1
- package/src/engine/input/devices/gamepad/GamepadAxes.d.ts.map +1 -1
- package/src/engine/input/devices/gamepad/GamepadAxes.js +5 -1
- package/src/engine/input/devices/gamepad/GamepadHandle.d.ts +130 -26
- package/src/engine/input/devices/gamepad/GamepadHandle.d.ts.map +1 -1
- package/src/engine/input/devices/gamepad/GamepadHandle.js +60 -34
- package/src/engine/input/devices/gamepad/GamepadStandardMapping.d.ts +20 -0
- package/src/engine/input/devices/gamepad/GamepadStandardMapping.d.ts.map +1 -0
- package/src/engine/input/devices/gamepad/GamepadStandardMapping.js +20 -0
- package/src/engine/input/devices/gamepad/GamepadStick.d.ts +93 -0
- package/src/engine/input/devices/gamepad/GamepadStick.d.ts.map +1 -0
- package/src/engine/input/devices/gamepad/GamepadStick.js +165 -0
- package/src/engine/input/devices/gamepad/GamepadStickCalibration.d.ts +84 -0
- package/src/engine/input/devices/gamepad/GamepadStickCalibration.d.ts.map +1 -0
- package/src/engine/input/devices/gamepad/GamepadStickCalibration.js +119 -0
- package/src/engine/input/devices/gamepad/GamepadStickCalibrator.d.ts +92 -0
- package/src/engine/input/devices/gamepad/GamepadStickCalibrator.d.ts.map +1 -0
- package/src/engine/input/devices/gamepad/GamepadStickCalibrator.js +250 -0
- package/src/engine/input/devices/gamepad/gamepad_write_dpad_vector.d.ts +17 -0
- package/src/engine/input/devices/gamepad/gamepad_write_dpad_vector.d.ts.map +1 -0
- package/src/engine/input/devices/gamepad/gamepad_write_dpad_vector.js +30 -0
- package/src/engine/input/devices/touch/TouchDevice.d.ts +3 -3
- package/src/engine/input/ecs/components/Input.d.ts +49 -6
- package/src/engine/input/ecs/components/InputController.d.ts +33 -3
- package/src/engine/input/ecs/ism/InputBinding.d.ts +40 -4
- package/src/engine/input/ecs/systems/InputControllerSystem.d.ts +28 -6
- package/src/engine/input/ecs/systems/InputControllerSystem.d.ts.map +1 -1
- package/src/engine/input/ecs/systems/InputControllerSystem.js +9 -6
- package/src/engine/input/ecs/systems/InputSystem.d.ts +59 -6
- package/src/engine/intelligence/behavior/Behavior.d.ts +58 -16
- package/src/engine/intelligence/behavior/Behavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/BehaviorStatus.d.ts +10 -8
- package/src/engine/intelligence/behavior/SelectorBehavior.d.ts +0 -1
- package/src/engine/intelligence/behavior/SelectorBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts +0 -8
- package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/composite/ParallelBehaviorSerializationAdapter.d.ts +0 -1
- package/src/engine/intelligence/behavior/composite/ParallelBehaviorSerializationAdapter.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts +0 -1
- package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/composite/SequenceBehaviorSerializationAdapter.d.ts +0 -1
- package/src/engine/intelligence/behavior/composite/SequenceBehaviorSerializationAdapter.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.d.ts +0 -1
- package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/InvertStatusBehaviorSerializationAdapter.d.ts +0 -1
- package/src/engine/intelligence/behavior/decorator/InvertStatusBehaviorSerializationAdapter.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/OverrideContextBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/decorator/OverrideContextBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/RepeatBehaviorSerializationAdapter.d.ts +0 -1
- package/src/engine/intelligence/behavior/decorator/RepeatBehaviorSerializationAdapter.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorComponentSerializationAdapter.d.ts +0 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorComponentSerializationAdapter.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts +1 -1
- package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/EntityBehavior.d.ts +0 -1
- package/src/engine/intelligence/behavior/ecs/EntityBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/KillBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/ecs/KillBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/WaitForEventBehaviorSerializationAdapter.d.ts +0 -1
- package/src/engine/intelligence/behavior/ecs/WaitForEventBehaviorSerializationAdapter.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/FailingBehavior.d.ts +1 -3
- package/src/engine/intelligence/behavior/primitive/FailingBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/FailingBehaviorSerializationAdapter.d.ts +0 -1
- package/src/engine/intelligence/behavior/primitive/FailingBehaviorSerializationAdapter.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/PromiseBehavior.d.ts +2 -4
- package/src/engine/intelligence/behavior/primitive/PromiseBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.d.ts +1 -3
- package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/SucceedingBehaviorSerializationAdapter.d.ts +0 -1
- package/src/engine/intelligence/behavior/primitive/SucceedingBehaviorSerializationAdapter.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/BranchBehavior.d.ts +1 -3
- package/src/engine/intelligence/behavior/util/BranchBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/ConditionBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/util/ConditionBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/DelayBehavior.d.ts +1 -3
- package/src/engine/intelligence/behavior/util/DelayBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/LogMessageBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/util/LogMessageBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/RandomDelayBehavior.d.ts +4 -4
- package/src/engine/intelligence/behavior/util/RandomDelayBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/RotationBehavior.d.ts +1 -2
- package/src/engine/intelligence/behavior/util/RotationBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/blackboard/AbstractBlackboard.d.ts +58 -15
- package/src/engine/intelligence/blackboard/AbstractBlackboard.d.ts.map +1 -1
- package/src/engine/intelligence/blackboard/Blackboard.d.ts +79 -11
- package/src/engine/intelligence/blackboard/Blackboard.d.ts.map +1 -1
- package/src/engine/intelligence/blackboard/BlackboardSerializationAdapter.d.ts +0 -1
- package/src/engine/intelligence/blackboard/BlackboardSerializationAdapter.d.ts.map +1 -1
- package/src/engine/intelligence/blackboard/BlackboardValue.d.ts +1 -0
- package/src/engine/intelligence/blackboard/BlackboardValue.d.ts.map +1 -1
- package/src/engine/intelligence/controller/graph/StateGraphSystem.d.ts +1 -3
- package/src/engine/intelligence/controller/graph/StateGraphSystem.d.ts.map +1 -1
- package/src/engine/interpolation/InterpolationSystem.d.ts +1 -5
- package/src/engine/interpolation/InterpolationSystem.d.ts.map +1 -1
- package/src/engine/interpolation/TransformPoseSerializationAdapter.d.ts +0 -1
- package/src/engine/interpolation/TransformPoseSerializationAdapter.d.ts.map +1 -1
- package/src/engine/knowledge/database/StaticKnowledgeDataTable.d.ts +140 -9
- package/src/engine/knowledge/database/StaticKnowledgeDataTableDescriptor.d.ts +26 -7
- package/src/engine/knowledge/database/StaticKnowledgeDatabase.d.ts +2 -3
- package/src/engine/knowledge/database/StaticKnowledgeDatabase.d.ts.map +1 -1
- package/src/engine/navigation/ecs/components/InterpolationType.d.ts +8 -4
- package/src/engine/navigation/ecs/components/Path.d.ts +170 -47
- package/src/engine/navigation/ecs/components/Path.d.ts.map +1 -1
- package/src/engine/navigation/ecs/components/Path.js +10 -4
- package/src/engine/navigation/ecs/components/PathEvents.d.ts +8 -6
- package/src/engine/navigation/ecs/components/PathSerializationAdapter.d.ts +0 -1
- package/src/engine/navigation/ecs/components/PathSerializationAdapter.d.ts.map +1 -1
- package/src/engine/navigation/ecs/path_following/PathFollower.d.ts +85 -45
- package/src/engine/navigation/ecs/path_following/PathFollowerEventType.d.ts +5 -3
- package/src/engine/navigation/ecs/path_following/PathFollowerFlags.d.ts +14 -20
- package/src/engine/navigation/ecs/path_following/PathFollowerSerializationAdapter.d.ts +0 -1
- package/src/engine/navigation/ecs/path_following/PathFollowerSerializationAdapter.d.ts.map +1 -1
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts +31 -6
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +1 -1
- package/src/engine/network/adapters/TransformReplicationAdapter.d.ts +0 -1
- package/src/engine/network/adapters/TransformReplicationAdapter.d.ts.map +1 -1
- package/src/engine/network/ecs/NetworkSystem.d.ts +1 -1
- package/src/engine/network/ecs/serialization/NetworkIdentitySerializationAdapter.d.ts +0 -1
- package/src/engine/network/ecs/serialization/NetworkIdentitySerializationAdapter.d.ts.map +1 -1
- package/src/engine/options/Option.d.ts +3 -3
- package/src/engine/options/OptionsView.d.ts +1 -2
- package/src/engine/options/OptionsView.d.ts.map +1 -1
- package/src/engine/physics/body/SolverBodyState.d.ts.map +1 -1
- package/src/engine/physics/body/SolverBodyState.js +10 -1
- package/src/engine/physics/constraint/solve_constraints.d.ts.map +1 -1
- package/src/engine/physics/constraint/solve_constraints.js +840 -830
- package/src/engine/physics/ecs/ColliderObserverSystem.d.ts +3 -3
- package/src/engine/physics/ecs/ColliderObserverSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/ColliderSerializationAdapter.d.ts +0 -1
- package/src/engine/physics/ecs/ColliderSerializationAdapter.d.ts.map +1 -1
- package/src/engine/physics/ecs/JointSerializationAdapter.d.ts +0 -1
- package/src/engine/physics/ecs/JointSerializationAdapter.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.d.ts +14 -2
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +2246 -2172
- package/src/engine/physics/ecs/RigidBodySerializationAdapter.d.ts +0 -1
- package/src/engine/physics/ecs/RigidBodySerializationAdapter.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +12 -8
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +8 -4
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts.map +1 -1
- package/src/engine/physics/integration/integrate_velocity.d.ts.map +1 -1
- package/src/engine/physics/integration/integrate_velocity.js +25 -2
- package/src/engine/physics/narrowphase/capsule_contacts.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/capsule_contacts.js +622 -617
- package/src/engine/physics/narrowphase/convex_convex_manifold.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/convex_convex_manifold.js +632 -568
- package/src/engine/physics/solver/solve_contacts.d.ts +6 -5
- package/src/engine/physics/solver/solve_contacts.d.ts.map +1 -1
- package/src/engine/physics/solver/solve_contacts.js +1506 -1482
- package/src/engine/platform/EnginePlatform.d.ts +24 -14
- package/src/engine/platform/WebEnginePlatform.d.ts +20 -5
- package/src/engine/platform/WebEnginePlatform.d.ts.map +1 -1
- package/src/engine/plugin/EnginePlugin.d.ts +36 -3
- package/src/engine/plugin/EnginePlugin.d.ts.map +1 -1
- package/src/engine/plugin/EnginePluginManager.d.ts +85 -16
- package/src/engine/plugin/EnginePluginManager.d.ts.map +1 -1
- package/src/engine/plugin/PluginReferenceContext.d.ts +1 -1
- package/src/engine/reference/v2/Reference.d.ts +55 -17
- package/src/engine/reference/v2/Reference.d.ts.map +1 -1
- package/src/engine/save/GameStateLoader.d.ts +0 -1
- package/src/engine/save/GameStateLoader.d.ts.map +1 -1
- package/src/engine/save/Storage.d.ts +75 -15
- package/src/engine/save/storage/InMemoryStorage.d.ts +0 -1
- package/src/engine/save/storage/InMemoryStorage.d.ts.map +1 -1
- package/src/engine/save/storage/IndexedDBStorage.d.ts +0 -2
- package/src/engine/save/storage/IndexedDBStorage.d.ts.map +1 -1
- package/src/engine/scene/Scene.d.ts +65 -7
- package/src/engine/scene/SceneManager.d.ts +125 -25
- package/src/engine/simulation/Ticker.d.ts +1 -2
- package/src/engine/simulation/Ticker.d.ts.map +1 -1
- package/src/engine/sound/SoundEngine.d.ts +46 -3
- package/src/engine/sound/ecs/SoundController.d.ts +0 -1
- package/src/engine/sound/ecs/SoundController.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundControllerSystem.d.ts +1 -2
- package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundListener.d.ts +0 -1
- package/src/engine/sound/ecs/SoundListener.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundListenerSystem.d.ts +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +1 -1
- package/src/engine/sound/ecs/emitter/SoundEmitter.d.ts +1 -1
- package/src/engine/sound/ecs/emitter/SoundEmitter.d.ts.map +1 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts +1 -1
- package/src/engine/sound/ecs/emitter/SoundTrack.d.ts +1 -2
- package/src/engine/sound/ecs/emitter/SoundTrack.d.ts.map +1 -1
- package/src/engine/sound/simulation/core/AcousticMediumSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/simulation/core/AcousticMediumSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/simulation/definition/AcousticDirectivitySerializationAdapter.d.ts +0 -1
- package/src/engine/sound/simulation/definition/AcousticDirectivitySerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/simulation/definition/AcousticMaterialSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/simulation/definition/AcousticMaterialSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/simulation/ecs/AcousticBodySerializationAdapter.d.ts +0 -1
- package/src/engine/sound/simulation/ecs/AcousticBodySerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/simulation/ecs/AcousticProbeFieldSystem.d.ts +1 -1
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts +1 -1
- package/src/engine/sound/simulation/ecs/AcousticVolumeSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/simulation/ecs/AcousticVolumeSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.d.ts +1 -1
- package/src/engine/sound/simulation/probe/AcousticProbeFieldSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/simulation/probe/AcousticProbeFieldSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/BusDefinitionSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/BusDefinitionSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/DuckingRuleSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/DuckingRuleSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/MixerSnapshotSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/MixerSnapshotSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/ParameterDefinitionSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/ParameterDefinitionSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClipSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClipSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClipSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClipSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SampleAudioClipSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/clip/SampleAudioClipSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClipSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClipSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SilenceAudioClipSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/clip/SilenceAudioClipSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClipSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClipSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/CompressorEffectSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/effect/CompressorEffectSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/EqEffectSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/effect/EqEffectSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/ReverbEffectSerializationAdapter.d.ts +0 -1
- package/src/engine/sound/sopra/definition/effect/ReverbEffectSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts +1 -2
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/ParameterStore.d.ts +1 -2
- package/src/engine/sound/sopra/runtime/ParameterStore.d.ts.map +1 -1
- package/src/engine/ui/bindings/DomElementProcessorManager.d.ts +0 -3
- package/src/engine/ui/bindings/DomElementProcessorManager.d.ts.map +1 -1
- package/src/engine/ui/modal/ModalStack.d.ts +3 -3
- package/src/engine/ui/notification/AnimatedObjectEmitter.d.ts +2 -2
- package/src/engine/ui/notification/ViewEmitter.d.ts +2 -2
- package/src/generation/filtering/CellFilter.d.ts +1 -1
- package/src/generation/filtering/CellFilter.d.ts.map +1 -1
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorRandomRotation.d.ts +3 -1
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorRandomRotation.d.ts.map +1 -1
- package/src/generation/markers/actions/probability/MarkerNodeActionSelectWeighted.d.ts +3 -1
- package/src/generation/markers/actions/probability/MarkerNodeActionSelectWeighted.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformRotateRandom.d.ts +3 -1
- package/src/generation/markers/transform/MarkerNodeTransformRotateRandom.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformerRecordPropertyClosure.d.ts +3 -1
- package/src/generation/markers/transform/MarkerNodeTransformerRecordPropertyClosure.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformerRecordUniqueRandomEnum.d.ts +3 -1
- package/src/generation/markers/transform/MarkerNodeTransformerRecordUniqueRandomEnum.d.ts.map +1 -1
- package/src/generation/placement/action/util/CellMatcherWithinAABB.d.ts +1 -1
- package/src/generation/placement/action/util/CellMatcherWithinAABB.d.ts.map +1 -1
- package/src/misc/makeMatcapSelectionOption.d.ts +11 -13
- package/src/view/View.d.ts +313 -30
- package/src/view/asset/AssetLoaderStatusView.d.ts +1 -1
- package/src/view/asset/PreloaderView.d.ts +1 -1
- package/src/view/common/LabelView.d.ts +2 -1
- package/src/view/common/LabelView.d.ts.map +1 -1
- package/src/view/common/ListView.d.ts +2 -2
- package/src/view/common/ListView.d.ts.map +1 -1
- package/src/view/common/TabbedView.d.ts +1 -1
- package/src/view/common/VirtualListView.d.ts +3 -3
- package/src/view/common/VirtualListView.d.ts.map +1 -1
- package/src/view/common/dnd/Draggable.d.ts +2 -2
- package/src/view/common/dnd/DropTarget.d.ts +6 -6
- package/src/view/controller/GuiController.d.ts +1 -2
- package/src/view/controller/GuiController.d.ts.map +1 -1
- package/src/view/controller/controls/BooleanVector3Control.d.ts +1 -2
- package/src/view/controller/controls/BooleanVector3Control.d.ts.map +1 -1
- package/src/view/controller/controls/NativeListController.d.ts +1 -1
- package/src/view/controller/controls/Vector1Control.d.ts +1 -1
- package/src/view/currency/CompositeCurrencyLabelView.d.ts +1 -1
- package/src/view/currency/CurrencyDenominationLabelView.d.ts +1 -1
- package/src/view/elements/BottomLeftResizeHandleView.d.ts +1 -1
- package/src/view/elements/CanvasView.d.ts +1 -2
- package/src/view/elements/CanvasView.d.ts.map +1 -1
- package/src/view/elements/CheckboxView.d.ts +1 -1
- package/src/view/elements/CompassArrowView.d.ts +1 -2
- package/src/view/elements/CompassArrowView.d.ts.map +1 -1
- package/src/view/elements/ConfirmationDialogView.d.ts +1 -1
- package/src/view/elements/DropDownSelectionView.d.ts +1 -1
- package/src/view/elements/EmptyView.d.ts +1 -2
- package/src/view/elements/EmptyView.d.ts.map +1 -1
- package/src/view/elements/Group.d.ts +1 -2
- package/src/view/elements/Group.d.ts.map +1 -1
- package/src/view/elements/MeshPreview.d.ts +1 -1
- package/src/view/elements/SimpleWindow.d.ts +1 -1
- package/src/view/elements/button/ButtonView.d.ts +1 -1
- package/src/view/elements/image/ImageView.d.ts +1 -2
- package/src/view/elements/image/ImageView.d.ts.map +1 -1
- package/src/view/elements/image/SvgImageView.d.ts +1 -1
- package/src/view/elements/label/LabeledValueView.d.ts +1 -1
- package/src/view/elements/navigation/ViewStack.d.ts +1 -8
- package/src/view/elements/navigation/ViewStack.d.ts.map +1 -1
- package/src/view/elements/notify/ToastLogView.d.ts +1 -1
- package/src/view/elements/progress/RectangularPieProgressView.d.ts +1 -1
- package/src/view/elements/progress/SmoothProgressBar.d.ts +1 -1
- package/src/view/elements/progress/segmented/SegmentedResourceBarView.d.ts +1 -1
- package/src/view/elements/radial/RadialMenu.d.ts +1 -1
- package/src/view/elements/radial/RadialMenuElement.d.ts +1 -1
- package/src/view/elements/radial/RadialMenuElementDefinition.d.ts +125 -39
- package/src/view/elements/radial/RadialProgressView.d.ts +1 -1
- package/src/view/elements/radial/RadialText.d.ts +1 -1
- package/src/view/elements/tiles2d/Tile.d.ts +1 -1
- package/src/view/elements/tiles2d/TileGrid.d.ts +4 -5
- package/src/view/elements/tiles2d/TileGrid.d.ts.map +1 -1
- package/src/view/elements/video/VideoView.d.ts +2 -2
- package/src/view/elements/video/VideoView.d.ts.map +1 -1
- package/src/view/elements/windrose/WindRoseDiagram.d.ts +1 -1
- package/src/view/game/achievements/AchievementNotificationView.d.ts +1 -1
- package/src/view/math/FunctionGraphView.d.ts +1 -1
- package/src/view/minimap/Minimap.d.ts +1 -1
- package/src/view/minimap/dom/MinimapCameraView.d.ts +1 -1
- package/src/view/minimap/dom/MinimapMarkerView.d.ts +1 -1
- package/src/view/minimap/dom/MinimapTerrainView.d.ts +1 -1
- package/src/view/task/TaskProgressView.d.ts +1 -1
- package/src/view/tooltip/DomTooltipObserver.d.ts +2 -2
- package/src/view/tooltip/TooltipView.d.ts +1 -1
- package/src/view/tooltip/gml/parser/parseTooltipString.d.ts +1 -0
- package/src/view/tooltip/gml/parser/parseTooltipString.d.ts.map +1 -1
- package/src/view/tooltip/gml/parser/readReferenceToken.d.ts +1 -0
- package/src/view/tooltip/gml/parser/readReferenceToken.d.ts.map +1 -1
- package/src/view/tooltip/gml/parser/readReferenceValueToken.d.ts +2 -1
- package/src/view/tooltip/gml/parser/readReferenceValueToken.d.ts.map +1 -1
- package/src/view/tooltip/gml/parser/readStyleToken.d.ts +1 -0
- package/src/view/tooltip/gml/parser/readStyleToken.d.ts.map +1 -1
- package/editor/ecs/component/TypeSchema.d.ts +0 -38
- package/editor/tools/v2/BlenderCameraOrientationGizmo.d.ts +0 -50
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
# W-TinyLFU benchmarks
|
|
2
|
+
|
|
3
|
+
Benchmarks comparing `CacheWTinylfu` against the LRU `Cache` sibling. They split into **two axes**
|
|
4
|
+
that answer different questions:
|
|
5
|
+
|
|
6
|
+
| Axis | Question | Answered by |
|
|
7
|
+
|------|----------|-------------|
|
|
8
|
+
| **Effectiveness** (hit rate) | What fraction of accesses hit? Determined by the **policy**. | `hitRate.spec.js` |
|
|
9
|
+
| **Performance** (throughput / latency / space) | What does each operation **cost**? Determined by the **implementation**. | everything else |
|
|
10
|
+
|
|
11
|
+
You need both to judge the trade: the policy benchmark tells you what W-TinyLFU *saves you in misses*;
|
|
12
|
+
the performance benchmarks tell you what it *costs per op and in RAM*. The exchange rate between them is
|
|
13
|
+
the cost of a miss in your system (a disk/network miss dwarfs a few hundred ns; a cheap recompute does not).
|
|
14
|
+
|
|
15
|
+
> ⚠️ **About the numbers below.** They're from one dev machine (Node v20.14.0, Windows 11) and microbenchmarks
|
|
16
|
+
> are noisy — absolute nanoseconds wander run-to-run by tens of percent. **Trust the ratios and the shape, not
|
|
17
|
+
> the exact ns.** The ratios are measured *interleaved* (LRU and W-TinyLFU timed back-to-back each round, then
|
|
18
|
+
> the per-round ratios medianed), so they stay stable even as the absolutes drift. Re-run on your own hardware
|
|
19
|
+
> for absolutes.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Running
|
|
24
|
+
|
|
25
|
+
Each benchmark is a **self-executing spec**: a single `<name>.spec.js` that is *both* a runnable Node
|
|
26
|
+
benchmark and a Jest spec. The measurement **only ever runs under plain `node`** — never in-process under
|
|
27
|
+
Jest, because Jest's babel transform badly distorts the timings (see *Why not measure under Jest* below).
|
|
28
|
+
The files are stripped from the published npm package by the `*.spec.js` rule.
|
|
29
|
+
|
|
30
|
+
**To get numbers — run it directly with `node`, from the repo root:**
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
node src/core/cache/wtinylfu/benchmark/<name>.spec.js
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
where `<name>` is one of: `hitRate`, `fillDrain`, `readAll`, `continuousPut`, `mixed`, `latency`, `scaling`,
|
|
37
|
+
`memory`.
|
|
38
|
+
|
|
39
|
+
**Under Jest** each file is a `describe.skip`, so `npx jest` collects but skips them (zero CI cost). Un-skip
|
|
40
|
+
one (flip `describe.skip` → `describe`) and Jest will **spawn a clean `node` child on the file** and check the
|
|
41
|
+
output is sane — you get the same pristine numbers, never the transformed ones.
|
|
42
|
+
|
|
43
|
+
Two flags (for the `node` invocation):
|
|
44
|
+
|
|
45
|
+
- **`--expose-gc`** (a Node flag, goes *before* the script path): lets a benchmark force GC between trials for
|
|
46
|
+
cleaner numbers. Optional for most; **required** for `memory` (it refuses to run without it). *(When run via
|
|
47
|
+
Jest, the child is always spawned with `--expose-gc`.)*
|
|
48
|
+
```bash
|
|
49
|
+
node --expose-gc src/core/cache/wtinylfu/benchmark/fillDrain.spec.js
|
|
50
|
+
```
|
|
51
|
+
- **`HASH=int`** (an env var): the **isolated-hash toggle** — use integer keys + an identity hash instead of
|
|
52
|
+
string keys + `computeStringHash`, to strip string-hashing cost and see pure-policy overhead. Works on
|
|
53
|
+
**every** benchmark.
|
|
54
|
+
```bash
|
|
55
|
+
HASH=int node --expose-gc src/core/cache/wtinylfu/benchmark/readAll.spec.js
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
All workloads are **seeded**, so runs are reproducible. Both caches are always built at **matched capacity**
|
|
59
|
+
(N weight-1 entries) so the comparison is fair.
|
|
60
|
+
|
|
61
|
+
### Layout & file structure
|
|
62
|
+
|
|
63
|
+
Each benchmark lives in its own self-contained file in this `benchmark/` folder as `<name>.spec.js`.
|
|
64
|
+
There is **no shared harness** — each file inlines the scaffolding it needs, so it stands alone (copy it,
|
|
65
|
+
run it, read it without chasing imports). Every file follows the same skeleton:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
1. HEADER what it measures · how to run · how to read it
|
|
69
|
+
2. CONFIG the knobs: CAPACITY / WARMUP / TRIALS / SEED
|
|
70
|
+
3. SCAFFOLDING inlined: clock, rng, matched-capacity factories, measureInterleaved, any workload
|
|
71
|
+
(top-level — pure definitions, safe when Jest imports the file)
|
|
72
|
+
if (under Jest) → spawn a clean `node` on this file + assert the output is sane
|
|
73
|
+
else → the actual benchmark:
|
|
74
|
+
4. WORKLOAD the setup + the timed body (the "arrange")
|
|
75
|
+
5. MEASURE measureInterleaved([LRU, W-TinyLFU], {...}) (the "act")
|
|
76
|
+
6. REPORT formatting + console.log (the "assert" analog — reports, no pass/fail)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The `if (typeof describe === "function")` split is what keeps the measurement out of Jest's transform: under
|
|
80
|
+
Jest only the spawn-branch runs; under `node` only the `else` (measurement) branch runs.
|
|
81
|
+
|
|
82
|
+
A benchmark **reports** numbers; it does not **assert** pass/fail. That's why the measurement always runs
|
|
83
|
+
under plain `node` — the Jest side only launches it and checks the output isn't empty.
|
|
84
|
+
|
|
85
|
+
### Why not measure under Jest
|
|
86
|
+
|
|
87
|
+
Jest runs every file through **babel-jest** before V8 sees it (transpiled to CommonJS, wrapped in Jest's
|
|
88
|
+
module registry). That transformed code JITs differently from the native ES module `node` runs — and the
|
|
89
|
+
overhead is **not uniform**: a cheap op (LRU) takes a bigger proportional hit than a heavier one (W-TinyLFU).
|
|
90
|
+
Measured in-process under Jest, absolutes inflated ~2–12× **and several ratios inverted** — `fill` read
|
|
91
|
+
1.76x → 0.91x, `mixed` 1.48x → 0.90x, `latency p50` 3.0x → 0.86x — i.e. Jest would tell you W-TinyLFU is
|
|
92
|
+
*faster* than LRU on inserts, which is false. It was also ~4× slower wall-clock. So the benchmark body never
|
|
93
|
+
runs under Jest; the spec spawns a clean `node` child and only checks the output is well-formed.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Effectiveness — `hitRate.spec.js`
|
|
98
|
+
|
|
99
|
+
Replays seeded access traces as a read-through cache and reports **hit ratio** (capacity N = 500). This is
|
|
100
|
+
where W-TinyLFU earns its keep.
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
LRU W-TinyLFU Δ
|
|
104
|
+
uniform random (no skew) 10.0% 10.0% 0.0 ← control: no harm
|
|
105
|
+
zipfian skew 0.7 / 0.9 / 1.1 22.7/45.4/70.7 ~equal ±1 ← realistic skew: roughly even
|
|
106
|
+
scan (hot set + one-shot scans) 31.6% 47.0% +15.4 ← scan resistance: the big win
|
|
107
|
+
cyclic loop (size > capacity) LRU pathological case win ← incumbent-favoring ties
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Takeaway:** roughly even with LRU on plain skew, *no worse* on uniform, and a large win on **scan-heavy**
|
|
111
|
+
and **cyclic** workloads (where LRU is catastrophic). That scan resistance is the reason to pay the costs below.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Performance
|
|
116
|
+
|
|
117
|
+
Realistic (string-key) mode, `--expose-gc`, interleaved, median of 100 trials. **Capacities:** the read / fill /
|
|
118
|
+
space and `continuousPut` benchmarks use **N = 65,536**; `mixed` uses a quarter of that (**N = 16,384**,
|
|
119
|
+
keyspace 10×N) so its keyspace can dwarf the cache for realistic misses. All are powers of two — safe under
|
|
120
|
+
churn because the shared HashMap grows headroom at its load factor.
|
|
121
|
+
|
|
122
|
+
### `fillDrain` — insert + teardown
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
fill (put) | LRU ~197 ns/op | W-TinyLFU ~378 ns/op | ~2.1x
|
|
126
|
+
drain (clear) | LRU ~21 ms/call | W-TinyLFU ~11 ms/call | ~0.52x
|
|
127
|
+
drain (remove) | LRU ~259 ns/op | W-TinyLFU ~317 ns/op | ~1.2x
|
|
128
|
+
```
|
|
129
|
+
`fill` is the policy's insert cost (sketch + region routing). The `drain` rows reflect each class's *teardown
|
|
130
|
+
implementation*, not the policy — LRU's `clear()` removes element-by-element while W-TinyLFU bulk-resets, so the
|
|
131
|
+
drain difference is an implementation artifact.
|
|
132
|
+
|
|
133
|
+
### `readAll` — read path (cold vs warm)
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
read cold | LRU ~370 ns/op | W-TinyLFU ~710 ns/op | ~1.9x
|
|
137
|
+
read warm | LRU ~290 ns/op | W-TinyLFU ~490 ns/op | ~1.7x
|
|
138
|
+
```
|
|
139
|
+
Every get is a hit. `cold` = first read-pass (W-TinyLFU's promotion activity); `warm` = settled steady state.
|
|
140
|
+
The premium is modest and one-time, not a recurring spike.
|
|
141
|
+
|
|
142
|
+
### `continuousPut` — sustained load (churn vs update)
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
put churn | LRU ~660 ns/op | W-TinyLFU ~656 ns/op | ~1.0x (new keys → evict + admission duel)
|
|
146
|
+
put update | LRU ~220 ns/op | W-TinyLFU ~447 ns/op | ~2.0x (re-put existing keys → in-place)
|
|
147
|
+
```
|
|
148
|
+
**The key reframe.** W-TinyLFU's extra policy work is roughly **additive (~150–200 ns/op)**, not a multiplier —
|
|
149
|
+
on the cheap `update` baseline it shows as ~2.1×. On `churn` it doesn't show at all: **element pooling** makes
|
|
150
|
+
W-TinyLFU's inserts allocation-free, while LRU still allocates an element per insert, so that saving *offsets*
|
|
151
|
+
the policy overhead and W-TinyLFU draws level with LRU (~1.0×).
|
|
152
|
+
|
|
153
|
+
### `mixed` — realistic blended throughput
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
mixed get/put | LRU ~157 ns/op | W-TinyLFU ~224 ns/op | ~1.4x
|
|
157
|
+
```
|
|
158
|
+
Zipfian read-through (get; on miss, put) over a keyspace 10× the cache — the most representative single number.
|
|
159
|
+
|
|
160
|
+
### `latency` — the tail (percentiles)
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
p50 p99 p999 max
|
|
164
|
+
LRU 200 ~700 ~2400 multi-ms (GC)
|
|
165
|
+
W-TinyLFU 300 ~1300 ~7400 multi-ms (GC)
|
|
166
|
+
```
|
|
167
|
+
Per-op timing during a fill. W-TinyLFU's whole distribution shifts up ~2× — its heavier insert, paid broadly
|
|
168
|
+
rather than in a rare spike. The **max is a multi-ms GC pause on both**, not a policy event — read the policy
|
|
169
|
+
tail in p99/p999, not max.
|
|
170
|
+
|
|
171
|
+
### `memory` — bytes per entry (space) · requires `--expose-gc`
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
fresh fill after churn (steady state)
|
|
175
|
+
LRU | ~144 (heap ~136 + ext ~8) | ~224 (heap ~208 + ext ~16) bytes/entry
|
|
176
|
+
W-TinyLFU | ~164 (heap ~152 + ext ~12) | ~245 (heap ~225 + ext ~20) bytes/entry
|
|
177
|
+
→ fresh, W-TinyLFU vs LRU: +~20 B/entry (+~16 heap = per-element `region` + `keyHash`; +~4 sketch)
|
|
178
|
+
→ churn cost (both caches): +~80 B/entry (the shared HashMap doubling its slab at the load factor)
|
|
179
|
+
```
|
|
180
|
+
~14% more RAM per entry for the **policy** (fresh) — the **W-vs-LRU difference of ~4 B ≈ the sketch**. The
|
|
181
|
+
**churn cost** is the same +~80 for both because it's the *shared HashMap*, not the policy: once the cache is
|
|
182
|
+
full and evicting, the entries slab (and its bins) hits the 0.75 load factor and **doubles** to keep amortised
|
|
183
|
+
O(1) inserts, so a churning cache carries ~2× the entry headroom of a fresh fill.
|
|
184
|
+
|
|
185
|
+
### `scaling` — O(1) check + locality across N
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
N LRU W-TinyLFU ratio
|
|
189
|
+
2,048 62.3 175.6 2.88x
|
|
190
|
+
16,384 102.8 230.0 2.25x
|
|
191
|
+
131,072 379.2 556.8 1.47x
|
|
192
|
+
1,048,576 667.7 911.8 1.37x (warm random read, ns/op)
|
|
193
|
+
```
|
|
194
|
+
Per-op cost rises only ~11× from 2k→1M (not ~500×) → **O(1) confirmed**; the rise is **CPU-cache locality**.
|
|
195
|
+
The ratio **compresses as N grows** — both caches increasingly bottlenecked on RAM latency at large N.
|
|
196
|
+
|
|
197
|
+
### `HASH=int` — pure-policy overhead (cross-cutting)
|
|
198
|
+
|
|
199
|
+
Run any benchmark with `HASH=int` to strip string hashing. Example (read warm):
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
realistic isolated (HASH=int)
|
|
203
|
+
LRU ~290 ns/op ~151 ns/op
|
|
204
|
+
W-TinyLFU ~490 ns/op ~338 ns/op
|
|
205
|
+
ratio ~1.7x ~2.3x
|
|
206
|
+
```
|
|
207
|
+
Reveals that **string hashing is a large *shared* cost** (~140 ns of LRU's warm read was just `Map` string
|
|
208
|
+
hashing, paid by both caches). Removing it shrinks the baseline, so the *same* fixed policy overhead becomes a
|
|
209
|
+
bigger multiple.
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Headline findings
|
|
214
|
+
|
|
215
|
+
1. **Cost is a roughly fixed additive overhead, not a multiplier** — ~100–300 ns/op of extra work (sketch
|
|
216
|
+
increment + region bookkeeping), so the "Nx" you see depends mostly on how cheap the underlying op already was.
|
|
217
|
+
2. **O(1) and predictable** — confirmed across 3 orders of magnitude; the only growth is shared CPU-cache locality.
|
|
218
|
+
3. **No tail surprises** — the overhead is spread across the whole distribution (median through p999), not a rare
|
|
219
|
+
spike; the worst-case `max` is a GC pause both caches share.
|
|
220
|
+
4. **~14% more memory per entry** — the per-element `region` + `keyHash` fields plus the O(N) frequency sketch
|
|
221
|
+
(plus a shared ~+80 B/entry once any cache is full and churning — the HashMap doubling its slab, not policy-specific).
|
|
222
|
+
5. **Bought against scan resistance** — the effectiveness axis shows large hit-rate wins on scan/cyclic workloads,
|
|
223
|
+
while staying roughly even with LRU on plain skew and doing no harm on uniform.
|
|
224
|
+
|
|
225
|
+
**The trade in one line:** ~150–200 ns/op and ~14% RAM, predictable and O(1), in exchange for scan-resistant,
|
|
226
|
+
frequency-aware retention — worth it exactly when your misses are expensive and your traffic isn't purely uniform.
|
|
227
|
+
|
|
228
|
+
## Methodology notes (why the numbers are trustworthy)
|
|
229
|
+
|
|
230
|
+
- **Pre-generated keys** outside the timed region (else you measure string allocation, not the cache).
|
|
231
|
+
- **Warmup** discarded so the JIT has compiled the hot path (we measure optimized machine code, not the cold
|
|
232
|
+
interpreter).
|
|
233
|
+
- **Interleaved trials** — every round times LRU and W-TinyLFU back-to-back, and the ratio is the **median of
|
|
234
|
+
the per-round ratios** (paired). So machine drift within a round hits both equally and cancels in the ratio.
|
|
235
|
+
- **Median of trials** (not mean) to shrug off the occasional GC pause.
|
|
236
|
+
- **Selective `forceGc`** — forced for low-allocation bodies (reads, teardown) where a stray pause is pure noise;
|
|
237
|
+
*not* for allocation-heavy bodies (fill, churn) where GC is part of the real cost.
|
|
238
|
+
- **Result sinks** so pure-read loops aren't deleted by dead-code elimination.
|
|
239
|
+
- **Matched capacity & shared seeded workloads** so LRU and W-TinyLFU face identical conditions.
|
|
240
|
+
- **Measured under `node`, never in-process under a test runner** — a transform (babel/esbuild) distorts both
|
|
241
|
+
the absolute ns *and* the ratio (a cheap op suffers proportionally more overhead). Measured under Jest
|
|
242
|
+
in-process, several ratios *inverted* (e.g. `fill` read 1.76x → 0.91x). That's why the self-executing spec
|
|
243
|
+
spawns a clean `node` child instead of measuring inside Jest — see *Why not measure under Jest*.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure decision predicates for the W-TinyLFU policy.
|
|
3
|
+
*
|
|
4
|
+
* No state: weights and frequencies in, verdicts out. This is the policy's "functional core" —
|
|
5
|
+
* what makes the cache W-TinyLFU rather than a generic cache — extracted so each decision can be
|
|
6
|
+
* unit-tested directly with plain numbers, without observing element placement.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Total weight Main (Trial + Protected) is allowed to hold.
|
|
10
|
+
* @param {number} maxWeight total cache weight budget
|
|
11
|
+
* @param {number} windowMaxWeight Window region's weight cap
|
|
12
|
+
* @returns {number}
|
|
13
|
+
*/
|
|
14
|
+
export function mainCapacity(maxWeight: number, windowMaxWeight: number): number;
|
|
15
|
+
/**
|
|
16
|
+
* Does Main exceed its budget once `extraWeight` is added? Counts current Trial occupancy.
|
|
17
|
+
* @param {number} trialWeight
|
|
18
|
+
* @param {number} protectedWeight
|
|
19
|
+
* @param {number} extraWeight
|
|
20
|
+
* @param {number} mainCap
|
|
21
|
+
* @returns {boolean}
|
|
22
|
+
*/
|
|
23
|
+
export function exceedsMainWeight(trialWeight: number, protectedWeight: number, extraWeight: number, mainCap: number): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Could `weight` never fit in Main, even with Trial fully evicted? Only Protected's live weight is
|
|
26
|
+
* the immovable floor (Trial is fully evictable). Distinct from {@link exceedsMainWeight}, which
|
|
27
|
+
* counts current Trial occupancy.
|
|
28
|
+
* @param {number} protectedWeight
|
|
29
|
+
* @param {number} weight
|
|
30
|
+
* @param {number} mainCap
|
|
31
|
+
* @returns {boolean}
|
|
32
|
+
*/
|
|
33
|
+
export function cannotFitMain(protectedWeight: number, weight: number, mainCap: number): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Is `weight` too big to ever fit in Window, even when empty? (ceiling test, ignores occupancy)
|
|
36
|
+
* @param {number} weight
|
|
37
|
+
* @param {number} windowMaxWeight
|
|
38
|
+
* @returns {boolean}
|
|
39
|
+
*/
|
|
40
|
+
export function tooBigForWindow(weight: number, windowMaxWeight: number): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Decide where a new element of `weight` goes on admission:
|
|
43
|
+
* - REJECT: can never fit Main, even with Trial fully evicted;
|
|
44
|
+
* - TRIAL: fits Main but too big for Window, so goes straight to the admission duel;
|
|
45
|
+
* - WINDOW: normal case.
|
|
46
|
+
* @param {number} weight
|
|
47
|
+
* @param {number} protectedWeight live Protected occupancy (the immovable floor)
|
|
48
|
+
* @param {number} windowMaxWeight Window's weight cap
|
|
49
|
+
* @param {number} mainCap Main's weight budget
|
|
50
|
+
* @returns {number} one of {@link AdmissionRoute}
|
|
51
|
+
*/
|
|
52
|
+
export function classifyAdmission(weight: number, protectedWeight: number, windowMaxWeight: number, mainCap: number): number;
|
|
53
|
+
/**
|
|
54
|
+
* Does the admission candidate beat the victim on frequency? Ties favour the incumbent (strict >).
|
|
55
|
+
* @param {number} candidateFrequency
|
|
56
|
+
* @param {number} victimFrequency
|
|
57
|
+
* @returns {boolean}
|
|
58
|
+
*/
|
|
59
|
+
export function winsAdmissionDuel(candidateFrequency: number, victimFrequency: number): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Should a Trial element be promoted to Protected? It must be hot enough AND fit Protected — an
|
|
62
|
+
* element with weight > protectedMaxWeight is a valid Trial resident that stays pinned (never
|
|
63
|
+
* promotable). So this is the full Trial→Protected transition gate.
|
|
64
|
+
* @param {number} frequency
|
|
65
|
+
* @param {number} promotionThreshold
|
|
66
|
+
* @param {number} weight
|
|
67
|
+
* @param {number} protectedMaxWeight
|
|
68
|
+
* @returns {boolean}
|
|
69
|
+
*/
|
|
70
|
+
export function shouldPromoteToProtected(frequency: number, promotionThreshold: number, weight: number, protectedMaxWeight: number): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Where a newly-admitted element should be routed.
|
|
73
|
+
*/
|
|
74
|
+
export type AdmissionRoute = number;
|
|
75
|
+
export namespace AdmissionRoute {
|
|
76
|
+
let REJECT: number;
|
|
77
|
+
let WINDOW: number;
|
|
78
|
+
let TRIAL: number;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=wtinylfuDecisions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wtinylfuDecisions.d.ts","sourceRoot":"","sources":["../../../../../src/core/cache/wtinylfu/wtinylfuDecisions.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AACH,wCAJW,MAAM,mBACN,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;;GAOG;AACH,+CANW,MAAM,mBACN,MAAM,eACN,MAAM,WACN,MAAM,GACJ,OAAO,CAKnB;AAED;;;;;;;;GAQG;AACH,+CALW,MAAM,UACN,MAAM,WACN,MAAM,GACJ,OAAO,CAKnB;AAED;;;;;GAKG;AACH,wCAJW,MAAM,mBACN,MAAM,GACJ,OAAO,CAInB;AAQD;;;;;;;;;;GAUG;AACH,0CANW,MAAM,mBACN,MAAM,mBACN,MAAM,WACN,MAAM,GACJ,MAAM,CAMlB;AAED;;;;;GAKG;AACH,sDAJW,MAAM,mBACN,MAAM,GACJ,OAAO,CAInB;AAED;;;;;;;;;GASG;AACH,oDANW,MAAM,sBACN,MAAM,UACN,MAAM,sBACN,MAAM,GACJ,OAAO,CAKnB;;;;6BA5CS,MAAM"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure decision predicates for the W-TinyLFU policy.
|
|
3
|
+
*
|
|
4
|
+
* No state: weights and frequencies in, verdicts out. This is the policy's "functional core" —
|
|
5
|
+
* what makes the cache W-TinyLFU rather than a generic cache — extracted so each decision can be
|
|
6
|
+
* unit-tested directly with plain numbers, without observing element placement.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Total weight Main (Trial + Protected) is allowed to hold.
|
|
11
|
+
* @param {number} maxWeight total cache weight budget
|
|
12
|
+
* @param {number} windowMaxWeight Window region's weight cap
|
|
13
|
+
* @returns {number}
|
|
14
|
+
*/
|
|
15
|
+
export function mainCapacity(maxWeight, windowMaxWeight) {
|
|
16
|
+
return maxWeight - windowMaxWeight;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Does Main exceed its budget once `extraWeight` is added? Counts current Trial occupancy.
|
|
21
|
+
* @param {number} trialWeight
|
|
22
|
+
* @param {number} protectedWeight
|
|
23
|
+
* @param {number} extraWeight
|
|
24
|
+
* @param {number} mainCap
|
|
25
|
+
* @returns {boolean}
|
|
26
|
+
*/
|
|
27
|
+
export function exceedsMainWeight(trialWeight, protectedWeight, extraWeight, mainCap) {
|
|
28
|
+
const projectedMainWeight = trialWeight + protectedWeight + extraWeight
|
|
29
|
+
return projectedMainWeight > mainCap;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Could `weight` never fit in Main, even with Trial fully evicted? Only Protected's live weight is
|
|
34
|
+
* the immovable floor (Trial is fully evictable). Distinct from {@link exceedsMainWeight}, which
|
|
35
|
+
* counts current Trial occupancy.
|
|
36
|
+
* @param {number} protectedWeight
|
|
37
|
+
* @param {number} weight
|
|
38
|
+
* @param {number} mainCap
|
|
39
|
+
* @returns {boolean}
|
|
40
|
+
*/
|
|
41
|
+
export function cannotFitMain(protectedWeight, weight, mainCap) {
|
|
42
|
+
const requiredMainWeight = protectedWeight + weight;
|
|
43
|
+
return requiredMainWeight > mainCap;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Is `weight` too big to ever fit in Window, even when empty? (ceiling test, ignores occupancy)
|
|
48
|
+
* @param {number} weight
|
|
49
|
+
* @param {number} windowMaxWeight
|
|
50
|
+
* @returns {boolean}
|
|
51
|
+
*/
|
|
52
|
+
export function tooBigForWindow(weight, windowMaxWeight) {
|
|
53
|
+
return weight > windowMaxWeight;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Where a newly-admitted element should be routed.
|
|
58
|
+
* @enum {number}
|
|
59
|
+
*/
|
|
60
|
+
export const AdmissionRoute = { REJECT: 0, WINDOW: 1, TRIAL: 2 };
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Decide where a new element of `weight` goes on admission:
|
|
64
|
+
* - REJECT: can never fit Main, even with Trial fully evicted;
|
|
65
|
+
* - TRIAL: fits Main but too big for Window, so goes straight to the admission duel;
|
|
66
|
+
* - WINDOW: normal case.
|
|
67
|
+
* @param {number} weight
|
|
68
|
+
* @param {number} protectedWeight live Protected occupancy (the immovable floor)
|
|
69
|
+
* @param {number} windowMaxWeight Window's weight cap
|
|
70
|
+
* @param {number} mainCap Main's weight budget
|
|
71
|
+
* @returns {number} one of {@link AdmissionRoute}
|
|
72
|
+
*/
|
|
73
|
+
export function classifyAdmission(weight, protectedWeight, windowMaxWeight, mainCap) {
|
|
74
|
+
if (cannotFitMain(protectedWeight, weight, mainCap)) return AdmissionRoute.REJECT;
|
|
75
|
+
if (tooBigForWindow(weight, windowMaxWeight)) return AdmissionRoute.TRIAL;
|
|
76
|
+
return AdmissionRoute.WINDOW;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Does the admission candidate beat the victim on frequency? Ties favour the incumbent (strict >).
|
|
81
|
+
* @param {number} candidateFrequency
|
|
82
|
+
* @param {number} victimFrequency
|
|
83
|
+
* @returns {boolean}
|
|
84
|
+
*/
|
|
85
|
+
export function winsAdmissionDuel(candidateFrequency, victimFrequency) {
|
|
86
|
+
return candidateFrequency > victimFrequency;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Should a Trial element be promoted to Protected? It must be hot enough AND fit Protected — an
|
|
91
|
+
* element with weight > protectedMaxWeight is a valid Trial resident that stays pinned (never
|
|
92
|
+
* promotable). So this is the full Trial→Protected transition gate.
|
|
93
|
+
* @param {number} frequency
|
|
94
|
+
* @param {number} promotionThreshold
|
|
95
|
+
* @param {number} weight
|
|
96
|
+
* @param {number} protectedMaxWeight
|
|
97
|
+
* @returns {boolean}
|
|
98
|
+
*/
|
|
99
|
+
export function shouldPromoteToProtected(frequency, promotionThreshold, weight, protectedMaxWeight) {
|
|
100
|
+
return (frequency > promotionThreshold)
|
|
101
|
+
&& (weight <= protectedMaxWeight);
|
|
102
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RingBuffer.d.ts","sourceRoot":"","sources":["../../../../src/core/collection/RingBuffer.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH;IACI;;OAEG;IACH,kBAFW,MAAM,EAoChB;IA7BG;;;OAGG;IACH,MAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,MAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,MAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,OAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,MAFU,CAAC,EAAE,CAEc;IAG/B;;;OAGG;IACH,iBAFW,MAAM,QAwBhB;IAED;;;OAGG;IACH,WAFY,CAAC,
|
|
1
|
+
{"version":3,"file":"RingBuffer.d.ts","sourceRoot":"","sources":["../../../../src/core/collection/RingBuffer.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH;IACI;;OAEG;IACH,kBAFW,MAAM,EAoChB;IA7BG;;;OAGG;IACH,MAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,MAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,MAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,OAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,MAFU,CAAC,EAAE,CAEc;IAG/B;;;OAGG;IACH,iBAFW,MAAM,QAwBhB;IAED;;;OAGG;IACH,WAFY,CAAC,CAKZ;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,CAAC,CAYb;IAED,cAIC;IAED;;;OAGG;IACH,cAFW,CAAC,QAuBX;IAED;;;OAGG;IACH,SAFa,CAAC,GAAC,SAAS,CAcvB;IAED;;;OAGG;IACH,4BAFW,MAAM,QA8BhB;IAED;;;;;OAKG;IACH,2BAJoB,CAAC,KAAE,OAAO,kBAEjB,CAAC,GAAC,SAAS,CAsBvB;IAED;;;;OAIG;IACH,wBAHoB,CAAC,+BAmBpB;IAED;;;;OAIG;IACH,gBAHW,CAAC,GACC,OAAO,CAgBnB;CACJ"}
|
|
@@ -80,7 +80,8 @@ export class RingBuffer {
|
|
|
80
80
|
* @return {V}
|
|
81
81
|
*/
|
|
82
82
|
getHead() {
|
|
83
|
-
|
|
83
|
+
// delegate so the head-1 index wraps correctly when the write cursor sits at slot 0
|
|
84
|
+
return this.getFromHead(0);
|
|
84
85
|
}
|
|
85
86
|
|
|
86
87
|
/**
|
|
@@ -242,7 +243,18 @@ export class RingBuffer {
|
|
|
242
243
|
* @returns {boolean}
|
|
243
244
|
*/
|
|
244
245
|
contains(value) {
|
|
245
|
-
//
|
|
246
|
-
|
|
246
|
+
// scan only live slots — a shift()-ed element is still physically present in the backing array
|
|
247
|
+
const count = this.count;
|
|
248
|
+
const size = this.size;
|
|
249
|
+
const tail = this.tail;
|
|
250
|
+
const data = this.data;
|
|
251
|
+
|
|
252
|
+
for (let i = 0; i < count; i++) {
|
|
253
|
+
if (data[(tail + i) % size] === value) {
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
return false;
|
|
247
259
|
}
|
|
248
260
|
}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copy data from one array to another
|
|
3
|
+
* Follows Java System.arraycopy interface
|
|
4
|
+
* @template T
|
|
5
|
+
* @param {T[]|ArrayLike<T>|TypedArray|Uint8ClampedArray|Uint8Array|Uint32Array|Int32Array|Float32Array|Float64Array} source The source array
|
|
6
|
+
* @param {number} source_position Starting position where to copy from inside the source array
|
|
7
|
+
* @param {T[]|ArrayLike<T>|TypedArray|Uint8ClampedArray|Uint8Array|Uint32Array|Int32Array|Float32Array|Float64Array} destination The destination array
|
|
8
|
+
* @param {number} destination_position Starting position where to copy to inside the destination array
|
|
9
|
+
* @param {number} length How many elements should be copied
|
|
10
|
+
*/
|
|
11
|
+
export function array_copy<T>(source: any, source_position: number, destination: any, destination_position: number, length: number): void;
|
|
12
|
+
//# sourceMappingURL=array_copy.d.ts.map
|
|
@@ -1 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @template T
|
|
3
|
+
* @param {T[]} array
|
|
4
|
+
* @param {function(T):number} elementHashFunction
|
|
5
|
+
* @param {*} [thisArg]
|
|
6
|
+
* @returns {number}
|
|
7
|
+
*/
|
|
8
|
+
export function computeHashArray<T>(array: T[], elementHashFunction: (arg0: T) => number, thisArg?: any): number;
|
|
9
|
+
//# sourceMappingURL=computeHashArray.d.ts.map
|
|
@@ -1 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param {Array|Uint8Array|Float32Array} a
|
|
4
|
+
* @param {Array|Uint8Array|Float32Array} b
|
|
5
|
+
* @returns {boolean}
|
|
6
|
+
*/
|
|
7
|
+
export function isArrayEqualStrict(a: any[] | Uint8Array | Float32Array, b: any[] | Uint8Array | Float32Array): boolean;
|
|
8
|
+
//# sourceMappingURL=isArrayEqualStrict.d.ts.map
|
|
@@ -1 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @template T
|
|
3
|
+
* @param {T[]} a
|
|
4
|
+
* @param {T[]} b
|
|
5
|
+
* @param {function(T,T):boolean} elements_equal
|
|
6
|
+
* @param {*} [element_equal_context]
|
|
7
|
+
* @returns {boolean}
|
|
8
|
+
*/
|
|
9
|
+
export function isArraysEqualWithComparator<T>(a: T[], b: T[], elements_equal: (arg0: T, arg1: T) => boolean, element_equal_context?: any): boolean;
|
|
10
|
+
//# sourceMappingURL=isArraysEqualWithComparator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayIteratorRandom.d.ts","sourceRoot":"","sources":["../../../../../../src/core/collection/array/iterator/ArrayIteratorRandom.js"],"names":[],"mappings":"AAIA;IACI,cAOC;IAJG,YAAY;IACZ,kBAAoB;IAEpB
|
|
1
|
+
{"version":3,"file":"ArrayIteratorRandom.d.ts","sourceRoot":"","sources":["../../../../../../src/core/collection/array/iterator/ArrayIteratorRandom.js"],"names":[],"mappings":"AAIA;IACI,cAOC;IAJG,YAAY;IACZ,kBAAoB;IAEpB;;MAA+B;IAGnC;;;OAGG;IACH,WAFW,MAAM,QAIhB;IAED,4BAYC;IAED,wBAgBC;CACJ;sCAnDqC,4BAA4B"}
|