@codexo/exojs 0.8.0 → 0.8.2
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 +318 -208
- package/README.md +19 -19
- package/dist/esm/animation/Easing.js +13 -21
- package/dist/esm/animation/Easing.js.map +1 -1
- package/dist/esm/animation/Tween.d.ts +3 -3
- package/dist/esm/animation/Tween.js +7 -5
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.js +1 -1
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/types.js.map +1 -1
- package/dist/esm/audio/AbstractMedia.d.ts +1 -1
- package/dist/esm/audio/AbstractMedia.js +1 -1
- package/dist/esm/audio/AbstractMedia.js.map +1 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +1 -1
- package/dist/esm/audio/AudioAnalyser.js +2 -2
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +1 -1
- package/dist/esm/audio/AudioBus.js.map +1 -1
- package/dist/esm/audio/AudioFilter.js +3 -1
- package/dist/esm/audio/AudioFilter.js.map +1 -1
- package/dist/esm/audio/AudioListener.d.ts +1 -1
- package/dist/esm/audio/AudioListener.js +5 -3
- package/dist/esm/audio/AudioListener.js.map +1 -1
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/BeatDetector.d.ts +4 -4
- package/dist/esm/audio/BeatDetector.js +68 -44
- package/dist/esm/audio/BeatDetector.js.map +1 -1
- package/dist/esm/audio/Envelope.d.ts +1 -1
- package/dist/esm/audio/Envelope.js +2 -2
- package/dist/esm/audio/Envelope.js.map +1 -1
- package/dist/esm/audio/Music.d.ts +1 -1
- package/dist/esm/audio/Music.js +1 -1
- package/dist/esm/audio/Music.js.map +1 -1
- package/dist/esm/audio/OscillatorSound.d.ts +2 -2
- package/dist/esm/audio/OscillatorSound.js.map +1 -1
- package/dist/esm/audio/Sound.d.ts +40 -2
- package/dist/esm/audio/Sound.js +69 -9
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/audio-context.js +1 -1
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/crossFade.js +1 -1
- package/dist/esm/audio/crossFade.js.map +1 -1
- package/dist/esm/audio/dsp/mel.d.ts +2 -2
- package/dist/esm/audio/dsp/tempogram.d.ts +2 -2
- package/dist/esm/audio/filters/ChorusFilter.js +12 -4
- package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +9 -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.js.map +1 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts +1 -1
- package/dist/esm/audio/filters/DuckingFilter.js +13 -5
- package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
- package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
- package/dist/esm/audio/filters/GranularFilter.js +30 -14
- package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/PitchShiftFilter.js +14 -10
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
- package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts +2 -2
- package/dist/esm/audio/filters/VocoderFilter.js +20 -12
- package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
- package/dist/esm/audio/filters/WorkletFilter.js +5 -6
- package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
- package/dist/esm/audio/filters/index.d.ts +7 -7
- package/dist/esm/audio/index.d.ts +9 -9
- package/dist/esm/audio/worklet/registerWorklet.js +7 -3
- package/dist/esm/audio/worklet/registerWorklet.js.map +1 -1
- package/dist/esm/core/Application.d.ts +13 -13
- package/dist/esm/core/Application.js +24 -16
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Bounds.d.ts +1 -1
- package/dist/esm/core/Bounds.js +1 -3
- package/dist/esm/core/Bounds.js.map +1 -1
- package/dist/esm/core/Clock.js +1 -1
- package/dist/esm/core/Clock.js.map +1 -1
- package/dist/esm/core/Color.js +2 -5
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +10 -10
- package/dist/esm/core/Scene.js +1 -1
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +4 -4
- package/dist/esm/core/SceneManager.js +39 -33
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +8 -8
- package/dist/esm/core/SceneNode.js +39 -29
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.d.ts +3 -3
- package/dist/esm/core/Signal.js +3 -3
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Time.js +6 -6
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/Timer.d.ts +1 -1
- package/dist/esm/core/Timer.js +1 -1
- package/dist/esm/core/Timer.js.map +1 -1
- package/dist/esm/core/capabilities.js +2 -4
- package/dist/esm/core/capabilities.js.map +1 -1
- package/dist/esm/core/index.d.ts +2 -2
- package/dist/esm/core/utils.d.ts +4 -4
- package/dist/esm/core/utils.js +10 -10
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/BoundingBoxesLayer.d.ts +3 -3
- package/dist/esm/debug/BoundingBoxesLayer.js +6 -13
- package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
- package/dist/esm/debug/DebugLayer.d.ts +1 -1
- package/dist/esm/debug/DebugLayer.js.map +1 -1
- package/dist/esm/debug/DebugOverlay.d.ts +2 -2
- package/dist/esm/debug/DebugOverlay.js +2 -2
- package/dist/esm/debug/DebugOverlay.js.map +1 -1
- package/dist/esm/debug/HitTestLayer.d.ts +3 -3
- package/dist/esm/debug/HitTestLayer.js +3 -10
- package/dist/esm/debug/HitTestLayer.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.d.ts +2 -2
- package/dist/esm/debug/PerformanceLayer.js +6 -6
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.d.ts +3 -3
- package/dist/esm/debug/PointerStackLayer.js +3 -3
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/debug/index.d.ts +3 -3
- package/dist/esm/debug/index.js +3 -3
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +99 -98
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.d.ts +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.js +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +7 -7
- package/dist/esm/input/Gamepad.js +10 -6
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.js +1 -1
- package/dist/esm/input/GamepadAxis.js.map +1 -1
- package/dist/esm/input/GamepadButton.js +1 -1
- package/dist/esm/input/GamepadButton.js.map +1 -1
- package/dist/esm/input/GamepadDefinitions.d.ts +4 -4
- package/dist/esm/input/GamepadDefinitions.js +12 -14
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GamepadMapping.d.ts +5 -5
- package/dist/esm/input/GamepadMapping.js.map +1 -1
- package/dist/esm/input/GamepadPromptLayouts.d.ts +2 -2
- package/dist/esm/input/GamepadPromptLayouts.js +8 -8
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +1 -1
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/InputBinding.d.ts +3 -3
- package/dist/esm/input/InputBinding.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +9 -9
- package/dist/esm/input/InputManager.js +25 -16
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionEvent.d.ts +1 -1
- package/dist/esm/input/InteractionEvent.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +2 -2
- package/dist/esm/input/InteractionManager.js +25 -16
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
- package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.d.ts +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.js +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
- package/dist/esm/input/Pointer.d.ts +2 -2
- package/dist/esm/input/Pointer.js +6 -6
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.d.ts +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.js +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
- package/dist/esm/input/SteamDeckGamepadMapping.js.map +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.d.ts +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.js +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
- package/dist/esm/input/XboxGamepadMapping.d.ts +1 -1
- package/dist/esm/input/XboxGamepadMapping.js +1 -1
- package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
- package/dist/esm/input/index.d.ts +16 -16
- package/dist/esm/input/interaction-hooks.js.map +1 -1
- package/dist/esm/input/types.js.map +1 -1
- package/dist/esm/math/AbstractVector.js +8 -9
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts +5 -5
- package/dist/esm/math/Circle.js +33 -21
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/Collision.d.ts +2 -2
- package/dist/esm/math/Collision.js.map +1 -1
- package/dist/esm/math/Ellipse.d.ts +5 -5
- package/dist/esm/math/Ellipse.js +28 -19
- package/dist/esm/math/Ellipse.js.map +1 -1
- package/dist/esm/math/Flags.d.ts +4 -4
- package/dist/esm/math/Flags.js.map +1 -1
- package/dist/esm/math/Interval.js.map +1 -1
- package/dist/esm/math/Line.d.ts +5 -5
- package/dist/esm/math/Line.js +23 -15
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/Matrix.js +14 -16
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableSize.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +1 -1
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/PolarVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +11 -11
- package/dist/esm/math/Polygon.js +37 -26
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/PolygonLike.d.ts +1 -1
- package/dist/esm/math/Quadtree.js +2 -8
- package/dist/esm/math/Quadtree.js.map +1 -1
- package/dist/esm/math/Random.js +5 -5
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +4 -4
- package/dist/esm/math/Rectangle.js +59 -41
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/Segment.d.ts +1 -1
- package/dist/esm/math/Segment.js +4 -4
- package/dist/esm/math/Segment.js.map +1 -1
- package/dist/esm/math/ShapeLike.d.ts +1 -1
- package/dist/esm/math/Size.js +1 -2
- package/dist/esm/math/Size.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +4 -4
- package/dist/esm/math/Vector.js +19 -13
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +3 -3
- package/dist/esm/math/collision-detection.js +49 -49
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts +8 -8
- package/dist/esm/math/collision-primitives.js +27 -33
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +3 -3
- package/dist/esm/math/geometry.js +55 -48
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/index.d.ts +16 -16
- package/dist/esm/math/swept-collision.d.ts +3 -3
- package/dist/esm/math/swept-collision.js +5 -8
- package/dist/esm/math/swept-collision.js.map +1 -1
- package/dist/esm/math/triangulate.js +34 -24
- package/dist/esm/math/triangulate.js.map +1 -1
- package/dist/esm/math/utils.d.ts +2 -2
- package/dist/esm/math/utils.js +7 -7
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/particles/ParticleSystem.d.ts +9 -9
- package/dist/esm/particles/ParticleSystem.js +29 -29
- package/dist/esm/particles/ParticleSystem.js.map +1 -1
- package/dist/esm/particles/distributions/BoxArea.js.map +1 -1
- package/dist/esm/particles/distributions/CircleArea.js.map +1 -1
- package/dist/esm/particles/distributions/ConeDirection.js.map +1 -1
- package/dist/esm/particles/distributions/Constant.js.map +1 -1
- package/dist/esm/particles/distributions/Curve.d.ts +1 -1
- package/dist/esm/particles/distributions/Curve.js.map +1 -1
- package/dist/esm/particles/distributions/Gradient.d.ts +1 -1
- package/dist/esm/particles/distributions/Gradient.js +1 -1
- package/dist/esm/particles/distributions/Gradient.js.map +1 -1
- package/dist/esm/particles/distributions/LineSegment.js.map +1 -1
- package/dist/esm/particles/distributions/Range.js.map +1 -1
- package/dist/esm/particles/distributions/VectorRange.js.map +1 -1
- package/dist/esm/particles/distributions/index.d.ts +9 -9
- package/dist/esm/particles/gpu/ParticleGpuState.d.ts +3 -3
- package/dist/esm/particles/gpu/ParticleGpuState.js +48 -21
- package/dist/esm/particles/gpu/ParticleGpuState.js.map +1 -1
- package/dist/esm/particles/index.d.ts +1 -1
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +2 -2
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/ApplyForce.d.ts +1 -1
- package/dist/esm/particles/modules/ApplyForce.js.map +1 -1
- package/dist/esm/particles/modules/AttractToPoint.d.ts +1 -1
- package/dist/esm/particles/modules/AttractToPoint.js.map +1 -1
- package/dist/esm/particles/modules/BurstSpawn.d.ts +4 -4
- package/dist/esm/particles/modules/BurstSpawn.js +2 -2
- package/dist/esm/particles/modules/BurstSpawn.js.map +1 -1
- package/dist/esm/particles/modules/ColorOverLifetime.d.ts +2 -2
- package/dist/esm/particles/modules/ColorOverLifetime.js +1 -1
- package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/ColorOverSpeed.d.ts +2 -2
- package/dist/esm/particles/modules/ColorOverSpeed.js +1 -1
- package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -1
- package/dist/esm/particles/modules/DeathModule.js.map +1 -1
- package/dist/esm/particles/modules/Drag.d.ts +1 -1
- package/dist/esm/particles/modules/Drag.js +1 -3
- package/dist/esm/particles/modules/Drag.js.map +1 -1
- package/dist/esm/particles/modules/OrbitalForce.d.ts +1 -1
- package/dist/esm/particles/modules/OrbitalForce.js.map +1 -1
- package/dist/esm/particles/modules/RateSpawn.d.ts +3 -3
- package/dist/esm/particles/modules/RateSpawn.js +2 -2
- package/dist/esm/particles/modules/RateSpawn.js.map +1 -1
- package/dist/esm/particles/modules/RepelFromPoint.d.ts +1 -1
- package/dist/esm/particles/modules/RepelFromPoint.js.map +1 -1
- package/dist/esm/particles/modules/RotateOverLifetime.d.ts +1 -1
- package/dist/esm/particles/modules/RotateOverLifetime.js +1 -3
- package/dist/esm/particles/modules/RotateOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/ScaleOverLifetime.d.ts +2 -2
- package/dist/esm/particles/modules/ScaleOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/SpawnModule.js.map +1 -1
- package/dist/esm/particles/modules/SpawnOnDeath.d.ts +1 -1
- package/dist/esm/particles/modules/SpawnOnDeath.js.map +1 -1
- package/dist/esm/particles/modules/Turbulence.d.ts +1 -1
- package/dist/esm/particles/modules/Turbulence.js.map +1 -1
- package/dist/esm/particles/modules/UpdateModule.js.map +1 -1
- package/dist/esm/particles/modules/VelocityOverLifetime.d.ts +2 -2
- package/dist/esm/particles/modules/VelocityOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/WgslContribution.d.ts +3 -3
- package/dist/esm/particles/modules/WgslContribution.js.map +1 -1
- package/dist/esm/particles/modules/index.d.ts +17 -17
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +2 -2
- package/dist/esm/rendering/Container.js +10 -11
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/RenderBackend.d.ts +6 -6
- package/dist/esm/rendering/RenderBackendType.js.map +1 -1
- package/dist/esm/rendering/RenderNode.d.ts +10 -10
- package/dist/esm/rendering/RenderNode.js +31 -31
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RenderTarget.d.ts +2 -2
- package/dist/esm/rendering/RenderTarget.js +5 -5
- package/dist/esm/rendering/RenderTarget.js.map +1 -1
- package/dist/esm/rendering/RenderTargetPass.d.ts +3 -3
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
- package/dist/esm/rendering/Renderer.d.ts +2 -2
- package/dist/esm/rendering/RendererRegistry.d.ts +3 -3
- package/dist/esm/rendering/RendererRegistry.js +2 -3
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +3 -3
- package/dist/esm/rendering/View.js +17 -20
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/BlurFilter.d.ts +1 -1
- package/dist/esm/rendering/filters/BlurFilter.js +4 -9
- package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
- package/dist/esm/rendering/filters/ColorFilter.d.ts +1 -1
- package/dist/esm/rendering/filters/ColorFilter.js +3 -9
- package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
- package/dist/esm/rendering/filters/Filter.d.ts +1 -1
- package/dist/esm/rendering/filters/Filter.js.map +1 -1
- package/dist/esm/rendering/filters/LutFilter.d.ts +87 -0
- package/dist/esm/rendering/filters/LutFilter.js +261 -0
- package/dist/esm/rendering/filters/LutFilter.js.map +1 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +2 -2
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +7 -14
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +11 -10
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/index.d.ts +28 -27
- package/dist/esm/rendering/mesh/Mesh.d.ts +49 -1
- package/dist/esm/rendering/mesh/Mesh.js +3 -1
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +3 -3
- package/dist/esm/rendering/primitives/Graphics.js +12 -12
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/shader/Shader.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js +6 -8
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +3 -3
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts +4 -4
- package/dist/esm/rendering/sprite/Sprite.js +51 -35
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Spritesheet.d.ts +5 -9
- package/dist/esm/rendering/sprite/Spritesheet.js +1 -1
- package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
- package/dist/esm/rendering/text/DynamicGlyphAtlas.js +3 -9
- package/dist/esm/rendering/text/DynamicGlyphAtlas.js.map +1 -1
- package/dist/esm/rendering/text/Text.js +9 -9
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextLayout.d.ts +2 -2
- package/dist/esm/rendering/text/TextLayout.js.map +1 -1
- package/dist/esm/rendering/text/TextStyle.js.map +1 -1
- package/dist/esm/rendering/text/atlas-singleton.js.map +1 -1
- package/dist/esm/rendering/texture/RenderTexture.d.ts +1 -1
- package/dist/esm/rendering/texture/RenderTexture.js +4 -1
- package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Sampler.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +2 -2
- package/dist/esm/rendering/texture/Texture.js +8 -5
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/utils.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +3 -3
- package/dist/esm/rendering/video/Video.js +7 -6
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +6 -6
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -10
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js +1 -2
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +11 -11
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +19 -21
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +2 -2
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +6 -8
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +7 -4
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +110 -43
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +10 -18
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +54 -22
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +11 -14
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +1 -1
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js.map +1 -1
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +1 -1
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js +1 -2
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +7 -7
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +44 -30
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -2
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +1 -3
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +2 -2
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +25 -23
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +1 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +100 -56
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -2
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +45 -45
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts +1 -1
- package/dist/esm/rendering/webgpu/compute/index.d.ts +2 -2
- package/dist/esm/resources/AbstractAssetFactory.d.ts +1 -1
- package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
- package/dist/esm/resources/AssetManifest.d.ts +1 -1
- package/dist/esm/resources/AssetManifest.js +2 -2
- package/dist/esm/resources/AssetManifest.js.map +1 -1
- package/dist/esm/resources/CacheFirstStrategy.d.ts +2 -2
- package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
- package/dist/esm/resources/CacheStrategy.d.ts +1 -1
- package/dist/esm/resources/FactoryRegistry.d.ts +1 -1
- package/dist/esm/resources/FactoryRegistry.js +2 -3
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts +1 -1
- package/dist/esm/resources/IndexedDbDatabase.js +11 -14
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbStore.d.ts +1 -1
- package/dist/esm/resources/IndexedDbStore.js +2 -7
- package/dist/esm/resources/IndexedDbStore.js.map +1 -1
- package/dist/esm/resources/Loader.d.ts +9 -9
- package/dist/esm/resources/Loader.js +48 -35
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +2 -2
- package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
- package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
- package/dist/esm/resources/factories/FontFactory.js +1 -1
- package/dist/esm/resources/factories/FontFactory.js.map +1 -1
- package/dist/esm/resources/factories/ImageFactory.js +4 -4
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/JsonFactory.d.ts +1 -1
- package/dist/esm/resources/factories/JsonFactory.js +1 -1
- package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +1 -1
- package/dist/esm/resources/factories/MusicFactory.js +4 -4
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.d.ts +1 -1
- package/dist/esm/resources/factories/SoundFactory.js +3 -3
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SvgFactory.js +3 -3
- package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextFactory.js +1 -1
- package/dist/esm/resources/factories/TextFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +1 -1
- package/dist/esm/resources/factories/TextureFactory.js +3 -3
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/factories/VideoFactory.d.ts +2 -2
- package/dist/esm/resources/factories/VideoFactory.js +5 -5
- package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
- package/dist/esm/resources/factories/VttFactory.d.ts +2 -2
- package/dist/esm/resources/factories/VttFactory.js +6 -6
- package/dist/esm/resources/factories/VttFactory.js.map +1 -1
- package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
- package/dist/esm/resources/index.d.ts +11 -11
- package/dist/esm/resources/utils.js +30 -25
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/exo.esm.js +25798 -25144
- package/dist/exo.esm.js.map +1 -1
- package/package.json +15 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getDistance, inRange, VoronoiRegion } from './utils.js';
|
|
2
2
|
|
|
3
3
|
const epsilon = 1e-10;
|
|
4
|
-
const getCurveSegments = (radiusA, radiusB = radiusA) =>
|
|
4
|
+
const getCurveSegments = (radiusA, radiusB = radiusA) => Math.max(16, Math.ceil(Math.sqrt(Math.max(radiusA, radiusB)) * 8));
|
|
5
5
|
/** Generate a polygon approximation of an ellipse as an array of world-space points. Segment count scales with the larger radius. */
|
|
6
6
|
const buildEllipsePoints = ({ x: centerX, y: centerY, rx, ry }) => {
|
|
7
7
|
if (rx <= 0 || ry <= 0) {
|
|
@@ -13,8 +13,8 @@ const buildEllipsePoints = ({ x: centerX, y: centerY, rx, ry }) => {
|
|
|
13
13
|
for (let i = 0; i < segments; i++) {
|
|
14
14
|
const angle = i * delta;
|
|
15
15
|
points.push({
|
|
16
|
-
x: centerX +
|
|
17
|
-
y: centerY +
|
|
16
|
+
x: centerX + Math.cos(angle) * rx,
|
|
17
|
+
y: centerY + Math.sin(angle) * ry,
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
return points;
|
|
@@ -30,27 +30,24 @@ const buildCirclePoints = ({ x: centerX, y: centerY, radius }) => {
|
|
|
30
30
|
for (let i = 0; i < segments; i++) {
|
|
31
31
|
const angle = i * delta;
|
|
32
32
|
points.push({
|
|
33
|
-
x: centerX +
|
|
34
|
-
y: centerY +
|
|
33
|
+
x: centerX + Math.cos(angle) * radius,
|
|
34
|
+
y: centerY + Math.sin(angle) * radius,
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
return points;
|
|
38
38
|
};
|
|
39
39
|
/** Return the four corner points of a rectangle in TL → TR → BR → BL order. */
|
|
40
|
-
const buildRectanglePoints = ({ x, y, width, height }) =>
|
|
40
|
+
const buildRectanglePoints = ({ x, y, width, height }) => [
|
|
41
41
|
{ x, y },
|
|
42
42
|
{ x: x + width, y },
|
|
43
43
|
{ x: x + width, y: y + height },
|
|
44
44
|
{ x, y: y + height },
|
|
45
|
-
]
|
|
45
|
+
];
|
|
46
46
|
/** Translate a polygon's local-space `points` by its world offset `(x, y)`. */
|
|
47
|
-
const buildPolygonWorldPoints = ({ x: offsetX, y: offsetY, points }) =>
|
|
48
|
-
const pointOnSegment = ({ x: px, y: py }, { x: x1, y: y1 }, { x: x2, y: y2 }) =>
|
|
49
|
-
&& px >= Math.min(x1, x2) - epsilon
|
|
50
|
-
&& py <= Math.max(y1, y2) + epsilon
|
|
51
|
-
&& py >= Math.min(y1, y2) - epsilon);
|
|
47
|
+
const buildPolygonWorldPoints = ({ x: offsetX, y: offsetY, points }) => points.map(({ x, y }) => ({ x: x + offsetX, y: y + offsetY }));
|
|
48
|
+
const pointOnSegment = ({ x: px, y: py }, { x: x1, y: y1 }, { x: x2, y: y2 }) => px <= Math.max(x1, x2) + epsilon && px >= Math.min(x1, x2) - epsilon && py <= Math.max(y1, y2) + epsilon && py >= Math.min(y1, y2) - epsilon;
|
|
52
49
|
const orientation = ({ x: x1, y: y1 }, { x: x2, y: y2 }, { x: x3, y: y3 }) => {
|
|
53
|
-
const determinant = (
|
|
50
|
+
const determinant = (y2 - y1) * (x3 - x2) - (x2 - x1) * (y3 - y2);
|
|
54
51
|
if (Math.abs(determinant) <= epsilon) {
|
|
55
52
|
return 0;
|
|
56
53
|
}
|
|
@@ -87,7 +84,7 @@ const polygonContainsPoint = ({ x, y }, points) => {
|
|
|
87
84
|
for (let current = 0, previous = len - 1; current < len; previous = current++) {
|
|
88
85
|
const prev = points[previous];
|
|
89
86
|
const curr = points[current];
|
|
90
|
-
if (
|
|
87
|
+
if (curr.y > y !== prev.y > y && x < (prev.x - curr.x) * ((y - curr.y) / (prev.y - curr.y)) + curr.x) {
|
|
91
88
|
inside = !inside;
|
|
92
89
|
}
|
|
93
90
|
}
|
|
@@ -113,11 +110,10 @@ const polygonsIntersect = (polygonA, polygonB) => {
|
|
|
113
110
|
}
|
|
114
111
|
}
|
|
115
112
|
}
|
|
116
|
-
return polygonContainsPoint(polygonA[0], polygonB)
|
|
117
|
-
|| polygonContainsPoint(polygonB[0], polygonA);
|
|
113
|
+
return polygonContainsPoint(polygonA[0], polygonB) || polygonContainsPoint(polygonB[0], polygonA);
|
|
118
114
|
};
|
|
119
115
|
/** Return `true` when two points are within `threshold` distance of each other. */
|
|
120
|
-
const intersectionPointPoint = ({ x: x1, y: y1 }, { x: x2, y: y2 }, threshold = 0) =>
|
|
116
|
+
const intersectionPointPoint = ({ x: x1, y: y1 }, { x: x2, y: y2 }, threshold = 0) => getDistance(x1, y1, x2, y2) <= threshold;
|
|
121
117
|
/**
|
|
122
118
|
* Return `true` when `point` lies on the line segment `(x1,y1)–(x2,y2)`
|
|
123
119
|
* within `threshold`. Uses sum-of-distances: the point is "on" the segment
|
|
@@ -127,45 +123,43 @@ const intersectionPointLineSegment = ({ x, y }, { x: x1, y: y1 }, { x: x2, y: y2
|
|
|
127
123
|
const d1 = getDistance(x, y, x1, y1);
|
|
128
124
|
const d2 = getDistance(x, y, x2, y2);
|
|
129
125
|
const d3 = getDistance(x1, y1, x2, y2);
|
|
130
|
-
return
|
|
131
|
-
&& (d1 + d2) <= (d3 + threshold);
|
|
126
|
+
return d1 + d2 >= d3 - threshold && d1 + d2 <= d3 + threshold;
|
|
132
127
|
};
|
|
133
|
-
const intersectionPointRect = ({ x: x1, y: y1 }, { x: x2, y: y2, width, height }) =>
|
|
134
|
-
const intersectionPointCircle = ({ x: x1, y: y1 }, { x: x2, y: y2, radius }) =>
|
|
128
|
+
const intersectionPointRect = ({ x: x1, y: y1 }, { x: x2, y: y2, width, height }) => inRange(x1, x2, x2 + width) && inRange(y1, y2, y2 + height);
|
|
129
|
+
const intersectionPointCircle = ({ x: x1, y: y1 }, { x: x2, y: y2, radius }) => radius > 0 && getDistance(x1, y1, x2, y2) <= radius;
|
|
135
130
|
const intersectionPointEllipse = ({ x: x1, y: y1 }, { x: x2, y: y2, rx, ry }) => {
|
|
136
131
|
if (rx <= 0 || ry <= 0) {
|
|
137
132
|
return false;
|
|
138
133
|
}
|
|
139
134
|
const normX = (x1 - x2) / rx;
|
|
140
135
|
const normY = (y1 - y2) / ry;
|
|
141
|
-
return
|
|
136
|
+
return normX * normX + normY * normY <= 1;
|
|
142
137
|
};
|
|
143
|
-
const intersectionPointPoly = (point, { points }) =>
|
|
138
|
+
const intersectionPointPoly = (point, { points }) => polygonContainsPoint(point, points);
|
|
144
139
|
const intersectionLineLineSegments = (a1, a2, b1, b2) => {
|
|
145
|
-
const denominator = (
|
|
140
|
+
const denominator = (a2.x - a1.x) * (b2.y - b1.y) - (b2.x - b1.x) * (a2.y - a1.y);
|
|
146
141
|
if (Math.abs(denominator) <= epsilon) {
|
|
147
142
|
return false;
|
|
148
143
|
}
|
|
149
|
-
const uA = ((
|
|
150
|
-
const uB = ((
|
|
151
|
-
return uA >= 0 && uA <= 1
|
|
152
|
-
&& uB >= 0 && uB <= 1;
|
|
144
|
+
const uA = ((b2.x - b1.x) * (a1.y - b1.y) - (b2.y - b1.y) * (a1.x - b1.x)) / denominator;
|
|
145
|
+
const uB = ((a2.x - a1.x) * (a1.y - b1.y) - (a2.y - a1.y) * (a1.x - b1.x)) / denominator;
|
|
146
|
+
return uA >= 0 && uA <= 1 && uB >= 0 && uB <= 1;
|
|
153
147
|
};
|
|
154
148
|
const intersectionRectRect = ({ x: x1, y: y1, width: w1, height: h1 }, { x: x2, y: y2, width: w2, height: h2 }) => {
|
|
155
|
-
if (x2 >
|
|
149
|
+
if (x2 > x1 + w1 || y2 > y1 + h1) {
|
|
156
150
|
return false;
|
|
157
151
|
}
|
|
158
|
-
if (x1 >
|
|
152
|
+
if (x1 > x2 + w2 || y1 > y2 + h2) {
|
|
159
153
|
return false;
|
|
160
154
|
}
|
|
161
155
|
return true;
|
|
162
156
|
};
|
|
163
157
|
/** Euclidean length of the 2D vector `(x, y)`. */
|
|
164
|
-
const getVectorLength = (x, y) => Math.sqrt(
|
|
158
|
+
const getVectorLength = (x, y) => Math.sqrt(x * x + y * y);
|
|
165
159
|
/** Squared length of the 2D vector `(x, y)`. Avoids the `sqrt`. */
|
|
166
|
-
const getVectorLengthSquared = (x, y) =>
|
|
160
|
+
const getVectorLengthSquared = (x, y) => x * x + y * y;
|
|
167
161
|
/** Dot product of `(x1, y1)` and `(x2, y2)`. */
|
|
168
|
-
const getDotProduct = (x1, y1, x2, y2) =>
|
|
162
|
+
const getDotProduct = (x1, y1, x2, y2) => x1 * x2 + y1 * y2;
|
|
169
163
|
/**
|
|
170
164
|
* Classify `(pointX, pointY)` relative to the directed edge `(lineX, lineY)`
|
|
171
165
|
* using the dot product. Returns `left` when before the edge start, `right`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collision-primitives.js","sources":["../../../../src/math/collision-primitives.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAuBA,MAAM,OAAO,GAAG,KAAK;AAErB,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,OAAO,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"collision-primitives.js","sources":["../../../../src/math/collision-primitives.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
export interface MeshGeometryData {
|
|
7
7
|
readonly vertices: Float32Array;
|
|
8
8
|
readonly indices: Uint16Array;
|
|
9
|
-
readonly points:
|
|
9
|
+
readonly points: number[];
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* Build a single straight line segment as a triangle-list mesh with the given
|
|
@@ -23,7 +23,7 @@ export declare const buildLine: (startX: number, startY: number, endX: number, e
|
|
|
23
23
|
* Uses miter joints at each interior vertex; joints exceeding 14× lineWidth
|
|
24
24
|
* are bevelled to avoid extremely long spikes.
|
|
25
25
|
*/
|
|
26
|
-
export declare const buildPath: (points:
|
|
26
|
+
export declare const buildPath: (points: number[], width: number) => MeshGeometryData;
|
|
27
27
|
/**
|
|
28
28
|
* Build a filled circle as a triangle-list mesh. Vertex count scales with
|
|
29
29
|
* `radius` (approximately `15√(2r)` segments) so small circles use fewer
|
|
@@ -40,7 +40,7 @@ export declare const buildEllipse: (centerX: number, centerY: number, radiusX: n
|
|
|
40
40
|
* mesh via ear-clipping triangulation. `points` must contain at least three
|
|
41
41
|
* `(x, y)` pairs (minimum 6 values); throws otherwise.
|
|
42
42
|
*/
|
|
43
|
-
export declare const buildPolygon: (points:
|
|
43
|
+
export declare const buildPolygon: (points: number[]) => MeshGeometryData;
|
|
44
44
|
/**
|
|
45
45
|
* Build a filled axis-aligned rectangle as a triangle-list mesh. Produces
|
|
46
46
|
* exactly 4 vertices and 2 triangles regardless of dimensions.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { triangulate } from './triangulate.js';
|
|
2
|
-
import { Vector } from './Vector.js';
|
|
3
2
|
import { tau } from './utils.js';
|
|
3
|
+
import { Vector } from './Vector.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Build a single straight line segment as a triangle-list mesh with the given
|
|
@@ -13,10 +13,14 @@ const buildLine = (startX, startY, endX, endY, width) => {
|
|
|
13
13
|
const perpA = new Vector(startX - endX, startY - endY).perp().normalize().multiply(distance);
|
|
14
14
|
const perpB = new Vector(endX - startX, endY - startY).perp().normalize().multiply(distance);
|
|
15
15
|
const vertices = new Float32Array([
|
|
16
|
-
startX - perpA.x,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
startX - perpA.x,
|
|
17
|
+
startY - perpA.y, // 0: start-left
|
|
18
|
+
startX + perpA.x,
|
|
19
|
+
startY + perpA.y, // 1: start-right
|
|
20
|
+
endX - perpB.x,
|
|
21
|
+
endY - perpB.y, // 2: end-left
|
|
22
|
+
endX + perpB.x,
|
|
23
|
+
endY + perpB.y, // 3: end-right
|
|
20
24
|
]);
|
|
21
25
|
perpA.destroy();
|
|
22
26
|
perpB.destroy();
|
|
@@ -41,12 +45,12 @@ const buildPath = (points, width) => {
|
|
|
41
45
|
const lastPoint = new Vector(points[points.length - 2], points[points.length - 1]);
|
|
42
46
|
const outlinePoints = points;
|
|
43
47
|
if (firstPoint.x === lastPoint.x && firstPoint.y === lastPoint.y) {
|
|
44
|
-
points = points
|
|
48
|
+
points = [...points];
|
|
45
49
|
points.pop();
|
|
46
50
|
points.pop();
|
|
47
51
|
lastPoint.set(points[points.length - 2], points[points.length - 1]);
|
|
48
|
-
const midPointX = lastPoint.x + (
|
|
49
|
-
const midPointY = lastPoint.y + (
|
|
52
|
+
const midPointX = lastPoint.x + (firstPoint.x - lastPoint.x) * 0.5;
|
|
53
|
+
const midPointY = lastPoint.y + (firstPoint.y - lastPoint.y) * 0.5;
|
|
50
54
|
points.unshift(midPointX, midPointY);
|
|
51
55
|
points.push(midPointX, midPointY);
|
|
52
56
|
}
|
|
@@ -58,15 +62,15 @@ const buildPath = (points, width) => {
|
|
|
58
62
|
let p1y = points[1];
|
|
59
63
|
let p2x = points[2];
|
|
60
64
|
let p2y = points[3];
|
|
61
|
-
let p3x
|
|
62
|
-
let p3y
|
|
65
|
+
let p3x;
|
|
66
|
+
let p3y;
|
|
63
67
|
let perpx = -(p1y - p2y);
|
|
64
68
|
let perpy = p1x - p2x;
|
|
65
|
-
let perp2x
|
|
66
|
-
let perp2y
|
|
67
|
-
let perp3x
|
|
68
|
-
let perp3y
|
|
69
|
-
let dist = Math.sqrt(
|
|
69
|
+
let perp2x;
|
|
70
|
+
let perp2y;
|
|
71
|
+
let perp3x;
|
|
72
|
+
let perp3y;
|
|
73
|
+
let dist = Math.sqrt(perpx * perpx + perpy * perpy);
|
|
70
74
|
perpx /= dist;
|
|
71
75
|
perpy /= dist;
|
|
72
76
|
perpx *= lineWidth;
|
|
@@ -75,45 +79,44 @@ const buildPath = (points, width) => {
|
|
|
75
79
|
stripVertices.push(p1x + perpx, p1y + perpy);
|
|
76
80
|
for (let i = 1; i < length - 1; i++) {
|
|
77
81
|
p1x = points[(i - 1) * 2];
|
|
78
|
-
p1y = points[(
|
|
82
|
+
p1y = points[(i - 1) * 2 + 1];
|
|
79
83
|
p2x = points[i * 2];
|
|
80
|
-
p2y = points[
|
|
84
|
+
p2y = points[i * 2 + 1];
|
|
81
85
|
p3x = points[(i + 1) * 2];
|
|
82
|
-
p3y = points[(
|
|
86
|
+
p3y = points[(i + 1) * 2 + 1];
|
|
83
87
|
perpx = -(p1y - p2y);
|
|
84
88
|
perpy = p1x - p2x;
|
|
85
|
-
dist = Math.sqrt(
|
|
89
|
+
dist = Math.sqrt(perpx * perpx + perpy * perpy);
|
|
86
90
|
perpx /= dist;
|
|
87
91
|
perpy /= dist;
|
|
88
92
|
perpx *= lineWidth;
|
|
89
93
|
perpy *= lineWidth;
|
|
90
94
|
perp2x = -(p2y - p3y);
|
|
91
95
|
perp2y = p2x - p3x;
|
|
92
|
-
dist = Math.sqrt(
|
|
96
|
+
dist = Math.sqrt(perp2x * perp2x + perp2y * perp2y);
|
|
93
97
|
perp2x /= dist;
|
|
94
98
|
perp2y /= dist;
|
|
95
99
|
perp2x *= lineWidth;
|
|
96
100
|
perp2y *= lineWidth;
|
|
97
|
-
const a1 =
|
|
98
|
-
const b1 =
|
|
99
|
-
const c1 = (
|
|
100
|
-
const a2 =
|
|
101
|
-
const b2 =
|
|
102
|
-
const c2 = (
|
|
103
|
-
|
|
101
|
+
const a1 = -perpy + p1y - (-perpy + p2y);
|
|
102
|
+
const b1 = -perpx + p2x - (-perpx + p1x);
|
|
103
|
+
const c1 = (-perpx + p1x) * (-perpy + p2y) - (-perpx + p2x) * (-perpy + p1y);
|
|
104
|
+
const a2 = -perp2y + p3y - (-perp2y + p2y);
|
|
105
|
+
const b2 = -perp2x + p2x - (-perp2x + p3x);
|
|
106
|
+
const c2 = (-perp2x + p3x) * (-perp2y + p2y) - (-perp2x + p2x) * (-perp2y + p3y);
|
|
107
|
+
const denom = a1 * b2 - a2 * b1;
|
|
104
108
|
if (Math.abs(denom) < 0.1) {
|
|
105
|
-
denom += 10.1;
|
|
106
109
|
stripVertices.push(p2x - perpx, p2y - perpy);
|
|
107
110
|
stripVertices.push(p2x + perpx, p2y + perpy);
|
|
108
111
|
continue;
|
|
109
112
|
}
|
|
110
|
-
const px = (
|
|
111
|
-
const py = (
|
|
112
|
-
const pdist = (
|
|
113
|
-
if (pdist >
|
|
113
|
+
const px = (b1 * c2 - b2 * c1) / denom;
|
|
114
|
+
const py = (a2 * c1 - a1 * c2) / denom;
|
|
115
|
+
const pdist = (px - p2x) * (px - p2x) + (py - p2y) * (py - p2y);
|
|
116
|
+
if (pdist > 196 * lineWidth * lineWidth) {
|
|
114
117
|
perp3x = perpx - perp2x;
|
|
115
118
|
perp3y = perpy - perp2y;
|
|
116
|
-
dist = Math.sqrt(
|
|
119
|
+
dist = Math.sqrt(perp3x * perp3x + perp3y * perp3y);
|
|
117
120
|
perp3x /= dist;
|
|
118
121
|
perp3y /= dist;
|
|
119
122
|
perp3x *= lineWidth;
|
|
@@ -128,12 +131,12 @@ const buildPath = (points, width) => {
|
|
|
128
131
|
}
|
|
129
132
|
}
|
|
130
133
|
p1x = points[(length - 2) * 2];
|
|
131
|
-
p1y = points[(
|
|
134
|
+
p1y = points[(length - 2) * 2 + 1];
|
|
132
135
|
p2x = points[(length - 1) * 2];
|
|
133
|
-
p2y = points[(
|
|
136
|
+
p2y = points[(length - 1) * 2 + 1];
|
|
134
137
|
perpx = -(p1y - p2y);
|
|
135
138
|
perpy = p1x - p2x;
|
|
136
|
-
dist = Math.sqrt(
|
|
139
|
+
dist = Math.sqrt(perpx * perpx + perpy * perpy);
|
|
137
140
|
perpx /= dist;
|
|
138
141
|
perpy /= dist;
|
|
139
142
|
perpx *= lineWidth;
|
|
@@ -177,8 +180,8 @@ const buildCircle = (centerX, centerY, radius) => {
|
|
|
177
180
|
vertices[0] = centerX;
|
|
178
181
|
vertices[1] = centerY;
|
|
179
182
|
for (let i = 0; i < length; i++) {
|
|
180
|
-
const segmentX = centerX +
|
|
181
|
-
const segmentY = centerY +
|
|
183
|
+
const segmentX = centerX + Math.sin(segment * i) * radius;
|
|
184
|
+
const segmentY = centerY + Math.cos(segment * i) * radius;
|
|
182
185
|
points.push(segmentX, segmentY);
|
|
183
186
|
const offset = (i + 1) * 2;
|
|
184
187
|
vertices[offset] = segmentX;
|
|
@@ -205,8 +208,8 @@ const buildEllipse = (centerX, centerY, radiusX, radiusY) => {
|
|
|
205
208
|
vertices[0] = centerX;
|
|
206
209
|
vertices[1] = centerY;
|
|
207
210
|
for (let i = 0; i < length; i++) {
|
|
208
|
-
const segmentX = centerX +
|
|
209
|
-
const segmentY = centerY +
|
|
211
|
+
const segmentX = centerX + Math.sin(segment * i) * radiusX;
|
|
212
|
+
const segmentY = centerY + Math.cos(segment * i) * radiusY;
|
|
210
213
|
points.push(segmentX, segmentY);
|
|
211
214
|
const offset = (i + 1) * 2;
|
|
212
215
|
vertices[offset] = segmentX;
|
|
@@ -235,7 +238,7 @@ const buildPolygon = (points) => {
|
|
|
235
238
|
const vertices = new Float32Array(points.length);
|
|
236
239
|
for (let i = 0; i < length; i++) {
|
|
237
240
|
vertices[i * 2] = points[i * 2];
|
|
238
|
-
vertices[
|
|
241
|
+
vertices[i * 2 + 1] = points[i * 2 + 1];
|
|
239
242
|
}
|
|
240
243
|
const indices = new Uint16Array(triangles);
|
|
241
244
|
return { vertices, indices, points };
|
|
@@ -247,10 +250,14 @@ const buildPolygon = (points) => {
|
|
|
247
250
|
const buildRectangle = (x, y, width, height) => {
|
|
248
251
|
// 4 vertices: TL, TR, BL, BR. Triangles [0, 1, 2, 1, 3, 2] (clockwise).
|
|
249
252
|
const vertices = new Float32Array([
|
|
250
|
-
x,
|
|
251
|
-
|
|
252
|
-
x
|
|
253
|
-
|
|
253
|
+
x,
|
|
254
|
+
y, // 0 TL
|
|
255
|
+
x + width,
|
|
256
|
+
y, // 1 TR
|
|
257
|
+
x,
|
|
258
|
+
y + height, // 2 BL
|
|
259
|
+
x + width,
|
|
260
|
+
y + height, // 3 BR
|
|
254
261
|
]);
|
|
255
262
|
const indices = new Uint16Array([0, 1, 2, 1, 3, 2]);
|
|
256
263
|
// Outline points walk the perimeter (TL -> TR -> BR -> BL).
|
|
@@ -263,14 +270,14 @@ const buildRectangle = (x, y, width, height) => {
|
|
|
263
270
|
* half of `radius`. `rotation` offsets the first tip angle in radians.
|
|
264
271
|
*/
|
|
265
272
|
const buildStar = (centerX, centerY, points, radius, innerRadius = radius / 2, rotation = 0) => {
|
|
266
|
-
const startAngle =
|
|
273
|
+
const startAngle = Math.PI / -2 + rotation;
|
|
267
274
|
const length = points * 2;
|
|
268
275
|
const delta = tau / length;
|
|
269
276
|
const path = [];
|
|
270
277
|
for (let i = 0; i < length; i++) {
|
|
271
|
-
const angle = startAngle +
|
|
278
|
+
const angle = startAngle + i * delta;
|
|
272
279
|
const rad = i % 2 ? innerRadius : radius;
|
|
273
|
-
path.push(centerX +
|
|
280
|
+
path.push(centerX + rad * Math.cos(angle), centerY + rad * Math.sin(angle));
|
|
274
281
|
}
|
|
275
282
|
return buildPolygon(path);
|
|
276
283
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.js","sources":["../../../../src/math/geometry.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAeA;;;;AAIG;AACI,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,MAAc,EAAE,IAAY,EAAE,IAAY,EAAE,KAAa,KAAsB;IACrH,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3C,IAAA,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC5F,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAE5F,IAAA,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC;QAC9B,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;QAClC,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;QAClC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC;AACjC,KAAA,CAAC;IAEF,KAAK,CAAC,OAAO,EAAE;IACf,KAAK,CAAC,OAAO,EAAE;AAEf,IAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnD,IAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AACxC;AAEA;;;;;;;;AAQG;MACU,SAAS,GAAG,CAAC,MAAqB,EAAE,KAAa,KAAsB;AAChF,IAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,QAAA,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;IAC3E;AAEA,IAAA,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC;AAC3B,IAAA,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClF,MAAM,aAAa,GAAG,MAAM;AAE5B,IAAA,IAAI,UAAU,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE;AAC9D,QAAA,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE;QAEvB,MAAM,CAAC,GAAG,EAAE;QACZ,MAAM,CAAC,GAAG,EAAE;QAEZ,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEnE,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC;AACpE,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC;AAEpE,QAAA,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;AACpC,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;IACrC;IAEA,UAAU,CAAC,OAAO,EAAE;IACpB,SAAS,CAAC,OAAO,EAAE;AAEnB,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;IAChC,MAAM,aAAa,GAAkB,EAAE;AAEvC,IAAA,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,IAAA,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,IAAA,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,IAAA,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;IACnB,IAAI,GAAG,GAAG,CAAC;IACX,IAAI,GAAG,GAAG,CAAC;IAEX,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;AACxB,IAAA,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG;IACrB,IAAI,MAAM,GAAG,CAAC;IACd,IAAI,MAAM,GAAG,CAAC;IACd,IAAI,MAAM,GAAG,CAAC;IACd,IAAI,MAAM,GAAG,CAAC;AAEd,IAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;IAEvD,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,SAAS;IAClB,KAAK,IAAI,SAAS;IAElB,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;IAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;AAE5C,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACjC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE/B,QAAA,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE/B,QAAA,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;AACpB,QAAA,KAAK,GAAG,GAAG,GAAG,GAAG;AAEjB,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;QAEnD,KAAK,IAAI,IAAI;QACb,KAAK,IAAI,IAAI;QACb,KAAK,IAAI,SAAS;QAClB,KAAK,IAAI,SAAS;AAElB,QAAA,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;AACrB,QAAA,MAAM,GAAG,GAAG,GAAG,GAAG;AAElB,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC,CAAC;QAEvD,MAAM,IAAI,IAAI;QACd,MAAM,IAAI,IAAI;QACd,MAAM,IAAI,SAAS;QACnB,MAAM,IAAI,SAAS;AAEnB,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;AAC1C,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;AAC1C,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AAChF,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;AAC5C,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;AAC5C,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;AAEpF,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE;YACvB,KAAK,IAAI,IAAI;YAEb,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;YAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;YAE5C;QACJ;AAEA,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK;AAC1C,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK;AAC1C,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;QAEnE,IAAI,KAAK,IAAI,GAAG,GAAG,SAAS,GAAG,SAAS,CAAC,EAAE;AACvC,YAAA,MAAM,GAAG,KAAK,GAAG,MAAM;AACvB,YAAA,MAAM,GAAG,KAAK,GAAG,MAAM;AAEvB,YAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC,CAAC;YAEvD,MAAM,IAAI,IAAI;YACd,MAAM,IAAI,IAAI;YACd,MAAM,IAAI,SAAS;YACnB,MAAM,IAAI,SAAS;YAEnB,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC;YAC9C,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC;YAC9C,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC;QAClD;aAAO;AACH,YAAA,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;AAC1B,YAAA,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;QAC1D;IACJ;IAEA,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAA,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpC,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAA,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEpC,IAAA,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;AACpB,IAAA,KAAK,GAAG,GAAG,GAAG,GAAG;AAEjB,IAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;IAEnD,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,SAAS;IAClB,KAAK,IAAI,SAAS;IAElB,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;IAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;;;;;AAM5C,IAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;AACjD,IAAA,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC;AAChD,IAAA,MAAM,aAAa,GAAG,gBAAgB,IAAI,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,aAAa,GAAG,CAAC,CAAC;AAElD,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;AACpC,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;QAElB,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YACjB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACzB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAC7B;aAAO;AACH,YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACrB,YAAA,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;YACrB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAC7B;IACJ;IAEA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;AACvD;AAEA;;;;AAIG;AACI,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,OAAe,EAAE,MAAc,KAAsB;AAC9F,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM;IACtC,MAAM,MAAM,GAAkB,EAAE;;AAGhC,IAAA,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAEnD,IAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO;AACrB,IAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO;AAErB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7B,QAAA,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3D,QAAA,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;AAE3D,QAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAE/B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAE1B,QAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ;AAC3B,QAAA,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ;IACnC;IAEA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAE3C,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7B,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;AAElB,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACjB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAClD;AAEA,IAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AACxC;AAEA;;;AAGG;AACI,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,OAAe,EAAE,OAAe,EAAE,OAAe,KAAsB;AACjH,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM;IACtC,MAAM,MAAM,GAAkB,EAAE;AAEhC,IAAA,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAEnD,IAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO;AACrB,IAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO;AAErB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7B,QAAA,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;AAC5D,QAAA,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;AAE5D,QAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAE/B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAE1B,QAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ;AAC3B,QAAA,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ;IACnC;IAEA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAE3C,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7B,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;AAElB,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACjB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAClD;AAEA,IAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AACxC;AAEA;;;;AAIG;AACI,MAAM,YAAY,GAAG,CAAC,MAAqB,KAAsB;AACpE,IAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,QAAA,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC;IAChF;AAEA,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AAChC,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;AAEhD,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7B,QAAA,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C;AAEA,IAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC;AAE1C,IAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AACxC;AAEA;;;AAGG;AACI,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,KAAsB;;AAEpG,IAAA,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC;QAC9B,CAAC,EAAE,CAAC;AACJ,QAAA,CAAC,GAAG,KAAK,EAAE,CAAC;AACZ,QAAA,CAAC,EAAE,CAAC,GAAG,MAAM;AACb,QAAA,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM;AACxB,KAAA,CAAC;AACF,IAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;IAEnD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;AAEzE,IAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AACxC;AAEA;;;;AAIG;MACU,SAAS,GAAG,CAAC,OAAe,EAAE,OAAe,EAAE,MAAc,EAAE,MAAc,EAAE,WAAA,GAAsB,MAAM,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,KAAsB;AAC5J,IAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,QAAQ;AAC5C,IAAA,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC;AACzB,IAAA,MAAM,KAAK,GAAG,GAAG,GAAG,MAAM;IAC1B,MAAM,IAAI,GAAkB,EAAE;AAE9B,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,IAAI,CAAC,GAAG,KAAK,CAAC;AACtC,QAAA,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,MAAM;AAExC,QAAA,IAAI,CAAC,IAAI,CACL,OAAO,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EACjC,OAAO,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CACpC;IACL;AAEA,IAAA,OAAO,YAAY,CAAC,IAAI,CAAC;AAC7B;;;;"}
|
|
1
|
+
{"version":3,"file":"geometry.js","sources":["../../../../src/math/geometry.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAeA;;;;AAIG;AACI,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,MAAc,EAAE,IAAY,EAAE,IAAY,EAAE,KAAa,KAAsB;IACvH,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3C,IAAA,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC5F,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAE5F,IAAA,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC;QAChC,MAAM,GAAG,KAAK,CAAC,CAAC;AAChB,QAAA,MAAM,GAAG,KAAK,CAAC,CAAC;QAChB,MAAM,GAAG,KAAK,CAAC,CAAC;AAChB,QAAA,MAAM,GAAG,KAAK,CAAC,CAAC;QAChB,IAAI,GAAG,KAAK,CAAC,CAAC;AACd,QAAA,IAAI,GAAG,KAAK,CAAC,CAAC;QACd,IAAI,GAAG,KAAK,CAAC,CAAC;AACd,QAAA,IAAI,GAAG,KAAK,CAAC,CAAC;AACf,KAAA,CAAC;IAEF,KAAK,CAAC,OAAO,EAAE;IACf,KAAK,CAAC,OAAO,EAAE;AAEf,IAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnD,IAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AACtC;AAEA;;;;;;;;AAQG;MACU,SAAS,GAAG,CAAC,MAAgB,EAAE,KAAa,KAAsB;AAC7E,IAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,QAAA,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;IACzE;AAEA,IAAA,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC;AAC3B,IAAA,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClF,MAAM,aAAa,GAAG,MAAM;AAE5B,IAAA,IAAI,UAAU,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE;AAChE,QAAA,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;QAEpB,MAAM,CAAC,GAAG,EAAE;QACZ,MAAM,CAAC,GAAG,EAAE;QAEZ,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEnE,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,GAAG;AAClE,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,GAAG;AAElE,QAAA,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;AACpC,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;IACnC;IAEA,UAAU,CAAC,OAAO,EAAE;IACpB,SAAS,CAAC,OAAO,EAAE;AAEnB,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;IAChC,MAAM,aAAa,GAAa,EAAE;AAElC,IAAA,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,IAAA,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,IAAA,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,IAAA,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,IAAA,IAAI,GAAW;AACf,IAAA,IAAI,GAAW;IAEf,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;AACxB,IAAA,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG;AACrB,IAAA,IAAI,MAAc;AAClB,IAAA,IAAI,MAAc;AAClB,IAAA,IAAI,MAAc;AAClB,IAAA,IAAI,MAAc;AAElB,IAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAEnD,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,SAAS;IAClB,KAAK,IAAI,SAAS;IAElB,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;IAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;AAE5C,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACnC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE7B,QAAA,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE7B,QAAA,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;AACpB,QAAA,KAAK,GAAG,GAAG,GAAG,GAAG;AAEjB,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;QAE/C,KAAK,IAAI,IAAI;QACb,KAAK,IAAI,IAAI;QACb,KAAK,IAAI,SAAS;QAClB,KAAK,IAAI,SAAS;AAElB,QAAA,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;AACrB,QAAA,MAAM,GAAG,GAAG,GAAG,GAAG;AAElB,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;QAEnD,MAAM,IAAI,IAAI;QACd,MAAM,IAAI,IAAI;QACd,MAAM,IAAI,SAAS;QACnB,MAAM,IAAI,SAAS;AAEnB,QAAA,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACxC,QAAA,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACxC,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;AAC5E,QAAA,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AAC1C,QAAA,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AAC1C,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QAEhF,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;QAE/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE;YACzB,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;YAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;YAE5C;QACF;AAEA,QAAA,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK;AACtC,QAAA,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK;QACtC,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC;QAE/D,IAAI,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,EAAE;AACvC,YAAA,MAAM,GAAG,KAAK,GAAG,MAAM;AACvB,YAAA,MAAM,GAAG,KAAK,GAAG,MAAM;AAEvB,YAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;YAEnD,MAAM,IAAI,IAAI;YACd,MAAM,IAAI,IAAI;YACd,MAAM,IAAI,SAAS;YACnB,MAAM,IAAI,SAAS;YAEnB,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC;YAC9C,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC;YAC9C,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC;QAChD;aAAO;AACL,YAAA,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;AAC1B,YAAA,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;QACxD;IACF;IAEA,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAA,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAElC,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAA,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAElC,IAAA,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;AACpB,IAAA,KAAK,GAAG,GAAG,GAAG,GAAG;AAEjB,IAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAE/C,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,SAAS;IAClB,KAAK,IAAI,SAAS;IAElB,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;IAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;;;;;AAM5C,IAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;AACjD,IAAA,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC;AAChD,IAAA,MAAM,aAAa,GAAG,gBAAgB,IAAI,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,aAAa,GAAG,CAAC,CAAC;AAElD,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;AACtC,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;QAElB,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACjB,YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YACjB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACzB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAC3B;aAAO;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACrB,YAAA,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;YACrB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAC3B;IACF;IAEA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;AACrD;AAEA;;;;AAIG;AACI,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,OAAe,EAAE,MAAc,KAAsB;AAChG,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM;IACtC,MAAM,MAAM,GAAa,EAAE;;AAG3B,IAAA,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAEnD,IAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO;AACrB,IAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO;AAErB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM;AACzD,QAAA,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM;AAEzD,QAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAE/B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAE1B,QAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ;AAC3B,QAAA,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ;IACjC;IAEA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAE3C,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;AAElB,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACjB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAChD;AAEA,IAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AACtC;AAEA;;;AAGG;AACI,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,OAAe,EAAE,OAAe,EAAE,OAAe,KAAsB;AACnH,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM;IACtC,MAAM,MAAM,GAAa,EAAE;AAE3B,IAAA,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAEnD,IAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO;AACrB,IAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO;AAErB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO;AAC1D,QAAA,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO;AAE1D,QAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAE/B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAE1B,QAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ;AAC3B,QAAA,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ;IACjC;IAEA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAE3C,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;AAElB,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACjB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAChD;AAEA,IAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AACtC;AAEA;;;;AAIG;AACI,MAAM,YAAY,GAAG,CAAC,MAAgB,KAAsB;AACjE,IAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,QAAA,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC;IAC9E;AAEA,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AAChC,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;AAEhD,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/B,QAAA,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC;AAEA,IAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC;AAE1C,IAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AACtC;AAEA;;;AAGG;AACI,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,KAAsB;;AAEtG,IAAA,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC;QAChC,CAAC;AACD,QAAA,CAAC;AACD,QAAA,CAAC,GAAG,KAAK;AACT,QAAA,CAAC;QACD,CAAC;QACD,CAAC,GAAG,MAAM;AACV,QAAA,CAAC,GAAG,KAAK;QACT,CAAC,GAAG,MAAM;AACX,KAAA,CAAC;AACF,IAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;IAEnD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;AAEzE,IAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AACtC;AAEA;;;;AAIG;MACU,SAAS,GAAG,CACvB,OAAe,EACf,OAAe,EACf,MAAc,EACd,MAAc,EACd,WAAA,GAAsB,MAAM,GAAG,CAAC,EAChC,QAAQ,GAAG,CAAC,KACQ;IACpB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,QAAQ;AAC1C,IAAA,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC;AACzB,IAAA,MAAM,KAAK,GAAG,GAAG,GAAG,MAAM;IAC1B,MAAM,IAAI,GAAa,EAAE;AAEzB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,GAAG,KAAK;AACpC,QAAA,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,MAAM;QAExC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7E;AAEA,IAAA,OAAO,YAAY,CAAC,IAAI,CAAC;AAC3B;;;;"}
|
package/dist/esm/math/index.d.ts
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './PointLike';
|
|
3
|
-
export * from './RectangleLike';
|
|
1
|
+
export * from './Circle';
|
|
4
2
|
export * from './CircleLike';
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './LineLike';
|
|
7
|
-
export * from './PolygonLike';
|
|
8
|
-
export * from './utils';
|
|
9
|
-
export * from './geometry';
|
|
3
|
+
export * from './Collision';
|
|
10
4
|
export * from './collision-detection';
|
|
11
|
-
export * from './Vector';
|
|
12
|
-
export * from './Line';
|
|
13
|
-
export * from './Rectangle';
|
|
14
|
-
export * from './Circle';
|
|
15
5
|
export * from './Ellipse';
|
|
16
|
-
export * from './
|
|
17
|
-
export * from './ShapeLike';
|
|
6
|
+
export * from './EllipseLike';
|
|
18
7
|
export * from './Flags';
|
|
8
|
+
export * from './geometry';
|
|
19
9
|
export * from './Interval';
|
|
10
|
+
export * from './Line';
|
|
11
|
+
export * from './LineLike';
|
|
20
12
|
export * from './Matrix';
|
|
21
13
|
export * from './ObservableSize';
|
|
22
14
|
export * from './ObservableVector';
|
|
15
|
+
export * from './PointLike';
|
|
16
|
+
export * from './PolarVector';
|
|
17
|
+
export * from './Polygon';
|
|
18
|
+
export * from './PolygonLike';
|
|
19
|
+
export * from './Quadtree';
|
|
23
20
|
export * from './Random';
|
|
21
|
+
export * from './Rectangle';
|
|
22
|
+
export * from './RectangleLike';
|
|
24
23
|
export * from './Segment';
|
|
24
|
+
export * from './ShapeLike';
|
|
25
25
|
export * from './Size';
|
|
26
|
-
export * from './PolarVector';
|
|
27
26
|
export * from './swept-collision';
|
|
28
|
-
export * from './
|
|
27
|
+
export * from './utils';
|
|
28
|
+
export * from './Vector';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Rectangle } from './Rectangle';
|
|
2
1
|
import type { CircleLike } from './CircleLike';
|
|
2
|
+
import { Rectangle } from './Rectangle';
|
|
3
3
|
/**
|
|
4
4
|
* Result of a swept-collision query. The moving shape's reference point
|
|
5
5
|
* is at `(x, y)` at impact, having travelled fraction `t` ∈ [0..1] of
|
|
@@ -62,7 +62,7 @@ export declare function sweepCircleVsCircle(moving: CircleLike, deltaX: number,
|
|
|
62
62
|
* moving rectangle is computed once; targets whose AABB does not overlap the
|
|
63
63
|
* swept AABB are skipped.
|
|
64
64
|
*/
|
|
65
|
-
export declare function sweepRectangleAgainst(moving: Rectangle, deltaX: number, deltaY: number, targets:
|
|
65
|
+
export declare function sweepRectangleAgainst(moving: Rectangle, deltaX: number, deltaY: number, targets: readonly Rectangle[]): SweptHit | null;
|
|
66
66
|
/**
|
|
67
67
|
* Returns the earliest `SweptHit` against an array of circle targets, or
|
|
68
68
|
* `null` if none are hit.
|
|
@@ -70,7 +70,7 @@ export declare function sweepRectangleAgainst(moving: Rectangle, deltaX: number,
|
|
|
70
70
|
* Optimisation: the swept AABB of the moving circle is computed once and used
|
|
71
71
|
* to skip targets that cannot possibly be reached.
|
|
72
72
|
*/
|
|
73
|
-
export declare function sweepCircleAgainst(moving: CircleLike, deltaX: number, deltaY: number, targets:
|
|
73
|
+
export declare function sweepCircleAgainst(moving: CircleLike, deltaX: number, deltaY: number, targets: readonly CircleLike[]): SweptHit | null;
|
|
74
74
|
/**
|
|
75
75
|
* Generator that yields evenly-spaced position snapshots along a movement
|
|
76
76
|
* vector so the caller can run their own discrete intersection check at each
|
|
@@ -182,10 +182,7 @@ function sweepRectangleAgainst(moving, deltaX, deltaY, targets) {
|
|
|
182
182
|
let earliest = null;
|
|
183
183
|
for (const target of targets) {
|
|
184
184
|
// Broad-phase: skip if swept AABB doesn't overlap target AABB
|
|
185
|
-
if (sweptMaxX <= target.x
|
|
186
|
-
|| sweptMinX >= target.x + target.width
|
|
187
|
-
|| sweptMaxY <= target.y
|
|
188
|
-
|| sweptMinY >= target.y + target.height) {
|
|
185
|
+
if (sweptMaxX <= target.x || sweptMinX >= target.x + target.width || sweptMaxY <= target.y || sweptMinY >= target.y + target.height) {
|
|
189
186
|
continue;
|
|
190
187
|
}
|
|
191
188
|
const hit = sweepRectangle(moving, deltaX, deltaY, target);
|
|
@@ -214,10 +211,10 @@ function sweepCircleAgainst(moving, deltaX, deltaY, targets) {
|
|
|
214
211
|
let earliest = null;
|
|
215
212
|
for (const target of targets) {
|
|
216
213
|
// Broad-phase: skip if swept AABB doesn't overlap target's AABB
|
|
217
|
-
if (sweptMaxX <= target.x - target.radius
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
214
|
+
if (sweptMaxX <= target.x - target.radius ||
|
|
215
|
+
sweptMinX >= target.x + target.radius ||
|
|
216
|
+
sweptMaxY <= target.y - target.radius ||
|
|
217
|
+
sweptMinY >= target.y + target.radius) {
|
|
221
218
|
continue;
|
|
222
219
|
}
|
|
223
220
|
const hit = sweepCircleVsCircle(moving, deltaX, deltaY, target);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swept-collision.js","sources":["../../../../src/math/swept-collision.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAmBA;AACA;AACA;AAEA;;;;;;;;;;;AAWG;AACG,SAAU,cAAc,
|
|
1
|
+
{"version":3,"file":"swept-collision.js","sources":["../../../../src/math/swept-collision.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|