@codexo/exojs 0.7.11 → 0.7.12
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/CHANGELOG.md +108 -0
- package/dist/esm/animation/Tween.d.ts +60 -1
- package/dist/esm/animation/Tween.js +60 -1
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +10 -0
- package/dist/esm/animation/TweenManager.js +10 -0
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/types.d.ts +15 -0
- package/dist/esm/animation/types.js +6 -0
- package/dist/esm/animation/types.js.map +1 -1
- package/dist/esm/audio/AbstractMedia.d.ts +11 -0
- package/dist/esm/audio/AbstractMedia.js +10 -0
- package/dist/esm/audio/AbstractMedia.js.map +1 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +21 -0
- package/dist/esm/audio/AudioAnalyser.js +16 -0
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +37 -0
- package/dist/esm/audio/AudioBus.js +36 -0
- package/dist/esm/audio/AudioBus.js.map +1 -1
- package/dist/esm/audio/AudioFilter.d.ts +7 -0
- package/dist/esm/audio/AudioFilter.js +6 -0
- package/dist/esm/audio/AudioFilter.js.map +1 -1
- package/dist/esm/audio/AudioListener.d.ts +19 -0
- package/dist/esm/audio/AudioListener.js +11 -0
- package/dist/esm/audio/AudioListener.js.map +1 -1
- package/dist/esm/audio/AudioManager.d.ts +37 -0
- package/dist/esm/audio/AudioManager.js +37 -0
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/BeatDetector.d.ts +21 -0
- package/dist/esm/audio/BeatDetector.js +21 -0
- package/dist/esm/audio/BeatDetector.js.map +1 -1
- package/dist/esm/audio/Media.d.ts +11 -0
- package/dist/esm/audio/Music.d.ts +12 -0
- package/dist/esm/audio/Music.js +12 -0
- package/dist/esm/audio/Music.js.map +1 -1
- package/dist/esm/audio/Sound.d.ts +25 -0
- package/dist/esm/audio/Sound.js +18 -0
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/audio-context.d.ts +48 -0
- package/dist/esm/audio/audio-context.js +48 -5
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/filters/ChorusFilter.d.ts +5 -0
- package/dist/esm/audio/filters/ChorusFilter.js +4 -0
- package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +12 -0
- package/dist/esm/audio/filters/CompressorFilter.js +11 -0
- package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
- package/dist/esm/audio/filters/DelayFilter.d.ts +11 -0
- package/dist/esm/audio/filters/DelayFilter.js +10 -0
- package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts +13 -0
- package/dist/esm/audio/filters/DuckingFilter.js +12 -0
- package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +20 -0
- package/dist/esm/audio/filters/EqualizerFilter.js +40 -0
- package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
- package/dist/esm/audio/filters/GranularFilter.d.ts +6 -0
- package/dist/esm/audio/filters/GranularFilter.js +6 -0
- package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.d.ts +10 -0
- package/dist/esm/audio/filters/HighpassFilter.js +9 -0
- package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/LowpassFilter.d.ts +10 -0
- package/dist/esm/audio/filters/LowpassFilter.js +9 -0
- package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +2 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js +2 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
- package/dist/esm/audio/filters/ReverbFilter.d.ts +12 -0
- package/dist/esm/audio/filters/ReverbFilter.js +11 -0
- package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts +11 -0
- package/dist/esm/audio/filters/VocoderFilter.js +11 -0
- package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
- package/dist/esm/audio/filters/WorkletFilter.d.ts +6 -1
- package/dist/esm/audio/filters/WorkletFilter.js +6 -1
- package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
- package/dist/esm/core/Application.d.ts +63 -0
- package/dist/esm/core/Application.js +61 -0
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Bounds.d.ts +23 -0
- package/dist/esm/core/Bounds.js +23 -0
- package/dist/esm/core/Bounds.js.map +1 -1
- package/dist/esm/core/Clock.d.ts +21 -0
- package/dist/esm/core/Clock.js +21 -0
- package/dist/esm/core/Clock.js.map +1 -1
- package/dist/esm/core/Color.d.ts +35 -0
- package/dist/esm/core/Color.js +35 -0
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +46 -0
- package/dist/esm/core/Scene.js +27 -0
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +62 -0
- package/dist/esm/core/SceneManager.js +49 -0
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +31 -0
- package/dist/esm/core/SceneNode.js +31 -0
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.d.ts +44 -0
- package/dist/esm/core/Signal.js +39 -0
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Time.d.ts +21 -0
- package/dist/esm/core/Time.js +21 -0
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/Timer.d.ts +7 -0
- package/dist/esm/core/Timer.js +7 -0
- package/dist/esm/core/Timer.js.map +1 -1
- package/dist/esm/core/capabilities.d.ts +12 -0
- package/dist/esm/core/capabilities.js +12 -0
- package/dist/esm/core/capabilities.js.map +1 -1
- package/dist/esm/core/types.d.ts +37 -0
- package/dist/esm/core/utils.d.ts +48 -0
- package/dist/esm/core/utils.js +48 -0
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/BoundingBoxesLayer.d.ts +8 -0
- package/dist/esm/debug/BoundingBoxesLayer.js +8 -0
- package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
- package/dist/esm/debug/DebugLayer.d.ts +16 -3
- package/dist/esm/debug/DebugLayer.js +11 -3
- package/dist/esm/debug/DebugLayer.js.map +1 -1
- package/dist/esm/debug/DebugOverlay.d.ts +11 -0
- package/dist/esm/debug/DebugOverlay.js +6 -0
- package/dist/esm/debug/DebugOverlay.js.map +1 -1
- package/dist/esm/debug/HitTestLayer.d.ts +9 -0
- package/dist/esm/debug/HitTestLayer.js +9 -0
- package/dist/esm/debug/HitTestLayer.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.d.ts +17 -1
- package/dist/esm/debug/PerformanceLayer.js +18 -0
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.d.ts +8 -0
- package/dist/esm/debug/PointerStackLayer.js +10 -2
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js +7 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.d.ts +9 -0
- package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
- package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +48 -0
- package/dist/esm/input/Gamepad.js +43 -0
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadChannels.d.ts +8 -0
- package/dist/esm/input/GamepadChannels.js +8 -0
- package/dist/esm/input/GamepadChannels.js.map +1 -1
- package/dist/esm/input/GamepadControl.d.ts +18 -0
- package/dist/esm/input/GamepadControl.js +13 -0
- package/dist/esm/input/GamepadControl.js.map +1 -1
- package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
- package/dist/esm/input/GamepadDefinitions.js +40 -1
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GamepadMapping.d.ts +32 -2
- package/dist/esm/input/GamepadMapping.js +24 -0
- package/dist/esm/input/GamepadMapping.js.map +1 -1
- package/dist/esm/input/GamepadPromptLayouts.d.ts +32 -1
- package/dist/esm/input/GamepadPromptLayouts.js +25 -1
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
- package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +10 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js +10 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +11 -2
- package/dist/esm/input/GestureRecognizer.js +11 -2
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/Input.d.ts +24 -0
- package/dist/esm/input/Input.js +22 -0
- package/dist/esm/input/Input.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +33 -0
- package/dist/esm/input/InputManager.js +33 -0
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionEvent.d.ts +13 -0
- package/dist/esm/input/InteractionEvent.js +8 -0
- package/dist/esm/input/InteractionEvent.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +33 -4
- package/dist/esm/input/InteractionManager.js +33 -4
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +9 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.js +9 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
- package/dist/esm/input/JoyConRightGamepadMapping.d.ts +9 -0
- package/dist/esm/input/JoyConRightGamepadMapping.js +9 -0
- package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.d.ts +8 -0
- package/dist/esm/input/PlayStationGamepadMapping.js +8 -0
- package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
- package/dist/esm/input/Pointer.d.ts +22 -0
- package/dist/esm/input/Pointer.js +22 -0
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.d.ts +8 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js +8 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.d.ts +9 -0
- package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
- package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
- package/dist/esm/input/XboxGamepadMapping.d.ts +8 -0
- package/dist/esm/input/XboxGamepadMapping.js +8 -0
- package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
- package/dist/esm/input/types.d.ts +20 -0
- package/dist/esm/input/types.js +20 -0
- package/dist/esm/input/types.js.map +1 -1
- package/dist/esm/math/AbstractVector.d.ts +83 -0
- package/dist/esm/math/AbstractVector.js +83 -0
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts +32 -0
- package/dist/esm/math/Circle.js +34 -2
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/CircleLike.d.ts +1 -0
- package/dist/esm/math/Collision.d.ts +39 -0
- package/dist/esm/math/Collision.js +5 -0
- package/dist/esm/math/Collision.js.map +1 -1
- package/dist/esm/math/Ellipse.d.ts +11 -0
- package/dist/esm/math/Ellipse.js +18 -2
- package/dist/esm/math/Ellipse.js.map +1 -1
- package/dist/esm/math/EllipseLike.d.ts +3 -0
- package/dist/esm/math/Flags.d.ts +31 -0
- package/dist/esm/math/Flags.js +31 -0
- package/dist/esm/math/Flags.js.map +1 -1
- package/dist/esm/math/Interval.d.ts +15 -0
- package/dist/esm/math/Interval.js +15 -0
- package/dist/esm/math/Interval.js.map +1 -1
- package/dist/esm/math/Line.d.ts +17 -1
- package/dist/esm/math/Line.js +17 -1
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/LineLike.d.ts +1 -0
- package/dist/esm/math/Matrix.d.ts +44 -3
- package/dist/esm/math/Matrix.js +44 -3
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableSize.d.ts +7 -0
- package/dist/esm/math/ObservableSize.js +7 -0
- package/dist/esm/math/ObservableSize.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +9 -0
- package/dist/esm/math/ObservableVector.js +9 -0
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/PointLike.d.ts +1 -0
- package/dist/esm/math/PolarVector.d.ts +15 -0
- package/dist/esm/math/PolarVector.js +16 -1
- package/dist/esm/math/PolarVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +20 -0
- package/dist/esm/math/Polygon.js +20 -0
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/PolygonLike.d.ts +4 -0
- package/dist/esm/math/Quadtree.d.ts +40 -3
- package/dist/esm/math/Quadtree.js +39 -3
- package/dist/esm/math/Quadtree.js.map +1 -1
- package/dist/esm/math/Random.d.ts +25 -0
- package/dist/esm/math/Random.js +25 -0
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +15 -0
- package/dist/esm/math/Rectangle.js +17 -2
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/RectangleLike.d.ts +1 -0
- package/dist/esm/math/Segment.d.ts +7 -0
- package/dist/esm/math/Segment.js +7 -0
- package/dist/esm/math/Segment.js.map +1 -1
- package/dist/esm/math/ShapeLike.d.ts +6 -0
- package/dist/esm/math/Size.d.ts +9 -0
- package/dist/esm/math/Size.js +9 -0
- package/dist/esm/math/Size.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +16 -0
- package/dist/esm/math/Vector.js +16 -0
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +47 -1
- package/dist/esm/math/collision-detection.js +228 -17
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts +23 -0
- package/dist/esm/math/collision-primitives.js +23 -0
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +42 -0
- package/dist/esm/math/geometry.js +37 -0
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/utils.d.ts +41 -0
- package/dist/esm/math/utils.js +41 -0
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/particles/Particle.d.ts +37 -0
- package/dist/esm/particles/Particle.js +37 -0
- package/dist/esm/particles/Particle.js.map +1 -1
- package/dist/esm/particles/ParticleProperties.d.ts +15 -0
- package/dist/esm/particles/ParticleSystem.d.ts +69 -0
- package/dist/esm/particles/ParticleSystem.js +69 -0
- package/dist/esm/particles/ParticleSystem.js.map +1 -1
- package/dist/esm/particles/affectors/ColorAffector.d.ts +13 -0
- package/dist/esm/particles/affectors/ColorAffector.js +13 -0
- package/dist/esm/particles/affectors/ColorAffector.js.map +1 -1
- package/dist/esm/particles/affectors/ForceAffector.d.ts +11 -0
- package/dist/esm/particles/affectors/ForceAffector.js +11 -0
- package/dist/esm/particles/affectors/ForceAffector.js.map +1 -1
- package/dist/esm/particles/affectors/ParticleAffector.d.ts +13 -0
- package/dist/esm/particles/affectors/ScaleAffector.d.ts +10 -0
- package/dist/esm/particles/affectors/ScaleAffector.js +10 -0
- package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -1
- package/dist/esm/particles/affectors/TorqueAffector.d.ts +11 -0
- package/dist/esm/particles/affectors/TorqueAffector.js +11 -0
- package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -1
- package/dist/esm/particles/emitters/ParticleEmitter.d.ts +13 -0
- package/dist/esm/particles/emitters/ParticleOptions.d.ts +16 -0
- package/dist/esm/particles/emitters/ParticleOptions.js +16 -0
- package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -1
- package/dist/esm/particles/emitters/UniversalEmitter.d.ts +23 -0
- package/dist/esm/particles/emitters/UniversalEmitter.js +23 -0
- package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -1
- package/dist/esm/rendering/CallbackRenderPass.d.ts +12 -0
- package/dist/esm/rendering/CallbackRenderPass.js +12 -0
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +43 -0
- package/dist/esm/rendering/Container.js +43 -0
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +22 -0
- package/dist/esm/rendering/Drawable.js +22 -0
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/RenderBackend.d.ts +13 -0
- package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
- package/dist/esm/rendering/RenderBackendType.js +4 -0
- package/dist/esm/rendering/RenderBackendType.js.map +1 -1
- package/dist/esm/rendering/RenderNode.d.ts +18 -0
- package/dist/esm/rendering/RenderNode.js +18 -0
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderPass.d.ts +8 -0
- package/dist/esm/rendering/RenderStats.d.ts +19 -0
- package/dist/esm/rendering/RenderStats.js +7 -0
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RenderTarget.d.ts +17 -0
- package/dist/esm/rendering/RenderTarget.js +17 -0
- package/dist/esm/rendering/RenderTarget.js.map +1 -1
- package/dist/esm/rendering/RenderTargetPass.d.ts +11 -0
- package/dist/esm/rendering/RenderTargetPass.js +7 -0
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
- package/dist/esm/rendering/Renderer.d.ts +15 -0
- package/dist/esm/rendering/RendererRegistry.d.ts +7 -0
- package/dist/esm/rendering/RendererRegistry.js +7 -0
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +67 -2
- package/dist/esm/rendering/View.js +57 -0
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/BlurFilter.d.ts +9 -0
- package/dist/esm/rendering/filters/BlurFilter.js +8 -0
- package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
- package/dist/esm/rendering/filters/ColorFilter.d.ts +7 -0
- package/dist/esm/rendering/filters/ColorFilter.js +7 -0
- package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
- package/dist/esm/rendering/filters/Filter.d.ts +23 -0
- package/dist/esm/rendering/filters/Filter.js +20 -0
- package/dist/esm/rendering/filters/Filter.js.map +1 -1
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +5 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +5 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +5 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/mesh/Mesh.d.ts +2 -0
- package/dist/esm/rendering/mesh/Mesh.js +2 -0
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +34 -0
- package/dist/esm/rendering/primitives/Graphics.js +34 -0
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/shader/Shader.d.ts +36 -0
- package/dist/esm/rendering/shader/Shader.js +26 -0
- package/dist/esm/rendering/shader/Shader.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts +13 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js +13 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderUniform.d.ts +27 -0
- package/dist/esm/rendering/shader/ShaderUniform.js +28 -1
- package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +38 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.js +36 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts +56 -0
- package/dist/esm/rendering/sprite/Sprite.js +56 -0
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Spritesheet.d.ts +25 -0
- package/dist/esm/rendering/sprite/Spritesheet.js +20 -0
- package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
- package/dist/esm/rendering/text/Text.d.ts +2 -0
- package/dist/esm/rendering/text/Text.js +2 -0
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextStyle.d.ts +29 -0
- package/dist/esm/rendering/text/TextStyle.js +24 -0
- package/dist/esm/rendering/text/TextStyle.js.map +1 -1
- package/dist/esm/rendering/text/types.d.ts +1 -0
- package/dist/esm/rendering/texture/RenderTexture.d.ts +16 -0
- package/dist/esm/rendering/texture/RenderTexture.js +16 -0
- package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Sampler.d.ts +23 -0
- package/dist/esm/rendering/texture/Sampler.js +13 -0
- package/dist/esm/rendering/texture/Sampler.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +30 -0
- package/dist/esm/rendering/texture/Texture.js +30 -0
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +29 -0
- package/dist/esm/rendering/types.js +29 -0
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/utils.d.ts +20 -0
- package/dist/esm/rendering/utils.js +10 -0
- package/dist/esm/rendering/utils.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +35 -1
- package/dist/esm/rendering/video/Video.js +36 -2
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +13 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +13 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +8 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +8 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +35 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +135 -5
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/resources/AbstractAssetFactory.d.ts +20 -0
- package/dist/esm/resources/AbstractAssetFactory.js +20 -0
- package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
- package/dist/esm/resources/AssetFactory.d.ts +26 -0
- package/dist/esm/resources/AssetManifest.d.ts +45 -0
- package/dist/esm/resources/AssetManifest.js +25 -0
- package/dist/esm/resources/AssetManifest.js.map +1 -1
- package/dist/esm/resources/CacheFirstStrategy.d.ts +12 -0
- package/dist/esm/resources/CacheFirstStrategy.js +12 -0
- package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
- package/dist/esm/resources/CacheStore.d.ts +23 -0
- package/dist/esm/resources/CacheStrategy.d.ts +20 -0
- package/dist/esm/resources/Database.d.ts +45 -0
- package/dist/esm/resources/FactoryRegistry.d.ts +28 -0
- package/dist/esm/resources/FactoryRegistry.js +24 -0
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts +22 -1
- package/dist/esm/resources/IndexedDbDatabase.js +21 -0
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbStore.d.ts +20 -0
- package/dist/esm/resources/IndexedDbStore.js +12 -0
- package/dist/esm/resources/IndexedDbStore.js.map +1 -1
- package/dist/esm/resources/Loader.d.ts +167 -0
- package/dist/esm/resources/Loader.js +110 -0
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +8 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js +8 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
- package/dist/esm/resources/factories/BinaryFactory.d.ts +13 -0
- package/dist/esm/resources/factories/BinaryFactory.js +13 -0
- package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
- package/dist/esm/resources/factories/FontFactory.d.ts +37 -0
- package/dist/esm/resources/factories/FontFactory.js +26 -0
- package/dist/esm/resources/factories/FontFactory.js.map +1 -1
- package/dist/esm/resources/factories/ImageFactory.d.ts +24 -0
- package/dist/esm/resources/factories/ImageFactory.js +19 -0
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/JsonFactory.d.ts +13 -0
- package/dist/esm/resources/factories/JsonFactory.js +13 -0
- package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +36 -0
- package/dist/esm/resources/factories/MusicFactory.js +44 -4
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.d.ts +29 -0
- package/dist/esm/resources/factories/SoundFactory.js +18 -0
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SvgFactory.d.ts +19 -0
- package/dist/esm/resources/factories/SvgFactory.js +19 -0
- package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextFactory.d.ts +11 -0
- package/dist/esm/resources/factories/TextFactory.js +11 -0
- package/dist/esm/resources/factories/TextFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +25 -0
- package/dist/esm/resources/factories/TextureFactory.js +20 -0
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/factories/VideoFactory.d.ts +37 -0
- package/dist/esm/resources/factories/VideoFactory.js +48 -5
- package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
- package/dist/esm/resources/factories/VttFactory.d.ts +18 -0
- package/dist/esm/resources/factories/VttFactory.js +24 -0
- package/dist/esm/resources/factories/VttFactory.js.map +1 -1
- package/dist/esm/resources/factories/WasmFactory.d.ts +16 -0
- package/dist/esm/resources/factories/WasmFactory.js +16 -0
- package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
- package/dist/esm/resources/utils.d.ts +10 -0
- package/dist/esm/resources/utils.js +10 -0
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/exo.esm.js +3392 -59
- package/dist/exo.esm.js.map +1 -1
- package/package.json +7 -8
package/dist/esm/math/Ellipse.js
CHANGED
|
@@ -2,8 +2,19 @@ import { Vector } from './Vector.js';
|
|
|
2
2
|
import { Rectangle } from './Rectangle.js';
|
|
3
3
|
import { Interval } from './Interval.js';
|
|
4
4
|
import { CollisionType } from './Collision.js';
|
|
5
|
-
import { intersectionPointEllipse, intersectionLineEllipse, intersectionEllipseEllipse, intersectionCircleEllipse, intersectionEllipsePoly, intersectionRectEllipse } from './collision-detection.js';
|
|
5
|
+
import { intersectionPointEllipse, intersectionLineEllipse, intersectionEllipseEllipse, intersectionCircleEllipse, intersectionEllipsePoly, intersectionRectEllipse, getCollisionEllipseCircle, getCollisionEllipseRectangle } from './collision-detection.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Mutable axis-aligned ellipse shape defined by a centre position and
|
|
9
|
+
* separate horizontal (`rx`) and vertical (`ry`) half-radii. Implements
|
|
10
|
+
* {@link ShapeLike} for use in the intersection pipeline.
|
|
11
|
+
*
|
|
12
|
+
* `collidesWith` returns a {@link CollisionResponse} for ellipse-vs-rectangle
|
|
13
|
+
* (axis-aligned), ellipse-vs-circle, and ellipse-vs-{@link SceneNode} (which
|
|
14
|
+
* collides against the node's AABB). Other targets — ellipse-vs-ellipse,
|
|
15
|
+
* ellipse-vs-polygon, and ellipse-vs-line — return `null`; use
|
|
16
|
+
* {@link Ellipse.intersectsWith} for boolean tests against those.
|
|
17
|
+
*/
|
|
7
18
|
class Ellipse {
|
|
8
19
|
collisionType = CollisionType.Ellipse;
|
|
9
20
|
_position;
|
|
@@ -91,7 +102,12 @@ class Ellipse {
|
|
|
91
102
|
}
|
|
92
103
|
}
|
|
93
104
|
collidesWith(target) {
|
|
94
|
-
|
|
105
|
+
switch (target.collisionType) {
|
|
106
|
+
case CollisionType.SceneNode: return getCollisionEllipseRectangle(this, target.getBounds());
|
|
107
|
+
case CollisionType.Rectangle: return getCollisionEllipseRectangle(this, target);
|
|
108
|
+
case CollisionType.Circle: return getCollisionEllipseCircle(this, target);
|
|
109
|
+
default: return null;
|
|
110
|
+
}
|
|
95
111
|
}
|
|
96
112
|
contains(x, y) {
|
|
97
113
|
return intersectionPointEllipse(Vector.temp.set(x, y), this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ellipse.js","sources":["../../../../src/math/Ellipse.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"Ellipse.js","sources":["../../../../src/math/Ellipse.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
/** Structural type for any object that describes an axis-aligned ellipse via a centre point and half-radii. */
|
|
1
2
|
export interface EllipseLike {
|
|
2
3
|
x: number;
|
|
3
4
|
y: number;
|
|
5
|
+
/** Horizontal half-radius. */
|
|
4
6
|
rx: number;
|
|
7
|
+
/** Vertical half-radius. */
|
|
5
8
|
ry: number;
|
|
6
9
|
}
|
package/dist/esm/math/Flags.d.ts
CHANGED
|
@@ -1,11 +1,42 @@
|
|
|
1
1
|
import type { TypedEnum } from '@/core/types';
|
|
2
|
+
/**
|
|
3
|
+
* Type-safe bitfield utility for managing sets of numeric enum flags.
|
|
4
|
+
*
|
|
5
|
+
* `T` should be a numeric const-enum or a type whose values are `number`.
|
|
6
|
+
* Internally stores the combined flags as a single 32-bit integer.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const flags = new Flags<typeof MyEnum>(MyEnum.A, MyEnum.B);
|
|
11
|
+
* flags.has(MyEnum.A); // true
|
|
12
|
+
* flags.remove(MyEnum.A);
|
|
13
|
+
* flags.push(MyEnum.C);
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
2
16
|
export declare class Flags<T extends TypedEnum<T, number>> {
|
|
3
17
|
private _value;
|
|
18
|
+
/** Current combined bitmask of all active flags. */
|
|
4
19
|
get value(): number;
|
|
5
20
|
constructor(...flags: Array<number>);
|
|
21
|
+
/**
|
|
22
|
+
* Set one or more flags (bitwise OR). Mutates in place and returns `this`
|
|
23
|
+
* for chaining.
|
|
24
|
+
*/
|
|
6
25
|
push<V extends number = T[keyof T]>(...flags: Array<V>): this;
|
|
26
|
+
/**
|
|
27
|
+
* Remove `flag` and return `true` if it was active before removal, `false`
|
|
28
|
+
* otherwise. Useful for one-shot consumption of a flag.
|
|
29
|
+
*/
|
|
7
30
|
pop<V extends number = T[keyof T]>(flag: V): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Clear one or more flags (bitwise AND NOT). Mutates in place and returns
|
|
33
|
+
* `this` for chaining.
|
|
34
|
+
*/
|
|
8
35
|
remove<V extends number = T[keyof T]>(...flags: Array<V>): this;
|
|
36
|
+
/**
|
|
37
|
+
* Return `true` when **any** of the supplied flags are currently set
|
|
38
|
+
* (bitwise OR test).
|
|
39
|
+
*/
|
|
9
40
|
has<V extends number = T[keyof T]>(...flags: Array<V>): boolean;
|
|
10
41
|
clear(): this;
|
|
11
42
|
destroy(): void;
|
package/dist/esm/math/Flags.js
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type-safe bitfield utility for managing sets of numeric enum flags.
|
|
3
|
+
*
|
|
4
|
+
* `T` should be a numeric const-enum or a type whose values are `number`.
|
|
5
|
+
* Internally stores the combined flags as a single 32-bit integer.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const flags = new Flags<typeof MyEnum>(MyEnum.A, MyEnum.B);
|
|
10
|
+
* flags.has(MyEnum.A); // true
|
|
11
|
+
* flags.remove(MyEnum.A);
|
|
12
|
+
* flags.push(MyEnum.C);
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
1
15
|
class Flags {
|
|
2
16
|
_value = 0;
|
|
17
|
+
/** Current combined bitmask of all active flags. */
|
|
3
18
|
get value() {
|
|
4
19
|
return this._value;
|
|
5
20
|
}
|
|
@@ -8,23 +23,39 @@ class Flags {
|
|
|
8
23
|
this.push(...flags);
|
|
9
24
|
}
|
|
10
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Set one or more flags (bitwise OR). Mutates in place and returns `this`
|
|
28
|
+
* for chaining.
|
|
29
|
+
*/
|
|
11
30
|
push(...flags) {
|
|
12
31
|
for (const flag of flags) {
|
|
13
32
|
this._value |= flag;
|
|
14
33
|
}
|
|
15
34
|
return this;
|
|
16
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Remove `flag` and return `true` if it was active before removal, `false`
|
|
38
|
+
* otherwise. Useful for one-shot consumption of a flag.
|
|
39
|
+
*/
|
|
17
40
|
pop(flag) {
|
|
18
41
|
const active = this.has(flag);
|
|
19
42
|
this.remove(flag);
|
|
20
43
|
return active;
|
|
21
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Clear one or more flags (bitwise AND NOT). Mutates in place and returns
|
|
47
|
+
* `this` for chaining.
|
|
48
|
+
*/
|
|
22
49
|
remove(...flags) {
|
|
23
50
|
for (const flag of flags) {
|
|
24
51
|
this._value &= ~flag;
|
|
25
52
|
}
|
|
26
53
|
return this;
|
|
27
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Return `true` when **any** of the supplied flags are currently set
|
|
57
|
+
* (bitwise OR test).
|
|
58
|
+
*/
|
|
28
59
|
has(...flags) {
|
|
29
60
|
return flags.some(flag => (this._value & flag) !== 0);
|
|
30
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Flags.js","sources":["../../../../src/math/Flags.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Flags.js","sources":["../../../../src/math/Flags.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;;;;;;;;;AAaG;MACU,KAAK,CAAA;IAEN,MAAM,GAAG,CAAC;;AAGlB,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACtB;AAEA,IAAA,WAAA,CAAmB,GAAG,KAAoB,EAAA;AACtC,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACvB;IACJ;AAEA;;;AAGG;IACI,IAAI,CAAgC,GAAG,KAAe,EAAA;AACzD,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,IAAI,IAAI;QACvB;AAEA,QAAA,OAAO,IAAI;IACf;AAEA;;;AAGG;AACI,IAAA,GAAG,CAAgC,IAAO,EAAA;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAE7B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAEjB,QAAA,OAAO,MAAM;IACjB;AAEA;;;AAGG;IACI,MAAM,CAAgC,GAAG,KAAe,EAAA;AAC3D,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI;QACxB;AAEA,QAAA,OAAO,IAAI;IACf;AAEA;;;AAGG;IACI,GAAG,CAAgC,GAAG,KAAe,EAAA;AACxD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC;IACzD;IAEO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AAEf,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;QACV,IAAI,CAAC,KAAK,EAAE;IAChB;AACH;;;;"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { Cloneable } from '@/core/types';
|
|
2
|
+
/**
|
|
3
|
+
* A closed scalar interval `[min, max]` used by the SAT collision solver to
|
|
4
|
+
* represent the projection of a shape onto a separating axis.
|
|
5
|
+
*
|
|
6
|
+
* `Interval.temp` provides a shared scratch instance for hot paths.
|
|
7
|
+
* `Interval.zero` is a read-only `[0, 0]` sentinel.
|
|
8
|
+
*/
|
|
2
9
|
export declare class Interval implements Cloneable {
|
|
3
10
|
min: number;
|
|
4
11
|
max: number;
|
|
@@ -6,9 +13,17 @@ export declare class Interval implements Cloneable {
|
|
|
6
13
|
set(min: number, max: number): this;
|
|
7
14
|
copy(interval: Interval): this;
|
|
8
15
|
clone(): this;
|
|
16
|
+
/** Return `true` when `interval` is strictly contained within this interval (exclusive bounds). */
|
|
9
17
|
containsInterval(interval: Interval): boolean;
|
|
18
|
+
/** Return `true` when `value` lies within `[min, max]` (inclusive). */
|
|
10
19
|
includes(value: number): boolean;
|
|
20
|
+
/** Return `true` when this interval and `interval` share at least one point. */
|
|
11
21
|
overlaps(interval: Interval): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Return the signed overlap length between this interval and `interval`.
|
|
24
|
+
* Positive when they overlap; the sign encodes which end overlaps more.
|
|
25
|
+
* Used by the SAT solver to compute penetration depth.
|
|
26
|
+
*/
|
|
12
27
|
getOverlap(interval: Interval): number;
|
|
13
28
|
destroy(): void;
|
|
14
29
|
static readonly zero: Interval;
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
let temp = null;
|
|
2
|
+
/**
|
|
3
|
+
* A closed scalar interval `[min, max]` used by the SAT collision solver to
|
|
4
|
+
* represent the projection of a shape onto a separating axis.
|
|
5
|
+
*
|
|
6
|
+
* `Interval.temp` provides a shared scratch instance for hot paths.
|
|
7
|
+
* `Interval.zero` is a read-only `[0, 0]` sentinel.
|
|
8
|
+
*/
|
|
2
9
|
class Interval {
|
|
3
10
|
min;
|
|
4
11
|
max;
|
|
@@ -17,15 +24,23 @@ class Interval {
|
|
|
17
24
|
clone() {
|
|
18
25
|
return new Interval(this.min, this.max);
|
|
19
26
|
}
|
|
27
|
+
/** Return `true` when `interval` is strictly contained within this interval (exclusive bounds). */
|
|
20
28
|
containsInterval(interval) {
|
|
21
29
|
return interval.min > this.min && interval.max < this.max;
|
|
22
30
|
}
|
|
31
|
+
/** Return `true` when `value` lies within `[min, max]` (inclusive). */
|
|
23
32
|
includes(value) {
|
|
24
33
|
return value <= this.max && value >= this.min;
|
|
25
34
|
}
|
|
35
|
+
/** Return `true` when this interval and `interval` share at least one point. */
|
|
26
36
|
overlaps(interval) {
|
|
27
37
|
return !(this.min > interval.max || interval.min > this.max);
|
|
28
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Return the signed overlap length between this interval and `interval`.
|
|
41
|
+
* Positive when they overlap; the sign encodes which end overlaps more.
|
|
42
|
+
* Used by the SAT solver to compute penetration depth.
|
|
43
|
+
*/
|
|
29
44
|
getOverlap(interval) {
|
|
30
45
|
return this.max < interval.max ? this.max - interval.min : interval.max - this.min;
|
|
31
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Interval.js","sources":["../../../../src/math/Interval.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA,IAAI,IAAI,GAAoB,IAAI;
|
|
1
|
+
{"version":3,"file":"Interval.js","sources":["../../../../src/math/Interval.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA,IAAI,IAAI,GAAoB,IAAI;AAEhC;;;;;;AAMG;MACU,QAAQ,CAAA;AAEV,IAAA,GAAG;AACH,IAAA,GAAG;AAEV,IAAA,WAAA,CAAmB,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAA;AACjC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;IAClB;IAEO,GAAG,CAAC,GAAW,EAAE,GAAW,EAAA;AAC/B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AAEd,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,IAAI,CAAC,QAAkB,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;IAC/C;IAEO,KAAK,GAAA;QACR,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAS;IACnD;;AAGO,IAAA,gBAAgB,CAAC,QAAkB,EAAA;AACtC,QAAA,OAAO,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IAC7D;;AAGO,IAAA,QAAQ,CAAC,KAAa,EAAA;QACzB,OAAO,KAAK,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG;IACjD;;AAGO,IAAA,QAAQ,CAAC,QAAkB,EAAA;AAC9B,QAAA,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAChE;AAEA;;;;AAIG;AACI,IAAA,UAAU,CAAC,QAAkB,EAAA;QAChC,OAAO,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACtF;IAEO,OAAO,GAAA;;IAEd;IAEO,OAAgB,IAAI,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AAEzC,IAAA,WAAW,IAAI,GAAA;AAClB,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACf,YAAA,IAAI,GAAG,IAAI,QAAQ,EAAE;QACzB;AAEA,QAAA,OAAO,IAAI;IACf;;;;;"}
|
package/dist/esm/math/Line.d.ts
CHANGED
|
@@ -4,6 +4,17 @@ import type { ShapeLike } from '@/math/ShapeLike';
|
|
|
4
4
|
import { Interval } from '@/math/Interval';
|
|
5
5
|
import type { Collidable, CollisionResponse } from '@/math/Collision';
|
|
6
6
|
import { CollisionType } from '@/math/Collision';
|
|
7
|
+
/**
|
|
8
|
+
* Mutable line segment defined by two endpoint positions. Implements
|
|
9
|
+
* {@link ShapeLike} for intersection tests against all shape types.
|
|
10
|
+
*
|
|
11
|
+
* Note: `collidesWith` always returns `null` — lines support boolean
|
|
12
|
+
* intersection only; SAT response is not implemented for line segments.
|
|
13
|
+
* `contains(x, y, threshold)` tests whether `(x, y)` lies on the segment
|
|
14
|
+
* within a configurable threshold (default `0.1`).
|
|
15
|
+
*
|
|
16
|
+
* `Line.temp` is a shared scratch instance.
|
|
17
|
+
*/
|
|
7
18
|
export declare class Line implements ShapeLike {
|
|
8
19
|
readonly collisionType: CollisionType;
|
|
9
20
|
private readonly _fromPosition;
|
|
@@ -28,7 +39,12 @@ export declare class Line implements ShapeLike {
|
|
|
28
39
|
getNormals(): Array<Vector>;
|
|
29
40
|
project(axis: Vector, result?: Interval): Interval;
|
|
30
41
|
intersectsWith(target: Collidable): boolean;
|
|
31
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Always returns `null`. SAT collision response is not defined for line
|
|
44
|
+
* segments — use {@link Line.intersectsWith} for boolean intersection
|
|
45
|
+
* tests against any shape.
|
|
46
|
+
*/
|
|
47
|
+
collidesWith(_target: Collidable): CollisionResponse | null;
|
|
32
48
|
contains(x: number, y: number, threshold?: number): boolean;
|
|
33
49
|
equals({ fromX, fromY, toX, toY }?: Partial<Line>): boolean;
|
|
34
50
|
destroy(): void;
|
package/dist/esm/math/Line.js
CHANGED
|
@@ -5,6 +5,17 @@ import { CollisionType } from './Collision.js';
|
|
|
5
5
|
import { intersectionPointLine, intersectionLineLine, intersectionLineEllipse, intersectionLineCircle, intersectionLinePoly, intersectionLineRect } from './collision-detection.js';
|
|
6
6
|
|
|
7
7
|
let temp = null;
|
|
8
|
+
/**
|
|
9
|
+
* Mutable line segment defined by two endpoint positions. Implements
|
|
10
|
+
* {@link ShapeLike} for intersection tests against all shape types.
|
|
11
|
+
*
|
|
12
|
+
* Note: `collidesWith` always returns `null` — lines support boolean
|
|
13
|
+
* intersection only; SAT response is not implemented for line segments.
|
|
14
|
+
* `contains(x, y, threshold)` tests whether `(x, y)` lies on the segment
|
|
15
|
+
* within a configurable threshold (default `0.1`).
|
|
16
|
+
*
|
|
17
|
+
* `Line.temp` is a shared scratch instance.
|
|
18
|
+
*/
|
|
8
19
|
class Line {
|
|
9
20
|
collisionType = CollisionType.Line;
|
|
10
21
|
_fromPosition;
|
|
@@ -86,7 +97,12 @@ class Line {
|
|
|
86
97
|
default: return false;
|
|
87
98
|
}
|
|
88
99
|
}
|
|
89
|
-
|
|
100
|
+
/**
|
|
101
|
+
* Always returns `null`. SAT collision response is not defined for line
|
|
102
|
+
* segments — use {@link Line.intersectsWith} for boolean intersection
|
|
103
|
+
* tests against any shape.
|
|
104
|
+
*/
|
|
105
|
+
collidesWith(_target) {
|
|
90
106
|
return null;
|
|
91
107
|
}
|
|
92
108
|
contains(x, y, threshold = 0.1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Line.js","sources":["../../../../src/math/Line.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAmBA,IAAI,IAAI,GAAgB,IAAI;
|
|
1
|
+
{"version":3,"file":"Line.js","sources":["../../../../src/math/Line.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import type { Cloneable } from '@/core/types';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Mutable 3×3 row-major affine transformation matrix used throughout the
|
|
4
|
+
* rendering and physics pipeline.
|
|
5
|
+
*
|
|
6
|
+
* Layout (row, column):
|
|
7
|
+
* ```
|
|
8
|
+
* | a b x |
|
|
9
|
+
* | c d y |
|
|
10
|
+
* | e f z |
|
|
11
|
+
* ```
|
|
12
|
+
* `a`/`d` are the X/Y scale + rotation cosines, `b`/`c` are the shear/rotation
|
|
13
|
+
* sines, `x`/`y` are the translation components, and `e`/`f`/`z` are the
|
|
14
|
+
* homogeneous row (typically `0, 0, 1`).
|
|
15
|
+
*
|
|
16
|
+
* All mutating methods return `this` for chaining. `Matrix.temp` is a shared
|
|
17
|
+
* scratch instance. `Matrix.identity` is a read-only identity constant.
|
|
6
18
|
*/
|
|
7
19
|
export declare class Matrix implements Cloneable {
|
|
8
20
|
a: number;
|
|
@@ -20,11 +32,40 @@ export declare class Matrix implements Cloneable {
|
|
|
20
32
|
copy(matrix: Matrix): this;
|
|
21
33
|
clone(): this;
|
|
22
34
|
equals({ a, b, x, c, d, y, e, f, z }?: Partial<Matrix>): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Post-multiply this matrix by `matrix` (i.e. `this = this × matrix`).
|
|
37
|
+
* Applies `matrix`'s transform after this matrix's transform. Mutates in
|
|
38
|
+
* place and returns `this` for chaining.
|
|
39
|
+
*/
|
|
23
40
|
combine(matrix: Matrix): this;
|
|
41
|
+
/**
|
|
42
|
+
* Compute the inverse of this matrix and write it into `result`. Defaults
|
|
43
|
+
* to `this` (in-place inversion). When the matrix is singular (determinant
|
|
44
|
+
* = 0) `result` is set to the identity. Returns `result`.
|
|
45
|
+
*/
|
|
24
46
|
getInverse(result?: Matrix): Matrix;
|
|
47
|
+
/**
|
|
48
|
+
* Apply a translation of `(x, y)` to this matrix. Mutates in place and
|
|
49
|
+
* returns `this` for chaining.
|
|
50
|
+
*/
|
|
25
51
|
translate(x: number, y?: number): Matrix;
|
|
52
|
+
/**
|
|
53
|
+
* Apply a rotation of `angle` **degrees** around `(centerX, centerY)` to
|
|
54
|
+
* this matrix. Mutates in place and returns `this` for chaining.
|
|
55
|
+
*/
|
|
26
56
|
rotate(angle: number, centerX?: number, centerY?: number): Matrix;
|
|
57
|
+
/**
|
|
58
|
+
* Apply a scale of `(scaleX, scaleY)` around `(centerX, centerY)` to this
|
|
59
|
+
* matrix. Mutates in place and returns `this` for chaining.
|
|
60
|
+
*/
|
|
27
61
|
scale(scaleX: number, scaleY?: number, centerX?: number, centerY?: number): Matrix;
|
|
62
|
+
/**
|
|
63
|
+
* Serialise this matrix into a `Float32Array` suitable for a WebGL uniform.
|
|
64
|
+
* The internal `Float32Array` is lazily allocated and reused across calls.
|
|
65
|
+
*
|
|
66
|
+
* When `transpose` is `false` (default) the array is in column-major order
|
|
67
|
+
* (as OpenGL expects). When `true` it is row-major.
|
|
68
|
+
*/
|
|
28
69
|
toArray(transpose?: boolean): Float32Array;
|
|
29
70
|
destroy(): void;
|
|
30
71
|
static readonly identity: Matrix;
|
package/dist/esm/math/Matrix.js
CHANGED
|
@@ -2,9 +2,21 @@ import { degreesToRadians } from './utils.js';
|
|
|
2
2
|
|
|
3
3
|
let temp = null;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Mutable 3×3 row-major affine transformation matrix used throughout the
|
|
6
|
+
* rendering and physics pipeline.
|
|
7
|
+
*
|
|
8
|
+
* Layout (row, column):
|
|
9
|
+
* ```
|
|
10
|
+
* | a b x |
|
|
11
|
+
* | c d y |
|
|
12
|
+
* | e f z |
|
|
13
|
+
* ```
|
|
14
|
+
* `a`/`d` are the X/Y scale + rotation cosines, `b`/`c` are the shear/rotation
|
|
15
|
+
* sines, `x`/`y` are the translation components, and `e`/`f`/`z` are the
|
|
16
|
+
* homogeneous row (typically `0, 0, 1`).
|
|
17
|
+
*
|
|
18
|
+
* All mutating methods return `this` for chaining. `Matrix.temp` is a shared
|
|
19
|
+
* scratch instance. `Matrix.identity` is a read-only identity constant.
|
|
8
20
|
*/
|
|
9
21
|
class Matrix {
|
|
10
22
|
a;
|
|
@@ -66,9 +78,19 @@ class Matrix {
|
|
|
66
78
|
&& (f === undefined || this.f === f)
|
|
67
79
|
&& (z === undefined || this.z === z);
|
|
68
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Post-multiply this matrix by `matrix` (i.e. `this = this × matrix`).
|
|
83
|
+
* Applies `matrix`'s transform after this matrix's transform. Mutates in
|
|
84
|
+
* place and returns `this` for chaining.
|
|
85
|
+
*/
|
|
69
86
|
combine(matrix) {
|
|
70
87
|
return this.set((this.a * matrix.a) + (this.c * matrix.b) + (this.e * matrix.x), (this.b * matrix.a) + (this.d * matrix.b) + (this.f * matrix.x), (this.x * matrix.a) + (this.y * matrix.b) + (this.z * matrix.x), (this.a * matrix.c) + (this.c * matrix.d) + (this.e * matrix.y), (this.b * matrix.c) + (this.d * matrix.d) + (this.f * matrix.y), (this.x * matrix.c) + (this.y * matrix.d) + (this.z * matrix.y), (this.a * matrix.e) + (this.c * matrix.f) + (this.e * matrix.z), (this.b * matrix.e) + (this.d * matrix.f) + (this.f * matrix.z), (this.x * matrix.e) + (this.y * matrix.f) + (this.z * matrix.z));
|
|
71
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Compute the inverse of this matrix and write it into `result`. Defaults
|
|
91
|
+
* to `this` (in-place inversion). When the matrix is singular (determinant
|
|
92
|
+
* = 0) `result` is set to the identity. Returns `result`.
|
|
93
|
+
*/
|
|
72
94
|
getInverse(result = this) {
|
|
73
95
|
const determinant = (this.a * (this.z * this.d - this.y * this.f)) -
|
|
74
96
|
(this.b * (this.z * this.c - this.y * this.e)) +
|
|
@@ -78,18 +100,37 @@ class Matrix {
|
|
|
78
100
|
}
|
|
79
101
|
return result.set(((this.z * this.d) - (this.y * this.f)) / determinant, ((this.z * this.c) - (this.y * this.e)) / -determinant, ((this.f * this.c) - (this.d * this.e)) / determinant, ((this.z * this.b) - (this.x * this.f)) / -determinant, ((this.z * this.a) - (this.x * this.e)) / determinant, ((this.f * this.a) - (this.b * this.e)) / -determinant, ((this.y * this.b) - (this.x * this.d)) / determinant, ((this.y * this.a) - (this.x * this.c)) / -determinant, ((this.d * this.a) - (this.b * this.c)) / determinant);
|
|
80
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Apply a translation of `(x, y)` to this matrix. Mutates in place and
|
|
105
|
+
* returns `this` for chaining.
|
|
106
|
+
*/
|
|
81
107
|
translate(x, y = x) {
|
|
82
108
|
return this.combine(Matrix.temp.set(1, 0, x, 0, 1, y, 0, 0, 1));
|
|
83
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Apply a rotation of `angle` **degrees** around `(centerX, centerY)` to
|
|
112
|
+
* this matrix. Mutates in place and returns `this` for chaining.
|
|
113
|
+
*/
|
|
84
114
|
rotate(angle, centerX = 0, centerY = centerX) {
|
|
85
115
|
const radian = degreesToRadians(angle);
|
|
86
116
|
const cos = Math.cos(radian);
|
|
87
117
|
const sin = Math.sin(radian);
|
|
88
118
|
return this.combine(Matrix.temp.set(cos, -sin, (centerX * (1 - cos)) + (centerY * sin), sin, cos, (centerY * (1 - cos)) - (centerX * sin), 0, 0, 1));
|
|
89
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Apply a scale of `(scaleX, scaleY)` around `(centerX, centerY)` to this
|
|
122
|
+
* matrix. Mutates in place and returns `this` for chaining.
|
|
123
|
+
*/
|
|
90
124
|
scale(scaleX, scaleY = scaleX, centerX = 0, centerY = centerX) {
|
|
91
125
|
return this.combine(Matrix.temp.set(scaleX, 0, (centerX * (1 - scaleX)), 0, scaleY, (centerY * (1 - scaleY)), 0, 0, 1));
|
|
92
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Serialise this matrix into a `Float32Array` suitable for a WebGL uniform.
|
|
129
|
+
* The internal `Float32Array` is lazily allocated and reused across calls.
|
|
130
|
+
*
|
|
131
|
+
* When `transpose` is `false` (default) the array is in column-major order
|
|
132
|
+
* (as OpenGL expects). When `true` it is row-major.
|
|
133
|
+
*/
|
|
93
134
|
toArray(transpose = false) {
|
|
94
135
|
const array = this._array || (this._array = new Float32Array(9));
|
|
95
136
|
if (transpose) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Matrix.js","sources":["../../../../src/math/Matrix.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA,IAAI,IAAI,GAAkB,IAAI;AAE9B
|
|
1
|
+
{"version":3,"file":"Matrix.js","sources":["../../../../src/math/Matrix.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { Size } from './Size';
|
|
2
|
+
/**
|
|
3
|
+
* A {@link Size} subclass that fires a callback whenever `width` or `height`
|
|
4
|
+
* changes. Used internally by layout-aware types to invalidate cached geometry
|
|
5
|
+
* on dimension mutations.
|
|
6
|
+
*
|
|
7
|
+
* Batch mutations via `set()` fire at most one callback per call.
|
|
8
|
+
*/
|
|
2
9
|
export declare class ObservableSize extends Size {
|
|
3
10
|
private readonly _callback;
|
|
4
11
|
constructor(callback: () => void, width?: number, height?: number);
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { Size } from './Size.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* A {@link Size} subclass that fires a callback whenever `width` or `height`
|
|
5
|
+
* changes. Used internally by layout-aware types to invalidate cached geometry
|
|
6
|
+
* on dimension mutations.
|
|
7
|
+
*
|
|
8
|
+
* Batch mutations via `set()` fire at most one callback per call.
|
|
9
|
+
*/
|
|
3
10
|
class ObservableSize extends Size {
|
|
4
11
|
_callback;
|
|
5
12
|
constructor(callback, width = 0, height = 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservableSize.js","sources":["../../../../src/math/ObservableSize.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ObservableSize.js","sources":["../../../../src/math/ObservableSize.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;;;AAMG;AACG,MAAO,cAAe,SAAQ,IAAI,CAAA;AAEnB,IAAA,SAAS;IAE1B,WAAA,CAAmB,QAAoB,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAA;AAC1D,QAAA,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;AAEpB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;IAC7B;AAEA,IAAA,IAAoB,KAAK,GAAA;QACrB,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAoB,KAAK,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;YACnB,IAAI,CAAC,SAAS,EAAE;QACpB;IACJ;AAEA,IAAA,IAAoB,MAAM,GAAA;QACtB,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAoB,MAAM,CAAC,MAAc,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM;YACrB,IAAI,CAAC,SAAS,EAAE;QACpB;IACJ;IAEgB,GAAG,CAAC,QAAgB,IAAI,CAAC,MAAM,EAAE,MAAA,GAAiB,IAAI,CAAC,OAAO,EAAA;AAC1E,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;AAClD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM;YACrB,IAAI,CAAC,SAAS,EAAE;QACpB;AAEA,QAAA,OAAO,IAAI;IACf;AAEgB,IAAA,GAAG,CAAC,CAAS,EAAE,CAAA,GAAY,CAAC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACtD;AAEgB,IAAA,QAAQ,CAAC,CAAS,EAAE,CAAA,GAAY,CAAC,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACtD;AAEgB,IAAA,KAAK,CAAC,CAAS,EAAE,CAAA,GAAY,CAAC,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACtD;AAEgB,IAAA,MAAM,CAAC,CAAS,EAAE,CAAA,GAAY,CAAC,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACtD;AAEgB,IAAA,IAAI,CAAC,IAAU,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;IAC5C;IAEgB,KAAK,GAAA;AACjB,QAAA,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAS;IAChF;AACH;;;;"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { AbstractVector } from '@/math/AbstractVector';
|
|
2
|
+
/**
|
|
3
|
+
* A {@link AbstractVector} subclass that fires a callback whenever its
|
|
4
|
+
* components change. Used internally by {@link Rectangle} and other types to
|
|
5
|
+
* invalidate cached state (e.g. normals) on position mutations.
|
|
6
|
+
*
|
|
7
|
+
* Setting individual components (`x`, `y`) fires the callback only when the
|
|
8
|
+
* value actually changes. Batch mutations via `set()` fire at most one
|
|
9
|
+
* callback per call.
|
|
10
|
+
*/
|
|
2
11
|
export declare class ObservableVector extends AbstractVector {
|
|
3
12
|
private _x;
|
|
4
13
|
private _y;
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { AbstractVector } from './AbstractVector.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* A {@link AbstractVector} subclass that fires a callback whenever its
|
|
5
|
+
* components change. Used internally by {@link Rectangle} and other types to
|
|
6
|
+
* invalidate cached state (e.g. normals) on position mutations.
|
|
7
|
+
*
|
|
8
|
+
* Setting individual components (`x`, `y`) fires the callback only when the
|
|
9
|
+
* value actually changes. Batch mutations via `set()` fire at most one
|
|
10
|
+
* callback per call.
|
|
11
|
+
*/
|
|
3
12
|
class ObservableVector extends AbstractVector {
|
|
4
13
|
_x;
|
|
5
14
|
_y;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservableVector.js","sources":["../../../../src/math/ObservableVector.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ObservableVector.js","sources":["../../../../src/math/ObservableVector.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|