@codexo/exojs 0.7.11 → 0.7.13
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 +442 -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 +66 -1
- package/dist/esm/core/Application.js +68 -6
- 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 +76 -0
- package/dist/esm/core/Scene.js +83 -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 +51 -2
- 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 +8 -2
- 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 +11 -3
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/index.js +6 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js +25 -19
- 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 +181 -31
- package/dist/esm/input/Gamepad.js +307 -108
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.d.ts +120 -0
- package/dist/esm/input/GamepadAxis.js +106 -0
- package/dist/esm/input/GamepadAxis.js.map +1 -0
- package/dist/esm/input/GamepadButton.d.ts +110 -0
- package/dist/esm/input/GamepadButton.js +99 -0
- package/dist/esm/input/GamepadButton.js.map +1 -0
- package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
- package/dist/esm/input/GamepadDefinitions.js +44 -1
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GamepadMapping.d.ts +42 -8
- package/dist/esm/input/GamepadMapping.js +46 -5
- package/dist/esm/input/GamepadMapping.js.map +1 -1
- package/dist/esm/input/GamepadPromptLayouts.d.ts +35 -2
- package/dist/esm/input/GamepadPromptLayouts.js +43 -18
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
- package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +13 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js +62 -43
- 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/InputBinding.d.ts +74 -0
- package/dist/esm/input/InputBinding.js +100 -0
- package/dist/esm/input/InputBinding.js.map +1 -0
- package/dist/esm/input/InputManager.d.ts +100 -21
- package/dist/esm/input/InputManager.js +248 -90
- 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 +34 -5
- package/dist/esm/input/InteractionManager.js +46 -17
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +17 -3
- package/dist/esm/input/JoyConLeftGamepadMapping.js +42 -3
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
- package/dist/esm/input/JoyConRightGamepadMapping.d.ts +17 -3
- package/dist/esm/input/JoyConRightGamepadMapping.js +38 -3
- 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 +106 -71
- package/dist/esm/input/Pointer.js +93 -71
- 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/SteamDeckGamepadMapping.d.ts +18 -0
- package/dist/esm/input/SteamDeckGamepadMapping.js +76 -0
- package/dist/esm/input/SteamDeckGamepadMapping.js.map +1 -0
- 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/index.d.ts +7 -4
- package/dist/esm/input/types.d.ts +17 -73
- package/dist/esm/input/types.js +18 -77
- 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 +15 -0
- package/dist/esm/resources/CacheFirstStrategy.js +19 -4
- 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 +28 -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 +172 -0
- package/dist/esm/resources/Loader.js +129 -37
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +11 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js +16 -3
- 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 +26 -2
- 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 +27 -2
- 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 +104 -3
- 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 +4673 -745
- package/dist/exo.esm.js.map +1 -1
- package/package.json +8 -8
- package/dist/esm/input/GamepadChannels.d.ts +0 -39
- package/dist/esm/input/GamepadChannels.js +0 -45
- package/dist/esm/input/GamepadChannels.js.map +0 -1
- package/dist/esm/input/GamepadControl.d.ts +0 -15
- package/dist/esm/input/GamepadControl.js +0 -29
- package/dist/esm/input/GamepadControl.js.map +0 -1
- package/dist/esm/input/Input.d.ts +0 -28
- package/dist/esm/input/Input.js +0 -68
- package/dist/esm/input/Input.js.map +0 -1
|
@@ -4,7 +4,22 @@ import { Interval } from '@/math/Interval';
|
|
|
4
4
|
import type { ShapeLike } from '@/math/ShapeLike';
|
|
5
5
|
import type { Collidable, CollisionResponse } from '@/math/Collision';
|
|
6
6
|
import { CollisionType } from '@/math/Collision';
|
|
7
|
+
/**
|
|
8
|
+
* Mutable circle shape defined by a centre position and radius. Implements
|
|
9
|
+
* {@link ShapeLike} for use in the collision pipeline.
|
|
10
|
+
*
|
|
11
|
+
* For SAT-based collision the circle is approximated as a regular polygon with
|
|
12
|
+
* {@link Circle.collisionSegments} sides; normals and vertices are cached and
|
|
13
|
+
* regenerated lazily when the shape mutates.
|
|
14
|
+
*
|
|
15
|
+
* `Circle.temp` is a shared scratch instance for intermediate calculations.
|
|
16
|
+
*/
|
|
7
17
|
export declare class Circle implements ShapeLike {
|
|
18
|
+
/**
|
|
19
|
+
* Number of polygon segments used to approximate the circle boundary for
|
|
20
|
+
* SAT collision tests. Increasing this improves accuracy at the cost of
|
|
21
|
+
* more normal comparisons. Default: `32`.
|
|
22
|
+
*/
|
|
8
23
|
static collisionSegments: number;
|
|
9
24
|
readonly collisionType: CollisionType;
|
|
10
25
|
private readonly _position;
|
|
@@ -22,7 +37,15 @@ export declare class Circle implements ShapeLike {
|
|
|
22
37
|
set y(y: number);
|
|
23
38
|
get radius(): number;
|
|
24
39
|
set radius(radius: number);
|
|
40
|
+
/**
|
|
41
|
+
* Set the circle's centre to `(x, y)`. Invalidates the normal and vertex
|
|
42
|
+
* caches. Returns `this` for chaining.
|
|
43
|
+
*/
|
|
25
44
|
setPosition(x: number, y: number): this;
|
|
45
|
+
/**
|
|
46
|
+
* Set the circle's radius. No-op when the value has not changed. Invalidates
|
|
47
|
+
* the normal and vertex caches. Returns `this` for chaining.
|
|
48
|
+
*/
|
|
26
49
|
setRadius(radius: number): this;
|
|
27
50
|
set(x: number, y: number, radius: number): this;
|
|
28
51
|
copy(circle: Circle): this;
|
|
@@ -41,11 +64,20 @@ export declare class Circle implements ShapeLike {
|
|
|
41
64
|
* circle.
|
|
42
65
|
*/
|
|
43
66
|
getNormals(): Array<Vector>;
|
|
67
|
+
/**
|
|
68
|
+
* Project this circle onto `axis` and write the scalar interval into
|
|
69
|
+
* `result`. The projection accounts for both the centre and the radius.
|
|
70
|
+
*/
|
|
44
71
|
project(axis: Vector, result?: Interval): Interval;
|
|
45
72
|
contains(x: number, y: number): boolean;
|
|
46
73
|
intersectsWith(target: Collidable): boolean;
|
|
47
74
|
collidesWith(target: Collidable): CollisionResponse | null;
|
|
48
75
|
destroy(): void;
|
|
49
76
|
private getCollisionVertices;
|
|
77
|
+
/**
|
|
78
|
+
* Shared scratch `Circle` instance for intermediate calculations. Never
|
|
79
|
+
* retain the reference across frames or async boundaries.
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
50
82
|
static get temp(): Circle;
|
|
51
83
|
}
|
package/dist/esm/math/Circle.js
CHANGED
|
@@ -2,10 +2,25 @@ 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 { intersectionPointCircle, intersectionLineCircle, intersectionCircleEllipse, intersectionCircleCircle, intersectionCirclePoly, intersectionRectCircle, getCollisionCircleCircle, getCollisionPolygonCircle, getCollisionCircleRectangle } from './collision-detection.js';
|
|
5
|
+
import { intersectionPointCircle, intersectionLineCircle, intersectionCircleEllipse, intersectionCircleCircle, intersectionCirclePoly, intersectionRectCircle, getCollisionEllipseCircle, getCollisionCircleCircle, getCollisionPolygonCircle, getCollisionCircleRectangle } from './collision-detection.js';
|
|
6
6
|
|
|
7
7
|
let temp = null;
|
|
8
|
+
/**
|
|
9
|
+
* Mutable circle shape defined by a centre position and radius. Implements
|
|
10
|
+
* {@link ShapeLike} for use in the collision pipeline.
|
|
11
|
+
*
|
|
12
|
+
* For SAT-based collision the circle is approximated as a regular polygon with
|
|
13
|
+
* {@link Circle.collisionSegments} sides; normals and vertices are cached and
|
|
14
|
+
* regenerated lazily when the shape mutates.
|
|
15
|
+
*
|
|
16
|
+
* `Circle.temp` is a shared scratch instance for intermediate calculations.
|
|
17
|
+
*/
|
|
8
18
|
class Circle {
|
|
19
|
+
/**
|
|
20
|
+
* Number of polygon segments used to approximate the circle boundary for
|
|
21
|
+
* SAT collision tests. Increasing this improves accuracy at the cost of
|
|
22
|
+
* more normal comparisons. Default: `32`.
|
|
23
|
+
*/
|
|
9
24
|
static collisionSegments = 32;
|
|
10
25
|
collisionType = CollisionType.Circle;
|
|
11
26
|
_position;
|
|
@@ -59,12 +74,20 @@ class Circle {
|
|
|
59
74
|
this._verticesDirty = true;
|
|
60
75
|
this._normalsDirty = true;
|
|
61
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Set the circle's centre to `(x, y)`. Invalidates the normal and vertex
|
|
79
|
+
* caches. Returns `this` for chaining.
|
|
80
|
+
*/
|
|
62
81
|
setPosition(x, y) {
|
|
63
82
|
this._position.set(x, y);
|
|
64
83
|
this._verticesDirty = true;
|
|
65
84
|
this._normalsDirty = true;
|
|
66
85
|
return this;
|
|
67
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Set the circle's radius. No-op when the value has not changed. Invalidates
|
|
89
|
+
* the normal and vertex caches. Returns `this` for chaining.
|
|
90
|
+
*/
|
|
68
91
|
setRadius(radius) {
|
|
69
92
|
if (this._radius !== radius) {
|
|
70
93
|
this._radius = radius;
|
|
@@ -127,6 +150,10 @@ class Circle {
|
|
|
127
150
|
}
|
|
128
151
|
return this._normals;
|
|
129
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Project this circle onto `axis` and write the scalar interval into
|
|
155
|
+
* `result`. The projection accounts for both the centre and the radius.
|
|
156
|
+
*/
|
|
130
157
|
project(axis, result = new Interval()) {
|
|
131
158
|
const center = axis.dot(this.x, this.y);
|
|
132
159
|
const radius = this.radius * axis.length;
|
|
@@ -153,7 +180,7 @@ class Circle {
|
|
|
153
180
|
case CollisionType.Rectangle: return getCollisionCircleRectangle(this, target);
|
|
154
181
|
case CollisionType.Polygon: return getCollisionPolygonCircle(target, this, true);
|
|
155
182
|
case CollisionType.Circle: return getCollisionCircleCircle(this, target);
|
|
156
|
-
|
|
183
|
+
case CollisionType.Ellipse: return getCollisionEllipseCircle(target, this, true);
|
|
157
184
|
// case CollisionType.Line: return intersectionLineCircle(target as Line, this);
|
|
158
185
|
// case CollisionType.Point: return intersectionPointCircle(target as Vector, this);
|
|
159
186
|
default: return null;
|
|
@@ -193,6 +220,11 @@ class Circle {
|
|
|
193
220
|
}
|
|
194
221
|
return this._collisionVertices;
|
|
195
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Shared scratch `Circle` instance for intermediate calculations. Never
|
|
225
|
+
* retain the reference across frames or async boundaries.
|
|
226
|
+
* @internal
|
|
227
|
+
*/
|
|
196
228
|
static get temp() {
|
|
197
229
|
if (temp === null) {
|
|
198
230
|
temp = new Circle();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Circle.js","sources":["../../../../src/math/Circle.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"Circle.js","sources":["../../../../src/math/Circle.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { Vector } from '@/math/Vector';
|
|
2
2
|
import type { Interval } from '@/math/Interval';
|
|
3
|
+
/**
|
|
4
|
+
* Discriminant tag carried by every {@link Collidable} so that intersection
|
|
5
|
+
* and collision routines can dispatch to the correct algorithm without
|
|
6
|
+
* `instanceof` checks.
|
|
7
|
+
*/
|
|
3
8
|
export declare const enum CollisionType {
|
|
4
9
|
Point = 0,
|
|
5
10
|
Line = 1,
|
|
@@ -9,20 +14,54 @@ export declare const enum CollisionType {
|
|
|
9
14
|
Polygon = 5,
|
|
10
15
|
SceneNode = 6
|
|
11
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Contract for objects that participate in collision detection. Implemented by
|
|
19
|
+
* all concrete shape classes as well as `SceneNode`.
|
|
20
|
+
*/
|
|
12
21
|
export interface Collidable {
|
|
13
22
|
readonly collisionType: CollisionType;
|
|
23
|
+
/**
|
|
24
|
+
* Test whether this shape overlaps `target` using a fast boolean algorithm
|
|
25
|
+
* (no penetration depth or normal computed). Prefer this over
|
|
26
|
+
* {@link collidesWith} when only the yes/no result is needed.
|
|
27
|
+
*/
|
|
14
28
|
intersectsWith(target: Collidable): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Compute a full {@link CollisionResponse} between this shape and `target`,
|
|
31
|
+
* or `null` when they do not overlap. Returns `null` for shape-pair
|
|
32
|
+
* combinations not yet implemented.
|
|
33
|
+
*/
|
|
15
34
|
collidesWith(target: Collidable): CollisionResponse | null;
|
|
35
|
+
/** Returns `true` if the point `(x, y)` is inside this shape. */
|
|
16
36
|
contains(x: number, y: number): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Return the outward-facing edge normals used by the SAT solver. The array
|
|
39
|
+
* should be cached and reused across calls.
|
|
40
|
+
*/
|
|
17
41
|
getNormals(): Array<Vector>;
|
|
42
|
+
/**
|
|
43
|
+
* Project this shape onto `axis` and write the scalar min/max into
|
|
44
|
+
* `interval`. Used internally by the SAT solver.
|
|
45
|
+
*/
|
|
18
46
|
project(axis: Vector, interval?: Interval): Interval;
|
|
19
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Result of a successful {@link Collidable.collidesWith} call. Contains
|
|
50
|
+
* the two participating shapes, the penetration depth, containment flags,
|
|
51
|
+
* and the minimum-translation vectors (normal + vector) needed to separate
|
|
52
|
+
* them.
|
|
53
|
+
*/
|
|
20
54
|
export interface CollisionResponse {
|
|
21
55
|
readonly shapeA: Collidable;
|
|
22
56
|
readonly shapeB: Collidable;
|
|
57
|
+
/** Penetration depth — the minimum distance to move the shapes apart. */
|
|
23
58
|
readonly overlap: number;
|
|
59
|
+
/** `true` when `shapeA` is fully contained within `shapeB`. */
|
|
24
60
|
readonly shapeAinB: boolean;
|
|
61
|
+
/** `true` when `shapeB` is fully contained within `shapeA`. */
|
|
25
62
|
readonly shapeBinA: boolean;
|
|
63
|
+
/** Unit normal of the minimum-translation axis. */
|
|
26
64
|
readonly projectionN: Vector;
|
|
65
|
+
/** Minimum-translation vector: `projectionN` scaled by `overlap`. */
|
|
27
66
|
readonly projectionV: Vector;
|
|
28
67
|
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discriminant tag carried by every {@link Collidable} so that intersection
|
|
3
|
+
* and collision routines can dispatch to the correct algorithm without
|
|
4
|
+
* `instanceof` checks.
|
|
5
|
+
*/
|
|
1
6
|
var CollisionType;
|
|
2
7
|
(function (CollisionType) {
|
|
3
8
|
CollisionType[CollisionType["Point"] = 0] = "Point";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collision.js","sources":["../../../../src/math/Collision.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Collision.js","sources":["../../../../src/math/Collision.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;AAIG;IACe;AAAlB,CAAA,UAAkB,aAAa,EAAA;AAC3B,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACL,IAAA,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACJ,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS;AACT,IAAA,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS;AACb,CAAC,EARiB,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -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 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
|
export declare class Ellipse implements ShapeLike {
|
|
8
19
|
readonly collisionType: CollisionType;
|
|
9
20
|
private readonly _position;
|
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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"}
|