@codexo/exojs 0.8.0 → 0.8.3
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 +390 -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 +37 -1
- package/dist/esm/audio/AudioAnalyser.js +150 -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 +66 -4
- package/dist/esm/audio/BeatDetector.js +145 -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/mel.js +70 -0
- package/dist/esm/audio/dsp/mel.js.map +1 -0
- 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/RenderPassInspectorLayer.d.ts +71 -0
- package/dist/esm/debug/RenderPassInspectorLayer.js +201 -0
- package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -0
- package/dist/esm/debug/index.d.ts +4 -3
- package/dist/esm/debug/index.js +4 -3
- package/dist/esm/debug/index.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +101 -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 +16 -11
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/index.d.ts +30 -27
- package/dist/esm/rendering/mesh/Mesh.d.ts +6 -1
- package/dist/esm/rendering/mesh/Mesh.js +3 -1
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/mesh/MeshShader.d.ts +183 -0
- package/dist/esm/rendering/mesh/MeshShader.js +231 -0
- package/dist/esm/rendering/mesh/MeshShader.js.map +1 -0
- 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/DataTexture.d.ts +115 -0
- package/dist/esm/rendering/texture/DataTexture.js +173 -0
- package/dist/esm/rendering/texture/DataTexture.js.map +1 -0
- 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 +61 -22
- 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 +121 -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 +8 -7
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +104 -37
- 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 +3 -4
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +15 -2
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +657 -102
- 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 +26260 -24256
- package/dist/exo.esm.js.map +1 -1
- package/package.json +15 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XboxGamepadMapping.js","sources":["../../../../src/input/XboxGamepadMapping.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGA;;;;;;;AAOG;AACG,MAAO,kBAAmB,SAAQ,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"XboxGamepadMapping.js","sources":["../../../../src/input/XboxGamepadMapping.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGA;;;;;;;AAOG;AACG,MAAO,kBAAmB,SAAQ,+BAA+B,CAAA;AAC5C,IAAA,MAAM,GAAG,oBAAoB,CAAC,IAAI;AAC5D;;;;"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export { GamepadAxis } from './GamepadAxis';
|
|
1
|
+
export * from './ArcadeStickGamepadMapping';
|
|
2
|
+
export * from './GameCubeGamepadMapping';
|
|
3
|
+
export * from './Gamepad';
|
|
5
4
|
export type { GamepadAxisOptions } from './GamepadAxis';
|
|
6
|
-
export
|
|
5
|
+
export { GamepadAxis } from './GamepadAxis';
|
|
6
|
+
export type { GamepadButtonOptions } from './GamepadButton';
|
|
7
|
+
export { GamepadButton } from './GamepadButton';
|
|
7
8
|
export * from './GamepadDefinitions';
|
|
8
|
-
export * from './
|
|
9
|
+
export * from './GamepadMapping';
|
|
9
10
|
export * from './GamepadPromptLayouts';
|
|
10
11
|
export * from './GenericDualAnalogGamepadMapping';
|
|
11
|
-
export * from './XboxGamepadMapping';
|
|
12
|
-
export * from './PlayStationGamepadMapping';
|
|
13
|
-
export * from './SwitchProGamepadMapping';
|
|
14
|
-
export * from './JoyConLeftGamepadMapping';
|
|
15
|
-
export * from './JoyConRightGamepadMapping';
|
|
16
|
-
export * from './GameCubeGamepadMapping';
|
|
17
|
-
export * from './SteamControllerGamepadMapping';
|
|
18
|
-
export * from './SteamDeckGamepadMapping';
|
|
19
|
-
export * from './ArcadeStickGamepadMapping';
|
|
20
12
|
export * from './InputBinding';
|
|
21
13
|
export * from './InputManager';
|
|
22
|
-
export { Pointer, PointerStateFlag, PointerState } from './Pointer';
|
|
23
14
|
export * from './InteractionEvent';
|
|
24
15
|
export * from './InteractionManager';
|
|
16
|
+
export * from './JoyConLeftGamepadMapping';
|
|
17
|
+
export * from './JoyConRightGamepadMapping';
|
|
18
|
+
export * from './PlayStationGamepadMapping';
|
|
19
|
+
export { Pointer, PointerState, PointerStateFlag } from './Pointer';
|
|
20
|
+
export * from './SteamControllerGamepadMapping';
|
|
21
|
+
export * from './SteamDeckGamepadMapping';
|
|
22
|
+
export * from './SwitchProGamepadMapping';
|
|
23
|
+
export { ChannelOffset, ChannelSize, Keyboard, maxPointers, pointerSlotSize } from './types';
|
|
24
|
+
export * from './XboxGamepadMapping';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction-hooks.js","sources":["../../../../src/input/interaction-hooks.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;AAYG;AAWH,IAAI,eAAe,GAAmC,IAAI;AAE1D;;;;;AAKG;SACa,6BAA6B,GAAA;
|
|
1
|
+
{"version":3,"file":"interaction-hooks.js","sources":["../../../../src/input/interaction-hooks.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;AAYG;AAWH,IAAI,eAAe,GAAmC,IAAI;AAE1D;;;;;AAKG;SACa,6BAA6B,GAAA;AAC3C,IAAA,OAAO,eAAe;AACxB;AAEA;;;;;AAKG;AACG,SAAU,6BAA6B,CAAC,OAAuC,EAAA;IACnF,eAAe,GAAG,OAAO;AAC3B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/input/types.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/input/types.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ class AbstractVector {
|
|
|
34
34
|
* `magnitude` while preserving its {@link direction}. Mutates in place.
|
|
35
35
|
*/
|
|
36
36
|
get length() {
|
|
37
|
-
return Math.sqrt(
|
|
37
|
+
return Math.sqrt(this.x * this.x + this.y * this.y);
|
|
38
38
|
}
|
|
39
39
|
set length(magnitude) {
|
|
40
40
|
const direction = this.direction;
|
|
@@ -46,7 +46,7 @@ class AbstractVector {
|
|
|
46
46
|
* {@link length} when only relative comparisons are needed.
|
|
47
47
|
*/
|
|
48
48
|
get lengthSq() {
|
|
49
|
-
return
|
|
49
|
+
return this.x * this.x + this.y * this.y;
|
|
50
50
|
}
|
|
51
51
|
set lengthSq(lengthSquared) {
|
|
52
52
|
this.length = Math.sqrt(lengthSquared);
|
|
@@ -73,8 +73,7 @@ class AbstractVector {
|
|
|
73
73
|
* the X component.
|
|
74
74
|
*/
|
|
75
75
|
equals({ x, y } = {}) {
|
|
76
|
-
return (x === undefined || this.x === x)
|
|
77
|
-
&& (y === undefined || this.y === y);
|
|
76
|
+
return (x === undefined || this.x === x) && (y === undefined || this.y === y);
|
|
78
77
|
}
|
|
79
78
|
/**
|
|
80
79
|
* Add `(x, y)` to this vector. When `y` is omitted it defaults to `x`.
|
|
@@ -134,7 +133,7 @@ class AbstractVector {
|
|
|
134
133
|
* transform). Mutates in place and returns `this` for chaining.
|
|
135
134
|
*/
|
|
136
135
|
transform(matrix) {
|
|
137
|
-
return this.set(
|
|
136
|
+
return this.set(this.x * matrix.a + this.y * matrix.b + matrix.x, this.x * matrix.c + this.y * matrix.d + matrix.y);
|
|
138
137
|
}
|
|
139
138
|
/**
|
|
140
139
|
* Apply the inverse of `matrix` to this vector. Useful for converting
|
|
@@ -142,8 +141,8 @@ class AbstractVector {
|
|
|
142
141
|
* in place and returns `this` for chaining.
|
|
143
142
|
*/
|
|
144
143
|
transformInverse(matrix) {
|
|
145
|
-
const id = 1 / (
|
|
146
|
-
return this.set(
|
|
144
|
+
const id = 1 / (matrix.a * matrix.d + matrix.c * -matrix.b);
|
|
145
|
+
return this.set(this.x * matrix.d * id + this.y * -matrix.c * id + (matrix.y * matrix.c - matrix.x * matrix.d) * id, this.y * matrix.a * id + this.x * -matrix.b * id + (-matrix.y * matrix.a + matrix.x * matrix.b) * id);
|
|
147
146
|
}
|
|
148
147
|
/**
|
|
149
148
|
* Rotate this vector 90° counter-clockwise (left perpendicular):
|
|
@@ -169,7 +168,7 @@ class AbstractVector {
|
|
|
169
168
|
}
|
|
170
169
|
/** Dot product of this vector with `(x, y)`. */
|
|
171
170
|
dot(x, y) {
|
|
172
|
-
return
|
|
171
|
+
return this.x * x + this.y * y;
|
|
173
172
|
}
|
|
174
173
|
/**
|
|
175
174
|
* 2D cross product (scalar z-component of the 3D cross product) of this
|
|
@@ -177,7 +176,7 @@ class AbstractVector {
|
|
|
177
176
|
* this vector.
|
|
178
177
|
*/
|
|
179
178
|
cross(vector) {
|
|
180
|
-
return
|
|
179
|
+
return this.x * vector.y - this.y * vector.x;
|
|
181
180
|
}
|
|
182
181
|
/** Euclidean distance from this vector's tip to `vector`'s tip. */
|
|
183
182
|
distanceTo(vector) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractVector.js","sources":["../../../../src/math/AbstractVector.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;;;;;AAOG;MACmB,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractVector.js","sources":["../../../../src/math/AbstractVector.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Vector } from '@/math/Vector';
|
|
2
|
-
import { Rectangle } from '@/math/Rectangle';
|
|
3
|
-
import { Interval } from '@/math/Interval';
|
|
4
|
-
import type { ShapeLike } from '@/math/ShapeLike';
|
|
5
1
|
import type { Collidable, CollisionResponse } from '@/math/Collision';
|
|
6
2
|
import { CollisionType } from '@/math/Collision';
|
|
3
|
+
import { Interval } from '@/math/Interval';
|
|
4
|
+
import { Rectangle } from '@/math/Rectangle';
|
|
5
|
+
import type { ShapeLike } from '@/math/ShapeLike';
|
|
6
|
+
import { Vector } from '@/math/Vector';
|
|
7
7
|
/**
|
|
8
8
|
* Mutable circle shape defined by a centre position and radius. Implements
|
|
9
9
|
* {@link ShapeLike} for use in the collision pipeline.
|
|
@@ -63,7 +63,7 @@ export declare class Circle implements ShapeLike {
|
|
|
63
63
|
* `position`, `setPosition`, `setRadius`, `set`, or `copy` mutate the
|
|
64
64
|
* circle.
|
|
65
65
|
*/
|
|
66
|
-
getNormals():
|
|
66
|
+
getNormals(): Vector[];
|
|
67
67
|
/**
|
|
68
68
|
* Project this circle onto `axis` and write the scalar interval into
|
|
69
69
|
* `result`. The projection accounts for both the centre and the radius.
|
package/dist/esm/math/Circle.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Vector } from './Vector.js';
|
|
2
|
-
import { Rectangle } from './Rectangle.js';
|
|
3
|
-
import { Interval } from './Interval.js';
|
|
4
1
|
import { CollisionType } from './Collision.js';
|
|
5
2
|
import { intersectionPointCircle, intersectionLineCircle, intersectionCircleEllipse, intersectionCircleCircle, intersectionCirclePoly, intersectionRectCircle, getCollisionEllipseCircle, getCollisionCircleCircle, getCollisionPolygonCircle, getCollisionCircleRectangle } from './collision-detection.js';
|
|
3
|
+
import { Interval } from './Interval.js';
|
|
4
|
+
import { Rectangle } from './Rectangle.js';
|
|
5
|
+
import { Vector } from './Vector.js';
|
|
6
6
|
|
|
7
7
|
let temp = null;
|
|
8
8
|
/**
|
|
@@ -114,9 +114,7 @@ class Circle {
|
|
|
114
114
|
return new Circle(this.x, this.y, this.radius);
|
|
115
115
|
}
|
|
116
116
|
equals({ x, y, radius } = {}) {
|
|
117
|
-
return (x === undefined || this.x === x)
|
|
118
|
-
&& (y === undefined || this.y === y)
|
|
119
|
-
&& (radius === undefined || this.radius === radius);
|
|
117
|
+
return (x === undefined || this.x === x) && (y === undefined || this.y === y) && (radius === undefined || this.radius === radius);
|
|
120
118
|
}
|
|
121
119
|
getBounds() {
|
|
122
120
|
return new Rectangle(this.x - this.radius, this.y - this.radius, this.radius * 2, this.radius * 2);
|
|
@@ -164,26 +162,40 @@ class Circle {
|
|
|
164
162
|
}
|
|
165
163
|
intersectsWith(target) {
|
|
166
164
|
switch (target.collisionType) {
|
|
167
|
-
case CollisionType.SceneNode:
|
|
168
|
-
|
|
169
|
-
case CollisionType.
|
|
170
|
-
|
|
171
|
-
case CollisionType.
|
|
172
|
-
|
|
173
|
-
case CollisionType.
|
|
174
|
-
|
|
165
|
+
case CollisionType.SceneNode:
|
|
166
|
+
return intersectionRectCircle(target.getBounds(), this);
|
|
167
|
+
case CollisionType.Rectangle:
|
|
168
|
+
return intersectionRectCircle(target, this);
|
|
169
|
+
case CollisionType.Polygon:
|
|
170
|
+
return intersectionCirclePoly(this, target);
|
|
171
|
+
case CollisionType.Circle:
|
|
172
|
+
return intersectionCircleCircle(this, target);
|
|
173
|
+
case CollisionType.Ellipse:
|
|
174
|
+
return intersectionCircleEllipse(this, target);
|
|
175
|
+
case CollisionType.Line:
|
|
176
|
+
return intersectionLineCircle(target, this);
|
|
177
|
+
case CollisionType.Point:
|
|
178
|
+
return intersectionPointCircle(target, this);
|
|
179
|
+
default:
|
|
180
|
+
return false;
|
|
175
181
|
}
|
|
176
182
|
}
|
|
177
183
|
collidesWith(target) {
|
|
178
184
|
switch (target.collisionType) {
|
|
179
|
-
case CollisionType.SceneNode:
|
|
180
|
-
|
|
181
|
-
case CollisionType.
|
|
182
|
-
|
|
183
|
-
case CollisionType.
|
|
185
|
+
case CollisionType.SceneNode:
|
|
186
|
+
return getCollisionCircleRectangle(this, target.getBounds());
|
|
187
|
+
case CollisionType.Rectangle:
|
|
188
|
+
return getCollisionCircleRectangle(this, target);
|
|
189
|
+
case CollisionType.Polygon:
|
|
190
|
+
return getCollisionPolygonCircle(target, this, true);
|
|
191
|
+
case CollisionType.Circle:
|
|
192
|
+
return getCollisionCircleCircle(this, target);
|
|
193
|
+
case CollisionType.Ellipse:
|
|
194
|
+
return getCollisionEllipseCircle(target, this, true);
|
|
184
195
|
// case CollisionType.Line: return intersectionLineCircle(target as Line, this);
|
|
185
196
|
// case CollisionType.Point: return intersectionPointCircle(target as Vector, this);
|
|
186
|
-
default:
|
|
197
|
+
default:
|
|
198
|
+
return null;
|
|
187
199
|
}
|
|
188
200
|
}
|
|
189
201
|
destroy() {
|
|
@@ -211,7 +223,7 @@ class Circle {
|
|
|
211
223
|
}
|
|
212
224
|
}
|
|
213
225
|
for (let i = 0; i < segments; i++) {
|
|
214
|
-
const angle = i * 2 * Math.PI / segments - Math.PI / 2;
|
|
226
|
+
const angle = (i * 2 * Math.PI) / segments - Math.PI / 2;
|
|
215
227
|
const x = Math.cos(angle) * this._radius;
|
|
216
228
|
const y = Math.sin(angle) * this._radius;
|
|
217
229
|
this._collisionVertices[i].set(this._radius + x, this._radius + y);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Circle.js","sources":["../../../../src/math/Circle.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAuBA,IAAI,IAAI,GAAkB,IAAI;AAE9B;;;;;;;;;AASG;MACU,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Circle.js","sources":["../../../../src/math/Circle.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Vector } from '@/math/Vector';
|
|
2
1
|
import type { Interval } from '@/math/Interval';
|
|
2
|
+
import type { Vector } from '@/math/Vector';
|
|
3
3
|
/**
|
|
4
4
|
* Discriminant tag carried by every {@link Collidable} so that intersection
|
|
5
5
|
* and collision routines can dispatch to the correct algorithm without
|
|
@@ -38,7 +38,7 @@ export interface Collidable {
|
|
|
38
38
|
* Return the outward-facing edge normals used by the SAT solver. The array
|
|
39
39
|
* should be cached and reused across calls.
|
|
40
40
|
*/
|
|
41
|
-
getNormals():
|
|
41
|
+
getNormals(): Vector[];
|
|
42
42
|
/**
|
|
43
43
|
* Project this shape onto `axis` and write the scalar min/max into
|
|
44
44
|
* `interval`. Used internally by the SAT solver.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collision.js","sources":["../../../../src/math/Collision.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;AAIG;IACe;AAAlB,CAAA,UAAkB,aAAa,EAAA;
|
|
1
|
+
{"version":3,"file":"Collision.js","sources":["../../../../src/math/Collision.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;AAIG;IACe;AAAlB,CAAA,UAAkB,aAAa,EAAA;AAC7B,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;AACX,CAAC,EARiB,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Vector } from '@/math/Vector';
|
|
2
|
-
import { Rectangle } from '@/math/Rectangle';
|
|
3
|
-
import type { ShapeLike } from '@/math/ShapeLike';
|
|
4
|
-
import { Interval } from '@/math/Interval';
|
|
5
1
|
import type { Collidable, CollisionResponse } from '@/math/Collision';
|
|
6
2
|
import { CollisionType } from '@/math/Collision';
|
|
3
|
+
import { Interval } from '@/math/Interval';
|
|
4
|
+
import { Rectangle } from '@/math/Rectangle';
|
|
5
|
+
import type { ShapeLike } from '@/math/ShapeLike';
|
|
6
|
+
import { Vector } from '@/math/Vector';
|
|
7
7
|
/**
|
|
8
8
|
* Mutable axis-aligned ellipse shape defined by a centre position and
|
|
9
9
|
* separate horizontal (`rx`) and vertical (`ry`) half-radii. Implements
|
|
@@ -38,7 +38,7 @@ export declare class Ellipse implements ShapeLike {
|
|
|
38
38
|
copy(ellipse: Ellipse): this;
|
|
39
39
|
clone(): this;
|
|
40
40
|
getBounds(): Rectangle;
|
|
41
|
-
getNormals():
|
|
41
|
+
getNormals(): Vector[];
|
|
42
42
|
project(axis: Vector, result?: Interval): Interval;
|
|
43
43
|
intersectsWith(target: Collidable): boolean;
|
|
44
44
|
collidesWith(target: Collidable): CollisionResponse | null;
|
package/dist/esm/math/Ellipse.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Vector } from './Vector.js';
|
|
2
|
-
import { Rectangle } from './Rectangle.js';
|
|
3
|
-
import { Interval } from './Interval.js';
|
|
4
1
|
import { CollisionType } from './Collision.js';
|
|
5
2
|
import { intersectionPointEllipse, intersectionLineEllipse, intersectionEllipseEllipse, intersectionCircleEllipse, intersectionEllipsePoly, intersectionRectEllipse, getCollisionEllipseCircle, getCollisionEllipseRectangle } from './collision-detection.js';
|
|
3
|
+
import { Interval } from './Interval.js';
|
|
4
|
+
import { Rectangle } from './Rectangle.js';
|
|
5
|
+
import { Vector } from './Vector.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Mutable axis-aligned ellipse shape defined by a centre position and
|
|
@@ -91,32 +91,41 @@ class Ellipse {
|
|
|
91
91
|
}
|
|
92
92
|
intersectsWith(target) {
|
|
93
93
|
switch (target.collisionType) {
|
|
94
|
-
case CollisionType.SceneNode:
|
|
95
|
-
|
|
96
|
-
case CollisionType.
|
|
97
|
-
|
|
98
|
-
case CollisionType.
|
|
99
|
-
|
|
100
|
-
case CollisionType.
|
|
101
|
-
|
|
94
|
+
case CollisionType.SceneNode:
|
|
95
|
+
return intersectionRectEllipse(target.getBounds(), this);
|
|
96
|
+
case CollisionType.Rectangle:
|
|
97
|
+
return intersectionRectEllipse(target, this);
|
|
98
|
+
case CollisionType.Polygon:
|
|
99
|
+
return intersectionEllipsePoly(this, target);
|
|
100
|
+
case CollisionType.Circle:
|
|
101
|
+
return intersectionCircleEllipse(target, this);
|
|
102
|
+
case CollisionType.Ellipse:
|
|
103
|
+
return intersectionEllipseEllipse(this, target);
|
|
104
|
+
case CollisionType.Line:
|
|
105
|
+
return intersectionLineEllipse(target, this);
|
|
106
|
+
case CollisionType.Point:
|
|
107
|
+
return intersectionPointEllipse(target, this);
|
|
108
|
+
default:
|
|
109
|
+
return false;
|
|
102
110
|
}
|
|
103
111
|
}
|
|
104
112
|
collidesWith(target) {
|
|
105
113
|
switch (target.collisionType) {
|
|
106
|
-
case CollisionType.SceneNode:
|
|
107
|
-
|
|
108
|
-
case CollisionType.
|
|
109
|
-
|
|
114
|
+
case CollisionType.SceneNode:
|
|
115
|
+
return getCollisionEllipseRectangle(this, target.getBounds());
|
|
116
|
+
case CollisionType.Rectangle:
|
|
117
|
+
return getCollisionEllipseRectangle(this, target);
|
|
118
|
+
case CollisionType.Circle:
|
|
119
|
+
return getCollisionEllipseCircle(this, target);
|
|
120
|
+
default:
|
|
121
|
+
return null;
|
|
110
122
|
}
|
|
111
123
|
}
|
|
112
124
|
contains(x, y) {
|
|
113
125
|
return intersectionPointEllipse(Vector.temp.set(x, y), this);
|
|
114
126
|
}
|
|
115
127
|
equals({ x, y, rx, ry } = {}) {
|
|
116
|
-
return (x === undefined || this.x === x)
|
|
117
|
-
&& (y === undefined || this.y === y)
|
|
118
|
-
&& (rx === undefined || this.rx === rx)
|
|
119
|
-
&& (ry === undefined || this.ry === ry);
|
|
128
|
+
return ((x === undefined || this.x === x) && (y === undefined || this.y === y) && (rx === undefined || this.rx === rx) && (ry === undefined || this.ry === ry));
|
|
120
129
|
}
|
|
121
130
|
destroy() {
|
|
122
131
|
this._position.destroy();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ellipse.js","sources":["../../../../src/math/Ellipse.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAqBA;;;;;;;;;;AAUG;MACU,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Ellipse.js","sources":["../../../../src/math/Ellipse.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/esm/math/Flags.d.ts
CHANGED
|
@@ -17,12 +17,12 @@ export declare class Flags<T extends TypedEnum<T, number>> {
|
|
|
17
17
|
private _value;
|
|
18
18
|
/** Current combined bitmask of all active flags. */
|
|
19
19
|
get value(): number;
|
|
20
|
-
constructor(...flags:
|
|
20
|
+
constructor(...flags: number[]);
|
|
21
21
|
/**
|
|
22
22
|
* Set one or more flags (bitwise OR). Mutates in place and returns `this`
|
|
23
23
|
* for chaining.
|
|
24
24
|
*/
|
|
25
|
-
push<V extends number = T[keyof T]>(...flags:
|
|
25
|
+
push<V extends number = T[keyof T]>(...flags: V[]): this;
|
|
26
26
|
/**
|
|
27
27
|
* Remove `flag` and return `true` if it was active before removal, `false`
|
|
28
28
|
* otherwise. Useful for one-shot consumption of a flag.
|
|
@@ -32,12 +32,12 @@ export declare class Flags<T extends TypedEnum<T, number>> {
|
|
|
32
32
|
* Clear one or more flags (bitwise AND NOT). Mutates in place and returns
|
|
33
33
|
* `this` for chaining.
|
|
34
34
|
*/
|
|
35
|
-
remove<V extends number = T[keyof T]>(...flags:
|
|
35
|
+
remove<V extends number = T[keyof T]>(...flags: V[]): this;
|
|
36
36
|
/**
|
|
37
37
|
* Return `true` when **any** of the supplied flags are currently set
|
|
38
38
|
* (bitwise OR test).
|
|
39
39
|
*/
|
|
40
|
-
has<V extends number = T[keyof T]>(...flags:
|
|
40
|
+
has<V extends number = T[keyof T]>(...flags: V[]): boolean;
|
|
41
41
|
clear(): this;
|
|
42
42
|
destroy(): void;
|
|
43
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Flags.js","sources":["../../../../src/math/Flags.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;;;;;;;;;AAaG;MACU,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"Flags.js","sources":["../../../../src/math/Flags.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;;;;;;;;;AAaG;MACU,KAAK,CAAA;IACR,MAAM,GAAG,CAAC;;AAGlB,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA,IAAA,WAAA,CAAmB,GAAG,KAAe,EAAA;AACnC,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACrB;IACF;AAEA;;;AAGG;IACI,IAAI,CAAgC,GAAG,KAAU,EAAA;AACtD,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,IAAI,IAAI;QACrB;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;AACI,IAAA,GAAG,CAAgC,IAAO,EAAA;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAE7B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAEjB,QAAA,OAAO,MAAM;IACf;AAEA;;;AAGG;IACI,MAAM,CAAgC,GAAG,KAAU,EAAA;AACxD,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI;QACtB;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;IACI,GAAG,CAAgC,GAAG,KAAU,EAAA;AACrD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC;IACvD;IAEO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AAEf,QAAA,OAAO,IAAI;IACb;IAEO,OAAO,GAAA;QACZ,IAAI,CAAC,KAAK,EAAE;IACd;AACD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AACZ,IAAA,GAAG;AACH,IAAA,GAAG;AAEV,IAAA,WAAA,CAAmB,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAA;AACnC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;IAChB;IAEO,GAAG,CAAC,GAAW,EAAE,GAAW,EAAA;AACjC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AAEd,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,IAAI,CAAC,QAAkB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;IAC7C;IAEO,KAAK,GAAA;QACV,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAS;IACjD;;AAGO,IAAA,gBAAgB,CAAC,QAAkB,EAAA;AACxC,QAAA,OAAO,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IAC3D;;AAGO,IAAA,QAAQ,CAAC,KAAa,EAAA;QAC3B,OAAO,KAAK,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG;IAC/C;;AAGO,IAAA,QAAQ,CAAC,QAAkB,EAAA;AAChC,QAAA,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC9D;AAEA;;;;AAIG;AACI,IAAA,UAAU,CAAC,QAAkB,EAAA;QAClC,OAAO,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACpF;IAEO,OAAO,GAAA;;IAEd;IAEO,OAAgB,IAAI,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AAEzC,IAAA,WAAW,IAAI,GAAA;AACpB,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,IAAI,GAAG,IAAI,QAAQ,EAAE;QACvB;AAEA,QAAA,OAAO,IAAI;IACb;;;;;"}
|
package/dist/esm/math/Line.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Vector } from '@/math/Vector';
|
|
2
|
-
import { Rectangle } from '@/math/Rectangle';
|
|
3
|
-
import type { ShapeLike } from '@/math/ShapeLike';
|
|
4
|
-
import { Interval } from '@/math/Interval';
|
|
5
1
|
import type { Collidable, CollisionResponse } from '@/math/Collision';
|
|
6
2
|
import { CollisionType } from '@/math/Collision';
|
|
3
|
+
import { Interval } from '@/math/Interval';
|
|
4
|
+
import { Rectangle } from '@/math/Rectangle';
|
|
5
|
+
import type { ShapeLike } from '@/math/ShapeLike';
|
|
6
|
+
import { Vector } from '@/math/Vector';
|
|
7
7
|
/**
|
|
8
8
|
* Mutable line segment defined by two endpoint positions. Implements
|
|
9
9
|
* {@link ShapeLike} for intersection tests against all shape types.
|
|
@@ -36,7 +36,7 @@ export declare class Line implements ShapeLike {
|
|
|
36
36
|
copy(line: Line): this;
|
|
37
37
|
clone(): this;
|
|
38
38
|
getBounds(): Rectangle;
|
|
39
|
-
getNormals():
|
|
39
|
+
getNormals(): Vector[];
|
|
40
40
|
project(axis: Vector, result?: Interval): Interval;
|
|
41
41
|
intersectsWith(target: Collidable): boolean;
|
|
42
42
|
/**
|
package/dist/esm/math/Line.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Vector } from './Vector.js';
|
|
2
|
-
import { Rectangle } from './Rectangle.js';
|
|
3
|
-
import { Interval } from './Interval.js';
|
|
4
1
|
import { CollisionType } from './Collision.js';
|
|
5
2
|
import { intersectionPointLine, intersectionLineLine, intersectionLineEllipse, intersectionLineCircle, intersectionLinePoly, intersectionLineRect } from './collision-detection.js';
|
|
3
|
+
import { Interval } from './Interval.js';
|
|
4
|
+
import { Rectangle } from './Rectangle.js';
|
|
5
|
+
import { Vector } from './Vector.js';
|
|
6
6
|
|
|
7
7
|
let temp = null;
|
|
8
8
|
/**
|
|
@@ -87,14 +87,22 @@ class Line {
|
|
|
87
87
|
}
|
|
88
88
|
intersectsWith(target) {
|
|
89
89
|
switch (target.collisionType) {
|
|
90
|
-
case CollisionType.SceneNode:
|
|
91
|
-
|
|
92
|
-
case CollisionType.
|
|
93
|
-
|
|
94
|
-
case CollisionType.
|
|
95
|
-
|
|
96
|
-
case CollisionType.
|
|
97
|
-
|
|
90
|
+
case CollisionType.SceneNode:
|
|
91
|
+
return intersectionLineRect(this, target.getBounds());
|
|
92
|
+
case CollisionType.Rectangle:
|
|
93
|
+
return intersectionLineRect(this, target);
|
|
94
|
+
case CollisionType.Polygon:
|
|
95
|
+
return intersectionLinePoly(this, target);
|
|
96
|
+
case CollisionType.Circle:
|
|
97
|
+
return intersectionLineCircle(this, target);
|
|
98
|
+
case CollisionType.Ellipse:
|
|
99
|
+
return intersectionLineEllipse(this, target);
|
|
100
|
+
case CollisionType.Line:
|
|
101
|
+
return intersectionLineLine(this, target);
|
|
102
|
+
case CollisionType.Point:
|
|
103
|
+
return intersectionPointLine(target, this);
|
|
104
|
+
default:
|
|
105
|
+
return false;
|
|
98
106
|
}
|
|
99
107
|
}
|
|
100
108
|
/**
|
|
@@ -109,10 +117,10 @@ class Line {
|
|
|
109
117
|
return intersectionPointLine(Vector.temp.set(x, y), this, threshold);
|
|
110
118
|
}
|
|
111
119
|
equals({ fromX, fromY, toX, toY } = {}) {
|
|
112
|
-
return (fromX === undefined || this.fromX === fromX)
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
120
|
+
return ((fromX === undefined || this.fromX === fromX) &&
|
|
121
|
+
(fromY === undefined || this.fromY === fromY) &&
|
|
122
|
+
(toX === undefined || this.toX === toX) &&
|
|
123
|
+
(toY === undefined || this.toY === toY));
|
|
116
124
|
}
|
|
117
125
|
destroy() {
|
|
118
126
|
this._fromPosition.destroy();
|