From dca4b58b8615e82a358fef7ec517855822d2a9ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Sun, 25 May 2014 01:33:32 +0200 Subject: [PATCH] Moved constraints to a DynMath project (repo MightyPork/dynmath) --- .classpath | 1 + .../gamecore/eventbus/events/UpdateEvent.java | 1 + .../gui/components/BaseComponent.java | 10 +- .../gamecore/gui/components/Component.java | 2 +- .../gui/components/LayoutComponent.java | 2 +- .../gui/components/LinearComponent.java | 10 +- .../gui/components/PluggableRenderable.java | 6 +- .../gui/components/input/TextButton.java | 4 +- .../gui/components/layout/ColumnLayout.java | 2 +- .../components/layout/ConstraintLayout.java | 2 +- .../components/layout/FlowColumnLayout.java | 6 +- .../gui/components/layout/FlowRowLayout.java | 6 +- .../gui/components/layout/GridLayout.java | 4 +- .../gui/components/layout/RowLayout.java | 2 +- .../components/layout/linear/LinearGap.java | 2 +- .../layout/linear/LinearLayout.java | 10 +- .../layout/linear/LinearRectangle.java | 2 +- .../gui/components/painters/TextPainter.java | 6 +- .../gamecore/gui/screens/Overlay.java | 6 +- .../gamecore/gui/screens/Screen.java | 4 +- .../gui/screens/impl/CrossfadeOverlay.java | 2 +- .../gui/screens/impl/FadingLayer.java | 2 +- .../gamecore/input/InputSystem.java | 6 +- .../input/events/MouseButtonEvent.java | 6 +- .../input/events/MouseMotionEvent.java | 4 +- .../gamecore/render/DisplaySystem.java | 6 +- src/mightypork/gamecore/render/Render.java | 8 +- .../render/events/ViewportChangeEvent.java | 2 +- .../gamecore/resources/audio/LazyAudio.java | 2 +- .../gamecore/resources/audio/SoundSystem.java | 6 +- .../resources/audio/players/EffectPlayer.java | 2 +- .../resources/audio/players/LoopPlayer.java | 4 +- .../resources/fonts/FontRenderer.java | 4 +- .../gamecore/resources/fonts/GLFont.java | 2 +- .../resources/fonts/impl/LazyFont.java | 2 +- .../fonts/impl/TextureBackedFont.java | 4 +- .../resources/textures/GLTexture.java | 2 +- .../resources/textures/LazyTexture.java | 2 +- .../gamecore/resources/textures/QuadGrid.java | 2 +- .../resources/textures/TextureRegistry.java | 2 +- .../gamecore/resources/textures/TxQuad.java | 4 +- src/mightypork/gamecore/util/math/Calc.java | 2 +- src/mightypork/gamecore/util/math/Polar.java | 2 +- .../gamecore/util/math/algo/Coord.java | 4 +- .../gamecore/util/math/color/Color.java | 2 +- .../util/math/color/ColorAlphaAdjuster.java | 2 +- .../gamecore/util/math/color/ColorHsb.java | 2 +- .../gamecore/util/math/color/ColorRgb.java | 2 +- .../math/constraints/ConstraintCache.java | 44 - .../util/math/constraints/DigestCache.java | 60 - .../util/math/constraints/Digestable.java | 60 - .../util/math/constraints/Pollable.java | 15 - .../util/math/constraints/Poller.java | 47 - .../util/math/constraints/num/Num.java | 760 ---------- .../util/math/constraints/num/NumConst.java | 270 ---- .../util/math/constraints/num/NumSum.java | 49 - .../num/caching/AbstractNumCache.java | 84 -- .../constraints/num/caching/NumCache.java | 37 - .../constraints/num/caching/NumDigest.java | 23 - .../constraints/num/mutable/NumMutable.java | 41 - .../math/constraints/num/mutable/NumVar.java | 42 - .../constraints/num/proxy/NumAdapter.java | 18 - .../math/constraints/num/proxy/NumBound.java | 19 - .../num/proxy/NumBoundAdapter.java | 36 - .../math/constraints/num/proxy/NumProxy.java | 24 - .../num/proxy/PluggableNumBound.java | 16 - .../util/math/constraints/rect/Rect.java | 1064 -------------- .../util/math/constraints/rect/RectConst.java | 486 ------- .../constraints/rect/builders/TiledRect.java | 130 -- .../rect/caching/AbstractRectCache.java | 75 - .../constraints/rect/caching/RectCache.java | 37 - .../constraints/rect/caching/RectDigest.java | 41 - .../constraints/rect/mutable/RectMutable.java | 91 -- .../constraints/rect/mutable/RectVar.java | 55 - .../rect/proxy/PluggableRectBound.java | 16 - .../constraints/rect/proxy/RectAdapter.java | 58 - .../constraints/rect/proxy/RectBound.java | 18 - .../rect/proxy/RectBoundAdapter.java | 41 - .../constraints/rect/proxy/RectProxy.java | 24 - .../rect/proxy/RectVectAdapter.java | 39 - .../util/math/constraints/vect/Vect.java | 1231 ----------------- .../util/math/constraints/vect/VectConst.java | 375 ----- .../util/math/constraints/vect/VectProxy.java | 24 - .../vect/caching/AbstractVectCache.java | 75 - .../constraints/vect/caching/VectCache.java | 37 - .../constraints/vect/caching/VectDigest.java | 27 - .../constraints/vect/mutable/VectMutable.java | 80 -- .../constraints/vect/mutable/VectVar.java | 78 -- .../vect/proxy/PluggableVectBound.java | 16 - .../constraints/vect/proxy/VectAdapter.java | 41 - .../constraints/vect/proxy/VectBound.java | 18 - .../vect/proxy/VectBoundAdapter.java | 36 - .../vect/proxy/VectNumAdapter.java | 57 - .../util/math/timing/TaskRepeater.java | 3 +- .../gamecore/util/math/timing/TimedTask.java | 4 +- .../math/timing}/Updateable.java | 2 +- .../math/timing/{ => animation}/Animator.java | 8 +- .../{ => animation}/AnimatorBounce.java | 3 +- .../{ => animation}/AnimatorRewind.java | 3 +- .../animation}/NumAnimated.java | 5 +- .../animation}/NumAnimatedDeg.java | 2 +- .../animation}/NumAnimatedRad.java | 2 +- .../animation}/VectAnimated.java | 8 +- .../gamecore/util/objects/Convert.java | 4 +- src/mightypork/rogue/RogueResources.java | 2 +- src/mightypork/rogue/screens/FpsOverlay.java | 6 +- .../rogue/screens/LoadingOverlay.java | 6 +- .../rogue/screens/game/HeartBar.java | 6 +- .../rogue/screens/game/IngameNav.java | 4 +- .../rogue/screens/game/InvSlot.java | 6 +- .../rogue/screens/game/LayerAskSave.java | 2 +- .../rogue/screens/game/LayerDeath.java | 2 +- .../rogue/screens/game/LayerGameUi.java | 4 +- .../rogue/screens/game/LayerInv.java | 4 +- .../rogue/screens/game/LayerMapView.java | 2 +- .../rogue/screens/game/LayerWin.java | 2 +- .../rogue/screens/menu/ScreenMainMenu.java | 4 +- .../select_world/ScreenSelectWorld.java | 2 +- .../rogue/screens/select_world/WorldSlot.java | 4 +- .../rogue/screens/story/ScreenStory.java | 6 +- src/mightypork/rogue/world/PlayerControl.java | 2 +- src/mightypork/rogue/world/PlayerFacade.java | 2 +- src/mightypork/rogue/world/World.java | 2 +- src/mightypork/rogue/world/WorldConsole.java | 4 +- src/mightypork/rogue/world/WorldRenderer.java | 12 +- src/mightypork/rogue/world/entity/Entity.java | 2 +- .../rogue/world/entity/EntityModule.java | 2 +- .../entity/modules/EntityModulePosition.java | 2 +- .../rogue/world/entity/modules/EntityPos.java | 8 +- .../entity/render/EntityRendererMobLR.java | 8 +- src/mightypork/rogue/world/gui/MapView.java | 8 +- src/mightypork/rogue/world/gui/Minimap.java | 8 +- .../rogue/world/gui/WorldConsoleRenderer.java | 6 +- .../world/gui/interaction/MIPKeyboard.java | 4 +- .../rogue/world/gui/interaction/MIPMouse.java | 4 +- .../gui/interaction/MapInteractionPlugin.java | 2 +- src/mightypork/rogue/world/item/Item.java | 2 +- .../rogue/world/item/ItemRenderer.java | 2 +- .../world/item/render/QuadItemRenderer.java | 2 +- src/mightypork/rogue/world/level/Level.java | 4 +- .../level/render/EntityRenderContext.java | 2 +- .../world/level/render/MapRenderContext.java | 4 +- .../world/level/render/TileRenderContext.java | 4 +- .../rogue/world/tile/DroppedItemRenderer.java | 12 +- .../rogue/world/tile/TileRenderer.java | 4 +- .../world/tile/render/BasicTileRenderer.java | 2 +- .../world/tile/render/DoorTileRenderer.java | 2 +- .../tile/render/TwoHighTileRenderer.java | 2 +- 148 files changed, 202 insertions(+), 6115 deletions(-) delete mode 100644 src/mightypork/gamecore/util/math/constraints/ConstraintCache.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/DigestCache.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/Digestable.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/Pollable.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/Poller.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/Num.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/NumConst.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/NumSum.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/caching/AbstractNumCache.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/caching/NumCache.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/caching/NumDigest.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/mutable/NumMutable.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/mutable/NumVar.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/proxy/NumAdapter.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/proxy/NumBound.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/proxy/NumBoundAdapter.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/proxy/NumProxy.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/num/proxy/PluggableNumBound.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/Rect.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/RectConst.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/builders/TiledRect.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/caching/AbstractRectCache.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/caching/RectCache.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/caching/RectDigest.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/mutable/RectMutable.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/mutable/RectVar.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/proxy/PluggableRectBound.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/proxy/RectAdapter.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/proxy/RectBound.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/proxy/RectBoundAdapter.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/proxy/RectProxy.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/rect/proxy/RectVectAdapter.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/Vect.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/VectConst.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/VectProxy.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/caching/AbstractVectCache.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/caching/VectCache.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/caching/VectDigest.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/mutable/VectMutable.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/mutable/VectVar.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/proxy/PluggableVectBound.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/proxy/VectAdapter.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/proxy/VectBound.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/proxy/VectBoundAdapter.java delete mode 100644 src/mightypork/gamecore/util/math/constraints/vect/proxy/VectNumAdapter.java rename src/mightypork/gamecore/{eventbus/events => util/math/timing}/Updateable.java (85%) rename src/mightypork/gamecore/util/math/timing/{ => animation}/Animator.java (89%) rename src/mightypork/gamecore/util/math/timing/{ => animation}/AnimatorBounce.java (86%) rename src/mightypork/gamecore/util/math/timing/{ => animation}/AnimatorRewind.java (85%) rename src/mightypork/gamecore/util/math/{constraints/num/mutable => timing/animation}/NumAnimated.java (97%) rename src/mightypork/gamecore/util/math/{constraints/num/mutable => timing/animation}/NumAnimatedDeg.java (93%) rename src/mightypork/gamecore/util/math/{constraints/num/mutable => timing/animation}/NumAnimatedRad.java (93%) rename src/mightypork/gamecore/util/math/{constraints/vect/mutable => timing/animation}/VectAnimated.java (94%) diff --git a/.classpath b/.classpath index dd14e7a..f2e05f6 100644 --- a/.classpath +++ b/.classpath @@ -33,5 +33,6 @@ + diff --git a/src/mightypork/gamecore/eventbus/events/UpdateEvent.java b/src/mightypork/gamecore/eventbus/events/UpdateEvent.java index 52404b4..6988a65 100644 --- a/src/mightypork/gamecore/eventbus/events/UpdateEvent.java +++ b/src/mightypork/gamecore/eventbus/events/UpdateEvent.java @@ -5,6 +5,7 @@ import mightypork.gamecore.eventbus.BusEvent; import mightypork.gamecore.eventbus.event_flags.DirectEvent; import mightypork.gamecore.eventbus.event_flags.NonConsumableEvent; import mightypork.gamecore.eventbus.event_flags.NotLoggedEvent; +import mightypork.gamecore.util.math.timing.Updateable; /** diff --git a/src/mightypork/gamecore/gui/components/BaseComponent.java b/src/mightypork/gamecore/gui/components/BaseComponent.java index e0989a2..082e945 100644 --- a/src/mightypork/gamecore/gui/components/BaseComponent.java +++ b/src/mightypork/gamecore/gui/components/BaseComponent.java @@ -1,6 +1,11 @@ package mightypork.gamecore.gui.components; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.caching.AbstractRectCache; +import mightypork.dynmath.rect.proxy.RectBound; +import mightypork.dynmath.rect.proxy.RectBoundAdapter; import mightypork.gamecore.gui.Enableable; import mightypork.gamecore.gui.events.LayoutChangeEvent; import mightypork.gamecore.gui.events.LayoutChangeListener; @@ -9,11 +14,6 @@ import mightypork.gamecore.logging.Log; import mightypork.gamecore.render.Renderable; import mightypork.gamecore.util.annot.DefaultImpl; import mightypork.gamecore.util.math.color.Color; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.caching.AbstractRectCache; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBoundAdapter; /** diff --git a/src/mightypork/gamecore/gui/components/Component.java b/src/mightypork/gamecore/gui/components/Component.java index fd75dca..73787ea 100644 --- a/src/mightypork/gamecore/gui/components/Component.java +++ b/src/mightypork/gamecore/gui/components/Component.java @@ -1,9 +1,9 @@ package mightypork.gamecore.gui.components; +import mightypork.dynmath.num.Num; import mightypork.gamecore.gui.Enableable; import mightypork.gamecore.gui.Hideable; -import mightypork.gamecore.util.math.constraints.num.Num; /** diff --git a/src/mightypork/gamecore/gui/components/LayoutComponent.java b/src/mightypork/gamecore/gui/components/LayoutComponent.java index 83acf49..9266807 100644 --- a/src/mightypork/gamecore/gui/components/LayoutComponent.java +++ b/src/mightypork/gamecore/gui/components/LayoutComponent.java @@ -4,6 +4,7 @@ package mightypork.gamecore.gui.components; import java.util.Collection; import java.util.LinkedList; +import mightypork.dynmath.rect.proxy.RectBound; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.core.modules.AppSubModule; import mightypork.gamecore.eventbus.EventBus; @@ -11,7 +12,6 @@ import mightypork.gamecore.eventbus.clients.ClientHub; import mightypork.gamecore.input.InputSystem; import mightypork.gamecore.render.DisplaySystem; import mightypork.gamecore.resources.audio.SoundSystem; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; public abstract class LayoutComponent extends BaseComponent implements ClientHub, AppAccess { diff --git a/src/mightypork/gamecore/gui/components/LinearComponent.java b/src/mightypork/gamecore/gui/components/LinearComponent.java index 63e55f5..8f6d494 100644 --- a/src/mightypork/gamecore/gui/components/LinearComponent.java +++ b/src/mightypork/gamecore/gui/components/LinearComponent.java @@ -1,11 +1,11 @@ package mightypork.gamecore.gui.components; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.proxy.VectAdapter; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.proxy.RectBound; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.proxy.VectAdapter; public abstract class LinearComponent extends BaseComponent implements DynamicWidthComponent { diff --git a/src/mightypork/gamecore/gui/components/PluggableRenderable.java b/src/mightypork/gamecore/gui/components/PluggableRenderable.java index 7d31e22..e5130ba 100644 --- a/src/mightypork/gamecore/gui/components/PluggableRenderable.java +++ b/src/mightypork/gamecore/gui/components/PluggableRenderable.java @@ -1,10 +1,10 @@ package mightypork.gamecore.gui.components; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.proxy.PluggableRectBound; +import mightypork.dynmath.rect.proxy.RectBound; import mightypork.gamecore.render.Renderable; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.proxy.PluggableRectBound; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; /** diff --git a/src/mightypork/gamecore/gui/components/input/TextButton.java b/src/mightypork/gamecore/gui/components/input/TextButton.java index c336ba6..b17d0b8 100644 --- a/src/mightypork/gamecore/gui/components/input/TextButton.java +++ b/src/mightypork/gamecore/gui/components/input/TextButton.java @@ -1,6 +1,8 @@ package mightypork.gamecore.gui.components.input; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.mutable.VectVar; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.components.DynamicWidthComponent; import mightypork.gamecore.gui.components.painters.TextPainter; @@ -8,8 +10,6 @@ import mightypork.gamecore.input.InputSystem; import mightypork.gamecore.resources.fonts.GLFont; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.mutable.VectVar; /** diff --git a/src/mightypork/gamecore/gui/components/layout/ColumnLayout.java b/src/mightypork/gamecore/gui/components/layout/ColumnLayout.java index 8a6e5ab..fd0900e 100644 --- a/src/mightypork/gamecore/gui/components/layout/ColumnLayout.java +++ b/src/mightypork/gamecore/gui/components/layout/ColumnLayout.java @@ -1,9 +1,9 @@ package mightypork.gamecore.gui.components.layout; +import mightypork.dynmath.rect.proxy.RectBound; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.components.Component; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; public class ColumnLayout extends GridLayout { diff --git a/src/mightypork/gamecore/gui/components/layout/ConstraintLayout.java b/src/mightypork/gamecore/gui/components/layout/ConstraintLayout.java index 4d8f1d4..61438a2 100644 --- a/src/mightypork/gamecore/gui/components/layout/ConstraintLayout.java +++ b/src/mightypork/gamecore/gui/components/layout/ConstraintLayout.java @@ -1,10 +1,10 @@ package mightypork.gamecore.gui.components.layout; +import mightypork.dynmath.rect.proxy.RectBound; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.components.Component; import mightypork.gamecore.gui.components.LayoutComponent; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; /** diff --git a/src/mightypork/gamecore/gui/components/layout/FlowColumnLayout.java b/src/mightypork/gamecore/gui/components/layout/FlowColumnLayout.java index eba5c62..ae32a13 100644 --- a/src/mightypork/gamecore/gui/components/layout/FlowColumnLayout.java +++ b/src/mightypork/gamecore/gui/components/layout/FlowColumnLayout.java @@ -1,13 +1,13 @@ package mightypork.gamecore.gui.components.layout; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.proxy.RectBound; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.components.Component; import mightypork.gamecore.gui.components.LayoutComponent; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; /** diff --git a/src/mightypork/gamecore/gui/components/layout/FlowRowLayout.java b/src/mightypork/gamecore/gui/components/layout/FlowRowLayout.java index acd5789..4ebf77b 100644 --- a/src/mightypork/gamecore/gui/components/layout/FlowRowLayout.java +++ b/src/mightypork/gamecore/gui/components/layout/FlowRowLayout.java @@ -1,13 +1,13 @@ package mightypork.gamecore.gui.components.layout; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.proxy.RectBound; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.AlignY; import mightypork.gamecore.gui.components.Component; import mightypork.gamecore.gui.components.LayoutComponent; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; /** diff --git a/src/mightypork/gamecore/gui/components/layout/GridLayout.java b/src/mightypork/gamecore/gui/components/layout/GridLayout.java index 1bcfcba..d95471d 100644 --- a/src/mightypork/gamecore/gui/components/layout/GridLayout.java +++ b/src/mightypork/gamecore/gui/components/layout/GridLayout.java @@ -1,11 +1,11 @@ package mightypork.gamecore.gui.components.layout; +import mightypork.dynmath.rect.builders.TiledRect; +import mightypork.dynmath.rect.proxy.RectBound; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.components.Component; import mightypork.gamecore.gui.components.LayoutComponent; -import mightypork.gamecore.util.math.constraints.rect.builders.TiledRect; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; /** diff --git a/src/mightypork/gamecore/gui/components/layout/RowLayout.java b/src/mightypork/gamecore/gui/components/layout/RowLayout.java index 39b4d90..65315ab 100644 --- a/src/mightypork/gamecore/gui/components/layout/RowLayout.java +++ b/src/mightypork/gamecore/gui/components/layout/RowLayout.java @@ -1,9 +1,9 @@ package mightypork.gamecore.gui.components.layout; +import mightypork.dynmath.rect.proxy.RectBound; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.components.Component; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; public class RowLayout extends GridLayout { diff --git a/src/mightypork/gamecore/gui/components/layout/linear/LinearGap.java b/src/mightypork/gamecore/gui/components/layout/linear/LinearGap.java index 159ad49..e1b6dda 100644 --- a/src/mightypork/gamecore/gui/components/layout/linear/LinearGap.java +++ b/src/mightypork/gamecore/gui/components/layout/linear/LinearGap.java @@ -1,8 +1,8 @@ package mightypork.gamecore.gui.components.layout.linear; +import mightypork.dynmath.num.Num; import mightypork.gamecore.gui.components.layout.NullComponent; -import mightypork.gamecore.util.math.constraints.num.Num; /** diff --git a/src/mightypork/gamecore/gui/components/layout/linear/LinearLayout.java b/src/mightypork/gamecore/gui/components/layout/linear/LinearLayout.java index 6f55c08..c9ce181 100644 --- a/src/mightypork/gamecore/gui/components/layout/linear/LinearLayout.java +++ b/src/mightypork/gamecore/gui/components/layout/linear/LinearLayout.java @@ -1,16 +1,16 @@ package mightypork.gamecore.gui.components.layout.linear; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.num.NumSum; +import mightypork.dynmath.rect.proxy.RectBound; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.proxy.VectAdapter; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.components.DynamicWidthComponent; import mightypork.gamecore.gui.components.LayoutComponent; import mightypork.gamecore.gui.components.LinearComponent; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.NumSum; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.proxy.VectAdapter; public class LinearLayout extends LayoutComponent { diff --git a/src/mightypork/gamecore/gui/components/layout/linear/LinearRectangle.java b/src/mightypork/gamecore/gui/components/layout/linear/LinearRectangle.java index 35a7311..1671361 100644 --- a/src/mightypork/gamecore/gui/components/layout/linear/LinearRectangle.java +++ b/src/mightypork/gamecore/gui/components/layout/linear/LinearRectangle.java @@ -1,8 +1,8 @@ package mightypork.gamecore.gui.components.layout.linear; +import mightypork.dynmath.num.Num; import mightypork.gamecore.gui.components.Component; -import mightypork.gamecore.util.math.constraints.num.Num; public class LinearRectangle extends AbstractLinearWrapper { diff --git a/src/mightypork/gamecore/gui/components/painters/TextPainter.java b/src/mightypork/gamecore/gui/components/painters/TextPainter.java index 028b8c4..4caa4c8 100644 --- a/src/mightypork/gamecore/gui/components/painters/TextPainter.java +++ b/src/mightypork/gamecore/gui/components/painters/TextPainter.java @@ -1,6 +1,9 @@ package mightypork.gamecore.gui.components.painters; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.components.BaseComponent; import mightypork.gamecore.gui.components.DynamicWidthComponent; @@ -9,9 +12,6 @@ import mightypork.gamecore.resources.fonts.FontRenderer; import mightypork.gamecore.resources.fonts.GLFont; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.vect.Vect; import mightypork.gamecore.util.strings.StringProvider; import mightypork.gamecore.util.strings.StringWrapper; diff --git a/src/mightypork/gamecore/gui/screens/Overlay.java b/src/mightypork/gamecore/gui/screens/Overlay.java index 17a7f2d..bef1f22 100644 --- a/src/mightypork/gamecore/gui/screens/Overlay.java +++ b/src/mightypork/gamecore/gui/screens/Overlay.java @@ -4,9 +4,10 @@ package mightypork.gamecore.gui.screens; import java.util.ArrayList; import java.util.Collection; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.core.modules.AppSubModule; -import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.gui.Enableable; import mightypork.gamecore.gui.Hideable; import mightypork.gamecore.gui.components.layout.ConstraintLayout; @@ -18,8 +19,7 @@ import mightypork.gamecore.input.KeyStroke.Edge; import mightypork.gamecore.render.Renderable; import mightypork.gamecore.util.annot.DefaultImpl; import mightypork.gamecore.util.math.color.Color; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.vect.Vect; +import mightypork.gamecore.util.math.timing.Updateable; /** diff --git a/src/mightypork/gamecore/gui/screens/Screen.java b/src/mightypork/gamecore/gui/screens/Screen.java index 32d5ad5..55eaa61 100644 --- a/src/mightypork/gamecore/gui/screens/Screen.java +++ b/src/mightypork/gamecore/gui/screens/Screen.java @@ -1,6 +1,8 @@ package mightypork.gamecore.gui.screens; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.proxy.RectBound; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.core.modules.AppSubModule; import mightypork.gamecore.gui.events.LayoutChangeEvent; @@ -13,8 +15,6 @@ import mightypork.gamecore.render.DisplaySystem; import mightypork.gamecore.render.Render; import mightypork.gamecore.render.Renderable; import mightypork.gamecore.util.annot.DefaultImpl; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; /** diff --git a/src/mightypork/gamecore/gui/screens/impl/CrossfadeOverlay.java b/src/mightypork/gamecore/gui/screens/impl/CrossfadeOverlay.java index 17e65a4..12489e4 100644 --- a/src/mightypork/gamecore/gui/screens/impl/CrossfadeOverlay.java +++ b/src/mightypork/gamecore/gui/screens/impl/CrossfadeOverlay.java @@ -8,8 +8,8 @@ import mightypork.gamecore.gui.events.ScreenRequest; import mightypork.gamecore.gui.screens.Overlay; import mightypork.gamecore.util.math.Easing; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; import mightypork.gamecore.util.math.timing.TimedTask; +import mightypork.gamecore.util.math.timing.animation.NumAnimated; /** diff --git a/src/mightypork/gamecore/gui/screens/impl/FadingLayer.java b/src/mightypork/gamecore/gui/screens/impl/FadingLayer.java index b9976e3..2d2f3cc 100644 --- a/src/mightypork/gamecore/gui/screens/impl/FadingLayer.java +++ b/src/mightypork/gamecore/gui/screens/impl/FadingLayer.java @@ -5,8 +5,8 @@ import mightypork.gamecore.gui.screens.Screen; import mightypork.gamecore.gui.screens.ScreenLayer; import mightypork.gamecore.util.annot.DefaultImpl; import mightypork.gamecore.util.math.Easing; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; import mightypork.gamecore.util.math.timing.TimedTask; +import mightypork.gamecore.util.math.timing.animation.NumAnimated; /** diff --git a/src/mightypork/gamecore/input/InputSystem.java b/src/mightypork/gamecore/input/InputSystem.java index f1cfe64..fb01154 100644 --- a/src/mightypork/gamecore/input/InputSystem.java +++ b/src/mightypork/gamecore/input/InputSystem.java @@ -1,17 +1,17 @@ package mightypork.gamecore.input; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.mutable.VectVar; import mightypork.gamecore.core.events.UserQuitRequest; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.eventbus.clients.RootBusNode; -import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.input.KeyStroke.Edge; import mightypork.gamecore.input.events.InputReadyEvent; import mightypork.gamecore.input.events.KeyEvent; import mightypork.gamecore.input.events.MouseButtonEvent; import mightypork.gamecore.input.events.MouseMotionEvent; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.mutable.VectVar; +import mightypork.gamecore.util.math.timing.Updateable; import org.lwjgl.LWJGLException; import org.lwjgl.input.Keyboard; diff --git a/src/mightypork/gamecore/input/events/MouseButtonEvent.java b/src/mightypork/gamecore/input/events/MouseButtonEvent.java index db56660..2bf2895 100644 --- a/src/mightypork/gamecore/input/events/MouseButtonEvent.java +++ b/src/mightypork/gamecore/input/events/MouseButtonEvent.java @@ -1,11 +1,11 @@ package mightypork.gamecore.input.events; +import mightypork.dynmath.rect.proxy.RectBound; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.VectConst; import mightypork.gamecore.eventbus.BusEvent; import mightypork.gamecore.eventbus.event_flags.NotLoggedEvent; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.VectConst; /** diff --git a/src/mightypork/gamecore/input/events/MouseMotionEvent.java b/src/mightypork/gamecore/input/events/MouseMotionEvent.java index bb89703..77f2ad3 100644 --- a/src/mightypork/gamecore/input/events/MouseMotionEvent.java +++ b/src/mightypork/gamecore/input/events/MouseMotionEvent.java @@ -1,10 +1,10 @@ package mightypork.gamecore.input.events; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.VectConst; import mightypork.gamecore.eventbus.BusEvent; import mightypork.gamecore.eventbus.event_flags.NotLoggedEvent; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.VectConst; /** diff --git a/src/mightypork/gamecore/render/DisplaySystem.java b/src/mightypork/gamecore/render/DisplaySystem.java index bc99f98..07d4c26 100644 --- a/src/mightypork/gamecore/render/DisplaySystem.java +++ b/src/mightypork/gamecore/render/DisplaySystem.java @@ -5,14 +5,14 @@ import static org.lwjgl.opengl.GL11.*; import java.nio.ByteBuffer; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.proxy.RectBound; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.core.modules.AppModule; import mightypork.gamecore.logging.Log; import mightypork.gamecore.render.events.DisplayReadyEvent; import mightypork.gamecore.render.events.ViewportChangeEvent; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; -import mightypork.gamecore.util.math.constraints.vect.Vect; import mightypork.gamecore.util.math.timing.FpsMeter; import org.lwjgl.BufferUtils; diff --git a/src/mightypork/gamecore/render/Render.java b/src/mightypork/gamecore/render/Render.java index 6c7afcb..bc69115 100644 --- a/src/mightypork/gamecore/render/Render.java +++ b/src/mightypork/gamecore/render/Render.java @@ -5,6 +5,10 @@ import static org.lwjgl.opengl.GL11.*; import java.io.IOException; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.caching.RectDigest; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.VectConst; import mightypork.gamecore.logging.Log; import mightypork.gamecore.resources.textures.FilterMode; import mightypork.gamecore.resources.textures.GLTexture; @@ -12,10 +16,6 @@ import mightypork.gamecore.resources.textures.TxQuad; import mightypork.gamecore.util.files.FileUtils; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.caching.RectDigest; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.VectConst; import org.lwjgl.opengl.GL11; import org.newdawn.slick.opengl.Texture; diff --git a/src/mightypork/gamecore/render/events/ViewportChangeEvent.java b/src/mightypork/gamecore/render/events/ViewportChangeEvent.java index f5305fc..8943b60 100644 --- a/src/mightypork/gamecore/render/events/ViewportChangeEvent.java +++ b/src/mightypork/gamecore/render/events/ViewportChangeEvent.java @@ -1,10 +1,10 @@ package mightypork.gamecore.render.events; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.eventbus.BusEvent; import mightypork.gamecore.eventbus.event_flags.NonConsumableEvent; import mightypork.gamecore.eventbus.event_flags.NotLoggedEvent; -import mightypork.gamecore.util.math.constraints.vect.Vect; /** diff --git a/src/mightypork/gamecore/resources/audio/LazyAudio.java b/src/mightypork/gamecore/resources/audio/LazyAudio.java index 02ecefc..6911f01 100644 --- a/src/mightypork/gamecore/resources/audio/LazyAudio.java +++ b/src/mightypork/gamecore/resources/audio/LazyAudio.java @@ -4,10 +4,10 @@ package mightypork.gamecore.resources.audio; import java.io.IOException; import java.io.InputStream; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.logging.LogAlias; import mightypork.gamecore.resources.BaseLazyResource; import mightypork.gamecore.util.files.FileUtils; -import mightypork.gamecore.util.math.constraints.vect.Vect; import org.newdawn.slick.openal.Audio; import org.newdawn.slick.openal.SoundStore; diff --git a/src/mightypork/gamecore/resources/audio/SoundSystem.java b/src/mightypork/gamecore/resources/audio/SoundSystem.java index eeef0e0..187ae31 100644 --- a/src/mightypork/gamecore/resources/audio/SoundSystem.java +++ b/src/mightypork/gamecore/resources/audio/SoundSystem.java @@ -5,16 +5,16 @@ import java.nio.FloatBuffer; import java.util.ArrayList; import java.util.List; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.mutable.VectVar; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.eventbus.clients.RootBusNode; -import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.logging.Log; import mightypork.gamecore.resources.ResourceLoadRequest; import mightypork.gamecore.resources.audio.players.EffectPlayer; import mightypork.gamecore.resources.audio.players.LoopPlayer; import mightypork.gamecore.util.math.Calc.Buffers; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.mutable.VectVar; +import mightypork.gamecore.util.math.timing.Updateable; import org.lwjgl.openal.AL; import org.lwjgl.openal.AL10; diff --git a/src/mightypork/gamecore/resources/audio/players/EffectPlayer.java b/src/mightypork/gamecore/resources/audio/players/EffectPlayer.java index 9efed03..c8e038a 100644 --- a/src/mightypork/gamecore/resources/audio/players/EffectPlayer.java +++ b/src/mightypork/gamecore/resources/audio/players/EffectPlayer.java @@ -1,9 +1,9 @@ package mightypork.gamecore.resources.audio.players; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.resources.audio.LazyAudio; import mightypork.gamecore.resources.audio.Volume; -import mightypork.gamecore.util.math.constraints.vect.Vect; /** diff --git a/src/mightypork/gamecore/resources/audio/players/LoopPlayer.java b/src/mightypork/gamecore/resources/audio/players/LoopPlayer.java index d896b7a..33f0536 100644 --- a/src/mightypork/gamecore/resources/audio/players/LoopPlayer.java +++ b/src/mightypork/gamecore/resources/audio/players/LoopPlayer.java @@ -1,11 +1,11 @@ package mightypork.gamecore.resources.audio.players; -import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.resources.audio.LazyAudio; import mightypork.gamecore.resources.audio.Volume; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; import mightypork.gamecore.util.math.timing.Pauseable; +import mightypork.gamecore.util.math.timing.Updateable; +import mightypork.gamecore.util.math.timing.animation.NumAnimated; import org.lwjgl.openal.AL10; diff --git a/src/mightypork/gamecore/resources/fonts/FontRenderer.java b/src/mightypork/gamecore/resources/fonts/FontRenderer.java index b703e1c..ca9a578 100644 --- a/src/mightypork/gamecore/resources/fonts/FontRenderer.java +++ b/src/mightypork/gamecore/resources/fonts/FontRenderer.java @@ -1,12 +1,12 @@ package mightypork.gamecore.resources.fonts; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.render.Render; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.vect.Vect; /** diff --git a/src/mightypork/gamecore/resources/fonts/GLFont.java b/src/mightypork/gamecore/resources/fonts/GLFont.java index f09e4ca..4a27898 100644 --- a/src/mightypork/gamecore/resources/fonts/GLFont.java +++ b/src/mightypork/gamecore/resources/fonts/GLFont.java @@ -1,8 +1,8 @@ package mightypork.gamecore.resources.fonts; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.util.math.color.Color; -import mightypork.gamecore.util.math.constraints.vect.Vect; /** diff --git a/src/mightypork/gamecore/resources/fonts/impl/LazyFont.java b/src/mightypork/gamecore/resources/fonts/impl/LazyFont.java index ce56196..c33a654 100644 --- a/src/mightypork/gamecore/resources/fonts/impl/LazyFont.java +++ b/src/mightypork/gamecore/resources/fonts/impl/LazyFont.java @@ -6,6 +6,7 @@ import java.awt.FontFormatException; import java.io.IOException; import java.io.InputStream; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.logging.LogAlias; import mightypork.gamecore.resources.BaseLazyResource; import mightypork.gamecore.resources.TextureBasedResource; @@ -13,7 +14,6 @@ import mightypork.gamecore.resources.fonts.GLFont; import mightypork.gamecore.resources.textures.FilterMode; import mightypork.gamecore.util.files.FileUtils; import mightypork.gamecore.util.math.color.Color; -import mightypork.gamecore.util.math.constraints.vect.Vect; /** diff --git a/src/mightypork/gamecore/resources/fonts/impl/TextureBackedFont.java b/src/mightypork/gamecore/resources/fonts/impl/TextureBackedFont.java index e4b4ff0..d65a3f1 100644 --- a/src/mightypork/gamecore/resources/fonts/impl/TextureBackedFont.java +++ b/src/mightypork/gamecore/resources/fonts/impl/TextureBackedFont.java @@ -18,13 +18,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.VectConst; import mightypork.gamecore.logging.Log; import mightypork.gamecore.resources.fonts.GLFont; import mightypork.gamecore.resources.textures.FilterMode; import mightypork.gamecore.resources.textures.LazyTexture; import mightypork.gamecore.util.math.color.Color; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.VectConst; import org.lwjgl.BufferUtils; import org.lwjgl.util.glu.GLU; diff --git a/src/mightypork/gamecore/resources/textures/GLTexture.java b/src/mightypork/gamecore/resources/textures/GLTexture.java index 82f8017..3ecd837 100644 --- a/src/mightypork/gamecore/resources/textures/GLTexture.java +++ b/src/mightypork/gamecore/resources/textures/GLTexture.java @@ -1,8 +1,8 @@ package mightypork.gamecore.resources.textures; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.eventbus.events.Destroyable; -import mightypork.gamecore.util.math.constraints.rect.Rect; /** diff --git a/src/mightypork/gamecore/resources/textures/LazyTexture.java b/src/mightypork/gamecore/resources/textures/LazyTexture.java index 8167c07..1a001ad 100644 --- a/src/mightypork/gamecore/resources/textures/LazyTexture.java +++ b/src/mightypork/gamecore/resources/textures/LazyTexture.java @@ -1,11 +1,11 @@ package mightypork.gamecore.resources.textures; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.logging.LogAlias; import mightypork.gamecore.render.Render; import mightypork.gamecore.resources.BaseLazyResource; import mightypork.gamecore.resources.TextureBasedResource; -import mightypork.gamecore.util.math.constraints.rect.Rect; import org.lwjgl.opengl.GL11; diff --git a/src/mightypork/gamecore/resources/textures/QuadGrid.java b/src/mightypork/gamecore/resources/textures/QuadGrid.java index c049971..8d101ea 100644 --- a/src/mightypork/gamecore/resources/textures/QuadGrid.java +++ b/src/mightypork/gamecore/resources/textures/QuadGrid.java @@ -1,7 +1,7 @@ package mightypork.gamecore.resources.textures; -import mightypork.gamecore.util.math.constraints.rect.Rect; +import mightypork.dynmath.rect.Rect; /** diff --git a/src/mightypork/gamecore/resources/textures/TextureRegistry.java b/src/mightypork/gamecore/resources/textures/TextureRegistry.java index dc12758..2ea4d74 100644 --- a/src/mightypork/gamecore/resources/textures/TextureRegistry.java +++ b/src/mightypork/gamecore/resources/textures/TextureRegistry.java @@ -4,11 +4,11 @@ package mightypork.gamecore.resources.textures; import java.util.HashMap; import java.util.Map; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.core.modules.AppAccessAdapter; import mightypork.gamecore.resources.ResourceLoadRequest; import mightypork.gamecore.util.error.KeyAlreadyExistsException; -import mightypork.gamecore.util.math.constraints.rect.Rect; /** diff --git a/src/mightypork/gamecore/resources/textures/TxQuad.java b/src/mightypork/gamecore/resources/textures/TxQuad.java index 5466ba7..e5b12db 100644 --- a/src/mightypork/gamecore/resources/textures/TxQuad.java +++ b/src/mightypork/gamecore/resources/textures/TxQuad.java @@ -1,8 +1,8 @@ package mightypork.gamecore.resources.textures; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.RectConst; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.RectConst; /** diff --git a/src/mightypork/gamecore/util/math/Calc.java b/src/mightypork/gamecore/util/math/Calc.java index caf4992..bac3d02 100644 --- a/src/mightypork/gamecore/util/math/Calc.java +++ b/src/mightypork/gamecore/util/math/Calc.java @@ -6,7 +6,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; -import mightypork.gamecore.util.math.constraints.vect.Vect; +import mightypork.dynmath.vect.Vect; import org.lwjgl.BufferUtils; diff --git a/src/mightypork/gamecore/util/math/Polar.java b/src/mightypork/gamecore/util/math/Polar.java index 39361ba..7663d1d 100644 --- a/src/mightypork/gamecore/util/math/Polar.java +++ b/src/mightypork/gamecore/util/math/Polar.java @@ -1,7 +1,7 @@ package mightypork.gamecore.util.math; -import mightypork.gamecore.util.math.constraints.vect.Vect; +import mightypork.dynmath.vect.Vect; /** diff --git a/src/mightypork/gamecore/util/math/algo/Coord.java b/src/mightypork/gamecore/util/math/algo/Coord.java index c6febf9..59a65c0 100644 --- a/src/mightypork/gamecore/util/math/algo/Coord.java +++ b/src/mightypork/gamecore/util/math/algo/Coord.java @@ -3,10 +3,10 @@ package mightypork.gamecore.util.math.algo; import java.io.IOException; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.VectConst; import mightypork.gamecore.util.annot.FactoryMethod; import mightypork.gamecore.util.math.Calc; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.VectConst; import mightypork.ion.IonBundle; import mightypork.ion.IonInput; import mightypork.ion.IonObjBinary; diff --git a/src/mightypork/gamecore/util/math/color/Color.java b/src/mightypork/gamecore/util/math/color/Color.java index 5fc1296..f2eea2c 100644 --- a/src/mightypork/gamecore/util/math/color/Color.java +++ b/src/mightypork/gamecore/util/math/color/Color.java @@ -4,9 +4,9 @@ package mightypork.gamecore.util.math.color; import java.util.EmptyStackException; import java.util.Stack; +import mightypork.dynmath.num.Num; import mightypork.gamecore.util.annot.FactoryMethod; import mightypork.gamecore.util.math.Calc; -import mightypork.gamecore.util.math.constraints.num.Num; /** diff --git a/src/mightypork/gamecore/util/math/color/ColorAlphaAdjuster.java b/src/mightypork/gamecore/util/math/color/ColorAlphaAdjuster.java index 58bfbb2..0de2050 100644 --- a/src/mightypork/gamecore/util/math/color/ColorAlphaAdjuster.java +++ b/src/mightypork/gamecore/util/math/color/ColorAlphaAdjuster.java @@ -1,7 +1,7 @@ package mightypork.gamecore.util.math.color; -import mightypork.gamecore.util.math.constraints.num.Num; +import mightypork.dynmath.num.Num; public class ColorAlphaAdjuster extends Color { diff --git a/src/mightypork/gamecore/util/math/color/ColorHsb.java b/src/mightypork/gamecore/util/math/color/ColorHsb.java index 1bb2123..2cd5800 100644 --- a/src/mightypork/gamecore/util/math/color/ColorHsb.java +++ b/src/mightypork/gamecore/util/math/color/ColorHsb.java @@ -1,7 +1,7 @@ package mightypork.gamecore.util.math.color; -import mightypork.gamecore.util.math.constraints.num.Num; +import mightypork.dynmath.num.Num; public class ColorHsb extends Color { diff --git a/src/mightypork/gamecore/util/math/color/ColorRgb.java b/src/mightypork/gamecore/util/math/color/ColorRgb.java index 020e1b2..63c1172 100644 --- a/src/mightypork/gamecore/util/math/color/ColorRgb.java +++ b/src/mightypork/gamecore/util/math/color/ColorRgb.java @@ -1,7 +1,7 @@ package mightypork.gamecore.util.math.color; -import mightypork.gamecore.util.math.constraints.num.Num; +import mightypork.dynmath.num.Num; public class ColorRgb extends Color { diff --git a/src/mightypork/gamecore/util/math/constraints/ConstraintCache.java b/src/mightypork/gamecore/util/math/constraints/ConstraintCache.java deleted file mode 100644 index f23ebd2..0000000 --- a/src/mightypork/gamecore/util/math/constraints/ConstraintCache.java +++ /dev/null @@ -1,44 +0,0 @@ -package mightypork.gamecore.util.math.constraints; - - -/** - * Constraint cache - * - * @author Ondřej Hruška (MightyPork) - * @param constraint type - */ -public interface ConstraintCache extends Pollable { - - /** - * Called after the cache has changed value (and digest). - */ - void onConstraintChanged(); - - - /** - * @return the cached value - */ - C getCacheSource(); - - - /** - * Enable caching & digest caching - * - * @param yes enable caching - */ - void enableCaching(boolean yes); - - - /** - * @return true if caching is on - */ - boolean isCachingEnabled(); - - - /** - * Update cached value and cached digest (if digest caching is enabled).
- * source constraint is polled beforehand. - */ - @Override - void poll(); -} diff --git a/src/mightypork/gamecore/util/math/constraints/DigestCache.java b/src/mightypork/gamecore/util/math/constraints/DigestCache.java deleted file mode 100644 index b85b6d5..0000000 --- a/src/mightypork/gamecore/util/math/constraints/DigestCache.java +++ /dev/null @@ -1,60 +0,0 @@ -package mightypork.gamecore.util.math.constraints; - - -/** - * Parametrized implementation of a {@link Digestable} - * - * @author Ondřej Hruška (MightyPork) - * @param digest class - */ -public abstract class DigestCache implements Digestable { - - private D last_digest; - private boolean caching_enabled = false; - private boolean dirty = true; - - - @Override - public final D digest() - { - if (caching_enabled) { - if (dirty || last_digest == null) { - last_digest = createDigest(); - dirty = false; - } - - return last_digest; - } - - return createDigest(); - } - - - /** - * @return fresh new digest - */ - protected abstract D createDigest(); - - - @Override - public final void enableDigestCaching(boolean yes) - { - caching_enabled = yes; - markDigestDirty(); // mark dirty - } - - - @Override - public final boolean isDigestCachingEnabled() - { - return caching_enabled; - } - - - @Override - public final void markDigestDirty() - { - dirty = true; - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/Digestable.java b/src/mightypork/gamecore/util/math/constraints/Digestable.java deleted file mode 100644 index 2a2d05c..0000000 --- a/src/mightypork/gamecore/util/math/constraints/Digestable.java +++ /dev/null @@ -1,60 +0,0 @@ -package mightypork.gamecore.util.math.constraints; - - -/** - *

- * Interface for constraints that support digests. Digest is a small data object - * with final fields, typically primitive, used for processing (such as - * rendering or other very frequent operations). - *

- *

- * Taking a digest is expensive, so if it needs to be done often and the value - * changes are deterministic (such as, triggered by timing event or screen - * resize), it's useful to cache the last digest and reuse it until such an - * event occurs again. - *

- *

- * Implementing class typically needs a field to store the last digest, a flag - * that digest caching is enabled, and a flag that a digest is dirty. - *

- * - * @author Ondřej Hruška (MightyPork) - * @param digest class - */ -public interface Digestable { - - /** - * Take a digest. If digest caching is enabled and the cached digest is - * marked as dirty, a new one should be made. - * - * @return digest - */ - public D digest(); - - - /** - *

- * Toggle digest caching. - *

- *

- * To trigger update of the cache, call the poll() method. - *

- * - * @param yes - */ - void enableDigestCaching(boolean yes); - - - /** - * @return true if digest caching is enabled. - */ - boolean isDigestCachingEnabled(); - - - /** - * If digest caching is enabled, mark current cached value as "dirty". Dirty - * digest should be re-created next time a value is requested.
- */ - void markDigestDirty(); - -} diff --git a/src/mightypork/gamecore/util/math/constraints/Pollable.java b/src/mightypork/gamecore/util/math/constraints/Pollable.java deleted file mode 100644 index 5cf598c..0000000 --- a/src/mightypork/gamecore/util/math/constraints/Pollable.java +++ /dev/null @@ -1,15 +0,0 @@ -package mightypork.gamecore.util.math.constraints; - - -/** - * Can be asked to update it's state - * - * @author Ondřej Hruška (MightyPork) - */ -public interface Pollable { - - /** - * Update internal state - */ - void poll(); -} diff --git a/src/mightypork/gamecore/util/math/constraints/Poller.java b/src/mightypork/gamecore/util/math/constraints/Poller.java deleted file mode 100644 index 7ffb7ca..0000000 --- a/src/mightypork/gamecore/util/math/constraints/Poller.java +++ /dev/null @@ -1,47 +0,0 @@ -package mightypork.gamecore.util.math.constraints; - - -import java.util.LinkedHashSet; -import java.util.Set; - - -/** - * Used to poll a number of {@link Pollable}s - * - * @author Ondřej Hruška (MightyPork) - */ -public class Poller implements Pollable { - - private final Set pollables = new LinkedHashSet<>(); - - - /** - * Add a pollable - * - * @param p pollable - */ - public void add(Pollable p) - { - pollables.add(p); - } - - - /** - * Remove a pollalbe - * - * @param p pollable - */ - public void remove(Pollable p) - { - pollables.remove(p); - } - - - @Override - public void poll() - { - for (final Pollable p : pollables) { - p.poll(); - } - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/Num.java b/src/mightypork/gamecore/util/math/constraints/num/Num.java deleted file mode 100644 index d0672b9..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/Num.java +++ /dev/null @@ -1,760 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num; - - -import mightypork.gamecore.util.annot.FactoryMethod; -import mightypork.gamecore.util.math.Calc; -import mightypork.gamecore.util.math.constraints.DigestCache; -import mightypork.gamecore.util.math.constraints.Digestable; -import mightypork.gamecore.util.math.constraints.num.caching.NumCache; -import mightypork.gamecore.util.math.constraints.num.caching.NumDigest; -import mightypork.gamecore.util.math.constraints.num.mutable.NumVar; -import mightypork.gamecore.util.math.constraints.num.proxy.NumBound; -import mightypork.gamecore.util.math.constraints.num.proxy.NumBoundAdapter; -import mightypork.gamecore.util.math.constraints.vect.Vect; - - -public abstract class Num implements NumBound, Digestable { - - public static final NumConst ZERO = Num.make(0); - public static final NumConst ONE = Num.make(1); - - - @FactoryMethod - public static Num make(NumBound bound) - { - return new NumBoundAdapter(bound); - } - - - @FactoryMethod - public static NumConst make(double value) - { - return new NumConst(value); - } - - - @FactoryMethod - public static NumVar makeVar() - { - return makeVar(0); - } - - - @FactoryMethod - public static NumVar makeVar(double value) - { - return new NumVar(value); - } - - - @FactoryMethod - public static NumVar makeVar(Num copied) - { - return new NumVar(copied.value()); - } - - private Num p_ceil; - private Num p_floor; - private Num p_sgn; - private Num p_round; - private Num p_atan; - private Num p_acos; - private Num p_asin; - private Num p_tan; - private Num p_cos; - private Num p_sin; - private Num p_cbrt; - private Num p_sqrt; - private Num p_cube; - private Num p_square; - private Num p_neg; - private Num p_abs; - - private final DigestCache dc = new DigestCache() { - - @Override - protected NumDigest createDigest() - { - return new NumDigest(Num.this); - } - }; - - - public NumConst freeze() - { - return new NumConst(value()); - } - - - /** - * Wrap this constraint into a caching adapter. Value will stay fixed (ie. - * no re-calculations) until cache receives a poll() call. - * - * @return the caching adapter - */ - public NumCache cached() - { - return new NumCache(this); - } - - - /** - * Get a snapshot of the current state, to be used for processing. - * - * @return digest - */ - - @Override - public NumDigest digest() - { - return dc.digest(); - } - - - @Override - public void enableDigestCaching(boolean yes) - { - dc.enableDigestCaching(yes); - } - - - @Override - public boolean isDigestCachingEnabled() - { - return dc.isDigestCachingEnabled(); - } - - - @Override - public void markDigestDirty() - { - dc.markDigestDirty(); - } - - - @Override - public Num getNum() - { - return this; - } - - - /** - * @return the number - */ - public abstract double value(); - - - public Num add(final double addend) - { - return new Num() { - - private final Num t = Num.this; - - - @Override - public double value() - { - return t.value() + addend; - } - }; - } - - - public Num add(final Num addend) - { - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return t.value() + addend.value(); - } - }; - } - - - public Num sub(final double subtrahend) - { - return add(-subtrahend); - } - - - public Num abs() - { - if (p_abs == null) p_abs = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.abs(t.value()); - } - }; - - return p_abs; - } - - - public Num sub(final Num subtrahend) - { - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return t.value() - subtrahend.value(); - } - }; - } - - - public Num div(final double factor) - { - return mul(1 / factor); - } - - - public Num div(final Num factor) - { - - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return t.value() / factor.value(); - } - }; - } - - - public Num mul(final double factor) - { - return new Num() { - - private final Num t = Num.this; - - - @Override - public double value() - { - return t.value() * factor; - } - }; - } - - - public Num mul(final Num factor) - { - - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return t.value() * factor.value(); - } - }; - } - - - public Num average(final double other) - { - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return (t.value() + other) / 2; - } - }; - } - - - public Num average(final Num other) - { - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return (t.value() + other.value()) / 2; - } - }; - } - - - public Num perc(final double percent) - { - return mul(percent / 100D); - } - - - public Num perc(final Num percent) - { - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return t.value() * (percent.value() / 100); - } - }; - } - - - public Num cos() - { - if (p_cos == null) p_cos = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.cos(t.value()); - } - }; - - return p_cos; - } - - - public Num acos() - { - if (p_acos == null) p_acos = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.acos(t.value()); - } - }; - - return p_acos; - } - - - public Num sin() - { - if (p_sin == null) p_sin = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.sin(t.value()); - } - }; - - return p_sin; - } - - - public Num asin() - { - if (p_asin == null) p_asin = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.asin(t.value()); - } - }; - - return p_asin; - } - - - public Num tan() - { - if (p_tan == null) p_tan = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.tan(t.value()); - } - }; - - return p_tan; - } - - - public Num atan() - { - if (p_atan == null) p_atan = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.atan(t.value()); - } - }; - - return p_atan; - } - - - public Num cbrt() - { - if (p_cbrt == null) p_cbrt = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.cbrt(t.value()); - } - }; - - return p_cbrt; - } - - - public Num sqrt() - { - if (p_sqrt == null) p_sqrt = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.sqrt(t.value()); - } - }; - - return p_sqrt; - } - - - public Num neg() - { - if (p_neg == null) p_neg = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return -1 * t.value(); - } - }; - - return p_neg; - } - - - public Num round() - { - if (p_round == null) p_round = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.round(t.value()); - } - }; - - return p_round; - } - - - public Num floor() - { - if (p_floor == null) p_floor = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.floor(t.value()); - } - }; - - return p_floor; - } - - - public Num ceil() - { - if (p_ceil == null) p_ceil = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.round(t.value()); - } - }; - - return p_ceil; - } - - - public Num pow(final double other) - { - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.pow(t.value(), other); - } - }; - } - - - public Num pow(final Num power) - { - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.pow(t.value(), power.value()); - } - }; - } - - - public Num cube() - { - if (p_cube == null) p_cube = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - final double v = t.value(); - return v * v * v; - } - }; - - return p_cube; - } - - - public Num square() - { - if (p_square == null) p_square = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - final double v = t.value(); - return v * v; - } - }; - - return p_square; - } - - - public Num half() - { - return mul(0.5); - } - - - public Num max(final double other) - { - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.max(t.value(), other); - } - }; - } - - - public Num max(final Num other) - { - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.max(t.value(), other.value()); - } - }; - } - - - public Num min(final Num other) - { - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.min(t.value(), other.value()); - } - }; - } - - - public Num min(final double other) - { - return new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.min(t.value(), other); - } - }; - } - - - public Num signum() - { - if (p_sgn == null) p_sgn = new Num() { - - final Num t = Num.this; - - - @Override - public double value() - { - return Math.signum(t.value()); - } - }; - - return p_sgn; - } - - - public boolean isNegative() - { - return value() < 0; - } - - - public boolean isPositive() - { - return value() > 0; - } - - - public boolean isZero() - { - return value() == 0; - } - - - @Override - public int hashCode() - { - final int prime = 31; - int result = 1; - long temp; - temp = Double.doubleToLongBits(value()); - result = prime * result + (int) (temp ^ (temp >>> 32)); - return result; - } - - - @Override - public boolean equals(Object obj) - { - if (this == obj) return true; - if (obj == null) return false; - if (!(obj instanceof Num)) return false; - final Num other = (Num) obj; - - return value() == other.value(); - } - - - @Override - public String toString() - { - return Calc.toString(value()); - } - - - /** - * @return vect with both coords of this size - */ - public Vect toVectXY() - { - return Vect.make(this); - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/NumConst.java b/src/mightypork/gamecore/util/math/constraints/num/NumConst.java deleted file mode 100644 index 5a0e8e4..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/NumConst.java +++ /dev/null @@ -1,270 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num; - - -import mightypork.gamecore.util.math.constraints.num.caching.NumDigest; - - -/** - * Constant number.
- * It's arranged so that operations with constant arguments yield constant - * results. - * - * @author Ondřej Hruška (MightyPork) - */ -public class NumConst extends Num { - - private final double value; - private NumDigest digest; - - - NumConst(Num copied) - { - this.value = copied.value(); - } - - - NumConst(double value) - { - this.value = value; - } - - - @Override - public double value() - { - return value; - } - - - /** - * @deprecated No good to copy a constant. - */ - @Override - @Deprecated - public NumConst freeze() - { - return this; - } - - - @Override - public NumDigest digest() - { - return (digest != null) ? digest : (digest = super.digest()); - } - - - @Override - public NumConst add(double addend) - { - return Num.make(value() + addend); - } - - - public NumConst add(NumConst addend) - { - return Num.make(value + addend.value); - } - - - @Override - public NumConst sub(double subtrahend) - { - return add(-subtrahend); - } - - - public NumConst sub(NumConst addend) - { - return Num.make(value - addend.value); - } - - - @Override - public NumConst mul(double factor) - { - return Num.make(value() * factor); - } - - - public NumConst mul(NumConst addend) - { - return Num.make(value * addend.value); - } - - - @Override - public NumConst div(double factor) - { - return mul(1 / factor); - } - - - public NumConst div(NumConst addend) - { - return Num.make(value / addend.value); - } - - - @Override - public NumConst perc(double percents) - { - return mul(percents / 100); - } - - - @Override - public NumConst neg() - { - return mul(-1); - } - - - @Override - public NumConst abs() - { - return Num.make(Math.abs(value())); - } - - - @Override - public NumConst max(double other) - { - return Num.make(Math.max(value(), other)); - } - - - @Override - public NumConst min(double other) - { - return Num.make(Math.min(value(), other)); - } - - - @Override - public NumConst pow(double power) - { - return Num.make(Math.pow(value(), power)); - } - - - @Override - public NumConst square() - { - final double v = value(); - return Num.make(v * v); - } - - - @Override - public NumConst cube() - { - final double v = value(); - return Num.make(v * v * v); - } - - - @Override - public NumConst sqrt() - { - return Num.make(Math.sqrt(value())); - } - - - @Override - public NumConst cbrt() - { - return Num.make(Math.cbrt(value())); - } - - - @Override - public NumConst sin() - { - return Num.make(Math.sin(value())); - } - - - @Override - public NumConst cos() - { - return Num.make(Math.cos(value())); - } - - - @Override - public NumConst tan() - { - return Num.make(Math.tan(value())); - } - - - @Override - public NumConst asin() - { - return Num.make(Math.asin(value())); - } - - - @Override - public NumConst acos() - { - return Num.make(Math.acos(value())); - } - - - @Override - public NumConst atan() - { - return Num.make(Math.atan(value())); - } - - - @Override - public NumConst signum() - { - return Num.make(Math.signum(value())); - } - - - @Override - public NumConst average(double other) - { - return Num.make((value() + other) / 2); - } - - - public NumConst average(NumConst other) - { - return super.average(other).freeze(); - } - - - @Override - public NumConst round() - { - return Num.make(Math.round(value())); - } - - - @Override - public NumConst ceil() - { - return Num.make(Math.ceil(value())); - } - - - @Override - public NumConst floor() - { - return Num.make(Math.floor(value())); - } - - - @Override - public NumConst half() - { - return mul(0.5); - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/NumSum.java b/src/mightypork/gamecore/util/math/constraints/num/NumSum.java deleted file mode 100644 index b22d1a2..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/NumSum.java +++ /dev/null @@ -1,49 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num; - - -import java.util.ArrayList; -import java.util.List; - - -/** - * Expandable sum of multiple numbers - * - * @author Ondřej Hruška (MightyPork) - */ -public class NumSum extends Num { - - private final List summands = new ArrayList<>(); - - - @Override - public double value() - { - double v = 0; - for (final Num n : summands) { - if (n != null) v += n.value(); - } - return v; - } - - - /** - * Add a number to the sum - * - * @param summand added number - */ - public void addSummand(Num summand) - { - summands.add(summand); - } - - - /** - * Add a number to the sum - * - * @param summand added number - */ - public void addSummand(double summand) - { - summands.add(Num.make(summand)); - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/caching/AbstractNumCache.java b/src/mightypork/gamecore/util/math/constraints/num/caching/AbstractNumCache.java deleted file mode 100644 index ea1762c..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/caching/AbstractNumCache.java +++ /dev/null @@ -1,84 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num.caching; - - -import mightypork.gamecore.util.math.constraints.ConstraintCache; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.mutable.NumVar; -import mightypork.gamecore.util.math.constraints.num.proxy.NumAdapter; - - -/** - *

- * A Num cache. - *

- *

- * Values are held in a caching VectVar, and digest caching is enabled by - * default. - *

- * - * @author Ondřej Hruška (MightyPork) - */ -public abstract class AbstractNumCache extends NumAdapter implements ConstraintCache { - - private final NumVar cache = Num.makeVar(); - private boolean inited = false; - private boolean cachingEnabled = true; - - - public AbstractNumCache() - { - enableDigestCaching(true); // it changes only on poll - } - - - @Override - protected final Num getSource() - { - if (!inited) markDigestDirty(); - - return (cachingEnabled ? cache : getCacheSource()); - } - - - @Override - public final void poll() - { - inited = true; - - // poll source - final Num source = getCacheSource(); - source.markDigestDirty(); // poll cached - - // store source value - cache.setTo(source); - - // mark my digest dirty - markDigestDirty(); - - onConstraintChanged(); - } - - - @Override - public abstract void onConstraintChanged(); - - - @Override - public abstract Num getCacheSource(); - - - @Override - public final void enableCaching(boolean yes) - { - cachingEnabled = yes; - enableDigestCaching(yes); - } - - - @Override - public final boolean isCachingEnabled() - { - return cachingEnabled; - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/caching/NumCache.java b/src/mightypork/gamecore/util/math/constraints/num/caching/NumCache.java deleted file mode 100644 index 8acd426..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/caching/NumCache.java +++ /dev/null @@ -1,37 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num.caching; - - -import mightypork.gamecore.util.annot.DefaultImpl; -import mightypork.gamecore.util.math.constraints.num.Num; - - -/** - * Num cache implementation - * - * @author Ondřej Hruška (MightyPork) - */ -public class NumCache extends AbstractNumCache { - - private final Num source; - - - public NumCache(Num source) - { - this.source = source; - } - - - @Override - public final Num getCacheSource() - { - return source; - } - - - @Override - @DefaultImpl - public void onConstraintChanged() - { - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/caching/NumDigest.java b/src/mightypork/gamecore/util/math/constraints/num/caching/NumDigest.java deleted file mode 100644 index 6bbc5fc..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/caching/NumDigest.java +++ /dev/null @@ -1,23 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num.caching; - - -import mightypork.gamecore.util.math.constraints.num.Num; - - -public class NumDigest { - - public final double value; - - - public NumDigest(Num num) - { - this.value = num.value(); - } - - - @Override - public String toString() - { - return String.format("Num(%.1f)", value); - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/mutable/NumMutable.java b/src/mightypork/gamecore/util/math/constraints/num/mutable/NumMutable.java deleted file mode 100644 index e49ab12..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/mutable/NumMutable.java +++ /dev/null @@ -1,41 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num.mutable; - - -import mightypork.gamecore.util.math.constraints.num.Num; - - -/** - * Mutable numeric variable - * - * @author Ondřej Hruška (MightyPork) - */ -public abstract class NumMutable extends Num { - - /** - * Assign a value - * - * @param value new value - */ - public abstract void setTo(double value); - - - /** - * Assign a value - * - * @param value new value - */ - public void setTo(Num value) - { - setTo(value.value()); - } - - - /** - * Set to zero - */ - public void reset() - { - setTo(0); - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/mutable/NumVar.java b/src/mightypork/gamecore/util/math/constraints/num/mutable/NumVar.java deleted file mode 100644 index eb2b7c8..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/mutable/NumVar.java +++ /dev/null @@ -1,42 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num.mutable; - - -import mightypork.gamecore.util.math.constraints.num.Num; - - -/** - * Mutable numeric variable. - * - * @author Ondřej Hruška (MightyPork) - */ -public class NumVar extends NumMutable { - - private double value; - - - public NumVar(Num value) - { - this(value.value()); - } - - - public NumVar(double value) - { - this.value = value; - } - - - @Override - public double value() - { - return value; - } - - - @Override - public void setTo(double value) - { - this.value = value; - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/proxy/NumAdapter.java b/src/mightypork/gamecore/util/math/constraints/num/proxy/NumAdapter.java deleted file mode 100644 index 7a6c465..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/proxy/NumAdapter.java +++ /dev/null @@ -1,18 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num.proxy; - - -import mightypork.gamecore.util.math.constraints.num.Num; - - -public abstract class NumAdapter extends Num { - - protected abstract Num getSource(); - - - @Override - public double value() - { - return getSource().value(); - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/proxy/NumBound.java b/src/mightypork/gamecore/util/math/constraints/num/proxy/NumBound.java deleted file mode 100644 index a88b73b..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/proxy/NumBound.java +++ /dev/null @@ -1,19 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num.proxy; - - -import mightypork.gamecore.util.math.constraints.num.Num; - - -/** - * Numeric constraint - * - * @author Ondřej Hruška (MightyPork) - */ -public interface NumBound { - - /** - * @return current value - */ - Num getNum(); - -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/proxy/NumBoundAdapter.java b/src/mightypork/gamecore/util/math/constraints/num/proxy/NumBoundAdapter.java deleted file mode 100644 index 99d64cb..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/proxy/NumBoundAdapter.java +++ /dev/null @@ -1,36 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num.proxy; - - -import mightypork.gamecore.util.math.constraints.num.Num; - - -public class NumBoundAdapter extends NumAdapter implements PluggableNumBound { - - private NumBound backing = null; - - - public NumBoundAdapter() - { - } - - - public NumBoundAdapter(NumBound bound) - { - backing = bound; - } - - - @Override - public void setNum(NumBound num) - { - this.backing = num; - } - - - @Override - protected Num getSource() - { - return backing.getNum(); - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/proxy/NumProxy.java b/src/mightypork/gamecore/util/math/constraints/num/proxy/NumProxy.java deleted file mode 100644 index 4eaebe6..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/proxy/NumProxy.java +++ /dev/null @@ -1,24 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num.proxy; - - -import mightypork.gamecore.util.math.constraints.num.Num; - - -public class NumProxy extends NumAdapter { - - private final Num source; - - - public NumProxy(Num source) - { - this.source = source; - } - - - @Override - protected Num getSource() - { - return source; - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/num/proxy/PluggableNumBound.java b/src/mightypork/gamecore/util/math/constraints/num/proxy/PluggableNumBound.java deleted file mode 100644 index 48dbbc0..0000000 --- a/src/mightypork/gamecore/util/math/constraints/num/proxy/PluggableNumBound.java +++ /dev/null @@ -1,16 +0,0 @@ -package mightypork.gamecore.util.math.constraints.num.proxy; - - -/** - * Pluggable numeric constraint - * - * @author Ondřej Hruška (MightyPork) - */ -public interface PluggableNumBound extends NumBound { - - /** - * @param num bound to set - */ - abstract void setNum(NumBound num); - -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/Rect.java b/src/mightypork/gamecore/util/math/constraints/rect/Rect.java deleted file mode 100644 index e9e9d21..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/Rect.java +++ /dev/null @@ -1,1064 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect; - - -import mightypork.gamecore.util.annot.FactoryMethod; -import mightypork.gamecore.util.math.constraints.DigestCache; -import mightypork.gamecore.util.math.constraints.Digestable; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.NumConst; -import mightypork.gamecore.util.math.constraints.rect.builders.TiledRect; -import mightypork.gamecore.util.math.constraints.rect.caching.RectCache; -import mightypork.gamecore.util.math.constraints.rect.caching.RectDigest; -import mightypork.gamecore.util.math.constraints.rect.mutable.RectVar; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBoundAdapter; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectVectAdapter; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.VectConst; - - -/** - * Common methods for all kinds of Rects - * - * @author Ondřej Hruška (MightyPork) - */ -public abstract class Rect implements RectBound, Digestable { - - public static final RectConst ZERO = new RectConst(0, 0, 0, 0); - public static final RectConst ONE = new RectConst(0, 0, 1, 1); - - - @FactoryMethod - public static Rect make(Num width, Num height) - { - final Vect origin = Vect.ZERO; - final Vect size = Vect.make(width, height); - - return Rect.make(origin, size); - } - - - public static Rect make(Vect size) - { - return Rect.make(size.xn(), size.yn()); - } - - - @FactoryMethod - public static Rect make(RectBound bound) - { - return new RectBoundAdapter(bound); - } - - - @FactoryMethod - public static Rect make(Num x, Num y, Num width, Num height) - { - final Vect origin = Vect.make(x, y); - final Vect size = Vect.make(width, height); - - return Rect.make(origin, size); - } - - - @FactoryMethod - public static Rect make(Vect origin, Num width, Num height) - { - return make(origin, Vect.make(width, height)); - } - - - @FactoryMethod - public static Rect make(final Vect origin, final Vect size) - { - return new RectVectAdapter(origin, size); - } - - - @FactoryMethod - public static RectConst make(NumConst width, NumConst height) - { - final VectConst origin = Vect.ZERO; - final VectConst size = Vect.make(width, height); - - return Rect.make(origin, size); - } - - - public static Rect make(Num side) - { - return make(side, side); - } - - - public static RectConst make(NumConst side) - { - return make(side, side); - } - - - public static RectConst make(double side) - { - return make(side, side); - } - - - @FactoryMethod - public static RectConst make(NumConst x, NumConst y, NumConst width, NumConst height) - { - final VectConst origin = Vect.make(x, y); - final VectConst size = Vect.make(width, height); - - return Rect.make(origin, size); - } - - - @FactoryMethod - public static RectConst make(final VectConst origin, final VectConst size) - { - return new RectConst(origin, size); - } - - - @FactoryMethod - public static RectConst make(double width, double height) - { - return Rect.make(0, 0, width, height); - } - - - @FactoryMethod - public static RectConst make(double x, double y, double width, double height) - { - return new RectConst(x, y, width, height); - } - - - @FactoryMethod - public static RectVar makeVar(double x, double y) - { - return Rect.makeVar(0, 0, x, y); - } - - - @FactoryMethod - public static RectVar makeVar(Rect copied) - { - return Rect.makeVar(copied.origin(), copied.size()); - } - - - @FactoryMethod - public static RectVar makeVar(Vect origin, Vect size) - { - return Rect.makeVar(origin.x(), origin.y(), size.x(), size.y()); - } - - - @FactoryMethod - public static RectVar makeVar(double x, double y, double width, double height) - { - return new RectVar(x, y, width, height); - } - - - @FactoryMethod - public static RectVar makeVar() - { - return Rect.makeVar(Rect.ZERO); - } - - private Vect p_bl; - private Vect p_bc; - private Vect p_br; - // p_t == origin - private Vect p_tc; - private Vect p_tr; - - private Vect p_cl; - private Vect p_cc; - private Vect p_cr; - - private Num p_x; - private Num p_y; - private Num p_w; - private Num p_h; - private Num p_l; - private Num p_r; - private Num p_t; - private Num p_b; - private Rect p_edge_l; - private Rect p_edge_r; - private Rect p_edge_t; - private Rect p_edge_b; - private Rect p_axis_v; - private Rect p_axis_h; - - private final DigestCache dc = new DigestCache() { - - @Override - protected RectDigest createDigest() - { - return new RectDigest(Rect.this); - } - }; - - - /** - * Get a copy of current value - * - * @return copy - */ - public RectConst freeze() - { - // must NOT call RectVal.make, it'd cause infinite recursion. - return new RectConst(this); - } - - - /** - * Wrap this constraint into a caching adapter. Value will stay fixed (ie. - * no re-calculations) until cache receives a poll() call. - * - * @return the caching adapter - */ - public RectCache cached() - { - return new RectCache(this); - } - - - @Override - public RectDigest digest() - { - return dc.digest(); - } - - - @Override - public void enableDigestCaching(boolean yes) - { - dc.enableDigestCaching(yes); - } - - - @Override - public boolean isDigestCachingEnabled() - { - return dc.isDigestCachingEnabled(); - } - - - @Override - public void markDigestDirty() - { - dc.markDigestDirty(); - } - - - @Override - public Rect getRect() - { - return this; - } - - - @Override - public String toString() - { - return String.format("Rect { at %s , size %s }", origin(), size()); - } - - - /** - * Origin (top left). - * - * @return origin (top left) - */ - public abstract Vect origin(); - - - /** - * Size (spanning right down from Origin). - * - * @return size vector - */ - public abstract Vect size(); - - - /** - * Add vector to origin - * - * @param move offset vector - * @return result - */ - public Rect move(final Vect move) - { - return new Rect() { - - private final Rect t = Rect.this; - - - @Override - public Vect size() - { - return t.size(); - } - - - @Override - public Vect origin() - { - return t.origin().add(move); - } - - }; - } - - - public Rect moveX(Num x) - { - return move(x, Num.ZERO); - } - - - public Rect moveY(Num y) - { - return move(Num.ZERO, y); - } - - - public Rect moveX(double x) - { - return move(x, 0); - } - - - public Rect moveY(double y) - { - return move(0, y); - } - - - /** - * Add X and Y to origin - * - * @param x x to add - * @param y y to add - * @return result - */ - public Rect move(final double x, final double y) - { - return new Rect() { - - private final Rect t = Rect.this; - - - @Override - public Vect size() - { - return t.size(); - } - - - @Override - public Vect origin() - { - return t.origin().add(x, y); - } - - }; - } - - - public Rect move(final Num x, final Num y) - { - return new Rect() { - - private final Rect t = Rect.this; - - - @Override - public Vect size() - { - return t.size(); - } - - - @Override - public Vect origin() - { - return t.origin().add(x, y); - } - - }; - } - - - /** - * Shrink to sides - * - * @param shrink shrink size (horizontal and vertical) - * @return result - */ - - public Rect shrink(Vect shrink) - { - return shrink(shrink.x(), shrink.y()); - } - - - /** - * Shrink to all sides - * - * @param shrink shrink - * @return result - */ - public final Rect shrink(double shrink) - { - return shrink(shrink, shrink, shrink, shrink); - } - - - /** - * Shrink to all sides - * - * @param shrink shrink - * @return result - */ - public final Rect shrink(Num shrink) - { - return shrink(shrink, shrink, shrink, shrink); - } - - - /** - * Shrink to sides at sides - * - * @param x horizontal shrink - * @param y vertical shrink - * @return result - */ - public Rect shrink(double x, double y) - { - return shrink(x, x, y, y); - } - - - public Rect shrink(Num x, Num y) - { - return shrink(x, x, y, y); - } - - - /** - * Shrink the rect - * - * @param left shrink - * @param right shrink - * @param top shrink - * @param bottom shrink - * @return result - */ - public Rect shrink(final double left, final double right, final double top, final double bottom) - { - return grow(-left, -right, -top, -bottom); - } - - - public Rect shrinkLeft(final double shrink) - { - return growLeft(-shrink); - } - - - public Rect shrinkRight(final double shrink) - { - return growRight(-shrink); - } - - - public Rect shrinkTop(final double shrink) - { - return growUp(-shrink); - } - - - public Rect shrinkBottom(final double shrink) - { - return growDown(-shrink); - } - - - public Rect growLeft(final double shrink) - { - return grow(shrink, 0, 0, 0); - } - - - public Rect growRight(final double shrink) - { - return grow(0, shrink, 0, 0); - } - - - public Rect growUp(final double shrink) - { - return grow(0, 0, shrink, 0); - } - - - public Rect growDown(final double shrink) - { - return grow(0, 0, 0, shrink); - } - - - public Rect shrinkLeft(final Num shrink) - { - return shrink(shrink, Num.ZERO, Num.ZERO, Num.ZERO); - } - - - public Rect shrinkRight(final Num shrink) - { - return shrink(Num.ZERO, shrink, Num.ZERO, Num.ZERO); - } - - - public Rect shrinkTop(final Num shrink) - { - return shrink(Num.ZERO, Num.ZERO, shrink, Num.ZERO); - } - - - public Rect shrinkBottom(final Num shrink) - { - return shrink(Num.ZERO, Num.ZERO, Num.ZERO, shrink); - } - - - public Rect growLeft(final Num shrink) - { - return grow(shrink, Num.ZERO, Num.ZERO, Num.ZERO); - } - - - public Rect growRight(final Num shrink) - { - return grow(Num.ZERO, shrink, Num.ZERO, Num.ZERO); - } - - - public Rect growUp(final Num shrink) - { - return grow(Num.ZERO, Num.ZERO, shrink, Num.ZERO); - } - - - public Rect growDown(final Num shrink) - { - return grow(Num.ZERO, Num.ZERO, Num.ZERO, shrink); - } - - - /** - * Grow to sides - * - * @param grow grow size (added to each side) - * @return grown copy - */ - public final Rect grow(Vect grow) - { - return grow(grow.x(), grow.y()); - } - - - /** - * Grow to all sides - * - * @param grow grow - * @return result - */ - public final Rect grow(double grow) - { - return grow(grow, grow, grow, grow); - } - - - /** - * Grow to all sides - * - * @param grow grow - * @return result - */ - public final Rect grow(Num grow) - { - return grow(grow, grow, grow, grow); - } - - - /** - * Grow to sides - * - * @param x horizontal grow - * @param y vertical grow - * @return result - */ - public final Rect grow(double x, double y) - { - return grow(x, x, y, y); - } - - - public Rect grow(Num x, Num y) - { - return grow(x, x, y, y); - } - - - /** - * Grow the rect - * - * @param left growth - * @param right growth - * @param top growth - * @param bottom growth - * @return result - */ - public Rect grow(final double left, final double right, final double top, final double bottom) - { - return new Rect() { - - private final Rect t = Rect.this; - - - @Override - public Vect size() - { - return t.size().add(left + right, top + bottom); - } - - - @Override - public Vect origin() - { - return t.origin().sub(left, top); - } - - }; - } - - - public Rect shrink(final Num left, final Num right, final Num top, final Num bottom) - { - return new Rect() { - - private final Rect t = Rect.this; - - - @Override - public Vect size() - { - return t.size().sub(left.add(right), top.add(bottom)); - } - - - @Override - public Vect origin() - { - return t.origin().add(left, top); - } - - }; - } - - - public Rect grow(final Num left, final Num right, final Num top, final Num bottom) - { - - return new Rect() { - - private final Rect t = Rect.this; - - - @Override - public Vect size() - { - return t.size().add(left.add(right), top.add(bottom)); - } - - - @Override - public Vect origin() - { - return t.origin().sub(left, top); - } - - }; - } - - - /** - * Round coords - * - * @return result - */ - public Rect round() - { - - return new Rect() { - - private final Rect t = Rect.this; - - - @Override - public Vect size() - { - return t.size().round(); - } - - - @Override - public Vect origin() - { - return t.origin().round(); - } - - }; - } - - - /** - * Round coords down - * - * @return result - */ - public Rect floor() - { - - return new Rect() { - - private final Rect t = Rect.this; - - - @Override - public Vect size() - { - return t.size().floor(); - } - - - @Override - public Vect origin() - { - return t.origin().floor(); - } - - }; - } - - - /** - * Round coords up - * - * @return result - */ - public Rect ceil() - { - - return new Rect() { - - private final Rect t = Rect.this; - - - @Override - public Vect size() - { - return t.size().ceil(); - } - - - @Override - public Vect origin() - { - return t.origin().ceil(); - } - - }; - } - - - public Num x() - { - return p_x != null ? p_x : (p_x = origin().xn()); - } - - - public Num y() - { - return p_y != null ? p_y : (p_y = origin().yn()); - } - - - public Num width() - { - return p_w != null ? p_w : (p_w = size().xn()); - } - - - public Num height() - { - return p_h != null ? p_h : (p_h = size().yn()); - } - - - public Num left() - { - return p_l != null ? p_l : (p_l = origin().xn()); - } - - - public Num right() - { - return p_r != null ? p_r : (p_r = origin().xn().add(size().xn())); - } - - - public Num top() - { - return p_t != null ? p_t : (p_t = origin().yn()); - } - - - public Num bottom() - { - return p_b != null ? p_b : (p_b = origin().yn().add(size().yn())); - } - - - public Vect topLeft() - { - return origin(); - } - - - public Vect topCenter() - { - return p_tc != null ? p_tc : (p_tc = origin().add(size().xn().half(), Num.ZERO)); - } - - - public Vect topRight() - { - return p_tr != null ? p_tr : (p_tr = origin().add(size().xn(), Num.ZERO)); - } - - - public Vect centerLeft() - { - return p_cl != null ? p_cl : (p_cl = origin().add(Num.ZERO, size().yn().half())); - } - - - public Vect center() - { - return p_cc != null ? p_cc : (p_cc = origin().add(size().half())); - } - - - public Vect centerRight() - { - return p_cr != null ? p_cr : (p_cr = origin().add(size().xn(), size().yn().half())); - } - - - public Vect bottomLeft() - { - return p_bl != null ? p_bl : (p_bl = origin().add(Num.ZERO, size().yn())); - } - - - public Vect bottomCenter() - { - return p_bc != null ? p_bc : (p_bc = origin().add(size().xn().half(), size().yn())); - } - - - public Vect bottomRight() - { - return p_br != null ? p_br : (p_br = origin().add(size().xn(), size().yn())); - } - - - public Rect leftEdge() - { - return p_edge_l != null ? p_edge_l : (p_edge_l = topLeft().expand(Num.ZERO, Num.ZERO, Num.ZERO, height())); - } - - - public Rect rightEdge() - { - return p_edge_r != null ? p_edge_r : (p_edge_r = topRight().expand(Num.ZERO, Num.ZERO, Num.ZERO, height())); - } - - - public Rect topEdge() - { - return p_edge_t != null ? p_edge_t : (p_edge_t = topLeft().expand(Num.ZERO, width(), Num.ZERO, Num.ZERO)); - } - - - public Rect bottomEdge() - { - return p_edge_b != null ? p_edge_b : (p_edge_b = bottomLeft().expand(Num.ZERO, width(), Num.ZERO, Num.ZERO)); - } - - - public Rect axisV() - { - return p_axis_v != null ? p_axis_v : (p_axis_v = topCenter().expand(Num.ZERO, Num.ZERO, Num.ZERO, height())); - } - - - public Rect axisH() - { - return p_axis_h != null ? p_axis_h : (p_axis_h = centerLeft().expand(Num.ZERO, width(), Num.ZERO, Num.ZERO)); - } - - - /** - * Center to given point - * - * @param point new center - * @return centered - */ - public Rect centerTo(final Vect point) - { - return new Rect() { - - Rect t = Rect.this; - - - @Override - public Vect size() - { - return t.size(); - } - - - @Override - public Vect origin() - { - return point.sub(t.size().half()); - } - }; - } - - - /** - * Check if point is inside this rectangle - * - * @param point point to test - * @return is inside - */ - public boolean contains(Vect point) - { - final double x = point.x(); - final double y = point.y(); - - final double x1 = origin().x(); - final double y1 = origin().y(); - final double x2 = x1 + size().x(); - final double y2 = y1 + size().y(); - - return x >= x1 && y >= y1 && x <= x2 && y <= y2; - } - - - /** - * Center to given rect's center - * - * @param parent rect to center to - * @return centered - */ - public Rect centerTo(Rect parent) - { - return centerTo(parent.center()); - } - - - /** - * Get TiledRect with given number of evenly spaced tiles. Tile indexes are - * one-based by default. - * - * @param horizontal horizontal tile count - * @param vertical vertical tile count - * @return tiled rect - */ - public TiledRect tiles(int horizontal, int vertical) - { - return new TiledRect(this, horizontal, vertical); - } - - - /** - * Get TiledRect with N columns and 1 row. Column indexes are one-based by - * default. - * - * @param columns number of columns - * @return tiled rect - */ - public TiledRect columns(int columns) - { - return new TiledRect(this, columns, 1); - } - - - /** - * Get TiledRect with N rows and 1 column. Row indexes are one-based by - * default. - * - * @param rows number of columns - * @return tiled rect - */ - public TiledRect rows(int rows) - { - return new TiledRect(this, 1, rows); - } - - - /** - * Check for intersection - * - * @param other other rect - * @return true if they intersect - * @see org.lwjgl.util.Rectangle - */ - public boolean intersectsWith(Rect other) - { - double tw = this.size().x(); - double th = this.size().y(); - double rw = other.size().x(); - double rh = other.size().y(); - - if (rw <= 0 || rh <= 0 || tw <= 0 || th <= 0) { - return false; - } - - final double tx = this.origin().x(); - final double ty = this.origin().y(); - final double rx = other.origin().x(); - final double ry = other.origin().y(); - - rw += rx; - rh += ry; - tw += tx; - th += ty; - - // overflow || intersect - return ((rw < rx || rw > tx) && (rh < ry || rh > ty) && (tw < tx || tw > rx) && (th < ty || th > ry)); - } - - -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/RectConst.java b/src/mightypork/gamecore/util/math/constraints/rect/RectConst.java deleted file mode 100644 index 9b7513b..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/RectConst.java +++ /dev/null @@ -1,486 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect; - - -import mightypork.gamecore.util.math.constraints.num.NumConst; -import mightypork.gamecore.util.math.constraints.rect.caching.RectDigest; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.VectConst; - - -/** - * Rectangle with constant bounds, that can never change.
- * It's arranged so that operations with constant arguments yield constant - * results. - * - * @author Ondřej Hruška (MightyPork) - */ -public class RectConst extends Rect { - - private final VectConst pos; - private final VectConst size; - - // cached with lazy loading - private NumConst v_b; - private NumConst v_r; - private VectConst v_br; - private VectConst v_tc; - private VectConst v_tr; - private VectConst v_cl; - private VectConst v_c; - private VectConst v_cr; - private VectConst v_bl; - private VectConst v_bc; - private RectConst v_round; - private RectConst v_edge_l; - private RectConst v_edge_r; - private RectConst v_edge_t; - private RectConst v_edge_b; - private RectDigest digest; - private RectConst v_floor; - private RectConst v_ceil; - private RectConst v_axis_v; - private RectConst v_axis_h; - - - /** - * Create at given origin, with given size. - * - * @param x - * @param y - * @param width - * @param height - */ - RectConst(double x, double y, double width, double height) - { - this.pos = Vect.make(x, y); - this.size = Vect.make(width, height); - } - - - /** - * Create at given origin, with given size. - * - * @param origin - * @param size - */ - RectConst(Vect origin, Vect size) - { - this.pos = origin.freeze(); - this.size = size.freeze(); - } - - - /** - * Create at given origin, with given size. - * - * @param another other coord - */ - RectConst(Rect another) - { - this.pos = another.origin().freeze(); - this.size = another.size().freeze(); - } - - - /** - * @deprecated it's useless to copy a constant - */ - @Override - @Deprecated - public RectConst freeze() - { - return this; // already constant - } - - - @Override - public RectDigest digest() - { - return (digest != null) ? digest : (digest = super.digest()); - } - - - @Override - public VectConst origin() - { - return pos; - } - - - @Override - public VectConst size() - { - return size; - } - - - @Override - public RectConst move(Vect move) - { - return move(move.x(), move.y()); - } - - - @Override - public RectConst move(double x, double y) - { - return Rect.make(pos.add(x, y), size); - } - - - public RectConst move(NumConst x, NumConst y) - { - return super.move(x, y).freeze(); - } - - - @Override - public RectConst shrink(double left, double right, double top, double bottom) - { - return super.shrink(left, right, top, bottom).freeze(); - - } - - - @Override - public RectConst grow(double left, double right, double top, double bottom) - { - return super.grow(left, right, top, bottom).freeze(); - } - - - @Override - public RectConst round() - { - return (v_round != null) ? v_round : (v_round = Rect.make(pos.round(), size.round())); - } - - - @Override - public RectConst floor() - { - return (v_floor != null) ? v_floor : (v_floor = Rect.make(pos.floor(), size.floor())); - } - - - @Override - public RectConst ceil() - { - return (v_ceil != null) ? v_ceil : (v_ceil = Rect.make(pos.ceil(), size.ceil())); - } - - - @Override - public NumConst x() - { - return pos.xn(); - } - - - @Override - public NumConst y() - { - return pos.yn(); - } - - - @Override - public NumConst width() - { - return size.xn(); - } - - - @Override - public NumConst height() - { - return size.yn(); - } - - - @Override - public NumConst left() - { - return pos.xn(); - } - - - @Override - public NumConst right() - { - return (v_r != null) ? v_r : (v_r = super.right().freeze()); - } - - - @Override - public NumConst top() - { - return pos.yn(); - } - - - @Override - public NumConst bottom() - { - return (v_b != null) ? v_b : (v_b = super.bottom().freeze()); - } - - - @Override - public VectConst topLeft() - { - return pos; - } - - - @Override - public VectConst topCenter() - { - return (v_tc != null) ? v_tc : (v_tc = super.topCenter().freeze()); - } - - - @Override - public VectConst topRight() - { - return (v_tr != null) ? v_tr : (v_tr = super.topRight().freeze()); - } - - - @Override - public VectConst centerLeft() - { - return (v_cl != null) ? v_cl : (v_cl = super.centerLeft().freeze()); - } - - - @Override - public VectConst center() - { - return (v_c != null) ? v_c : (v_c = super.center().freeze()); - } - - - @Override - public VectConst centerRight() - { - return (v_cr != null) ? v_cr : (v_cr = super.centerRight().freeze()); - } - - - @Override - public VectConst bottomLeft() - { - return (v_bl != null) ? v_bl : (v_bl = super.bottomLeft().freeze()); - } - - - @Override - public VectConst bottomCenter() - { - return (v_bc != null) ? v_bc : (v_bc = super.bottomCenter().freeze()); - } - - - @Override - public VectConst bottomRight() - { - return (v_br != null) ? v_br : (v_br = super.bottomRight().freeze()); - } - - - @Override - public RectConst leftEdge() - { - return (v_edge_l != null) ? v_edge_l : (v_edge_l = super.leftEdge().freeze()); - } - - - @Override - public RectConst rightEdge() - { - return (v_edge_r != null) ? v_edge_r : (v_edge_r = super.rightEdge().freeze()); - } - - - @Override - public RectConst topEdge() - { - return (v_edge_t != null) ? v_edge_t : (v_edge_t = super.topEdge().freeze()); - } - - - @Override - public RectConst bottomEdge() - { - return (v_edge_b != null) ? v_edge_b : (v_edge_b = super.bottomEdge().freeze()); - } - - - @Override - public Rect axisV() - { - return (v_axis_v != null) ? v_axis_v : (v_axis_v = super.axisV().freeze()); - } - - - @Override - public Rect axisH() - { - return (v_axis_h != null) ? v_axis_h : (v_axis_h = super.axisH().freeze()); - } - - - @Override - public Rect shrink(Vect shrink) - { - return super.shrink(shrink); - } - - - @Override - public RectConst shrink(double x, double y) - { - return super.shrink(x, y).freeze(); - } - - - public RectConst shrink(NumConst left, NumConst right, NumConst top, NumConst bottom) - { - return super.shrink(left, right, top, bottom).freeze(); - } - - - public RectConst grow(NumConst left, NumConst right, NumConst top, NumConst bottom) - { - return super.grow(left, right, top, bottom).freeze(); - } - - - @Override - public RectConst shrinkLeft(double shrink) - { - return super.shrinkLeft(shrink).freeze(); - } - - - @Override - public RectConst shrinkRight(double shrink) - { - return super.shrinkRight(shrink).freeze(); - } - - - @Override - public RectConst shrinkTop(double shrink) - { - return super.shrinkTop(shrink).freeze(); - } - - - @Override - public RectConst shrinkBottom(double shrink) - { - return super.shrinkBottom(shrink).freeze(); - } - - - @Override - public RectConst growLeft(double shrink) - { - return super.growLeft(shrink).freeze(); - } - - - @Override - public RectConst growRight(double shrink) - { - return super.growRight(shrink).freeze(); - } - - - @Override - public RectConst growUp(double shrink) - { - return super.growUp(shrink).freeze(); - } - - - @Override - public RectConst growDown(double shrink) - { - return super.growDown(shrink).freeze(); - } - - - public RectConst shrinkLeft(NumConst shrink) - { - return super.shrinkLeft(shrink).freeze(); - } - - - public RectConst shrinkRight(NumConst shrink) - { - return super.shrinkRight(shrink).freeze(); - } - - - public RectConst shrinkTop(NumConst shrink) - { - return super.shrinkTop(shrink).freeze(); - } - - - public RectConst shrinkBottom(NumConst shrink) - { - return super.shrinkBottom(shrink).freeze(); - } - - - public RectConst growLeft(NumConst shrink) - { - return super.growLeft(shrink).freeze(); - } - - - public RectConst growRight(NumConst shrink) - { - return super.growRight(shrink).freeze(); - } - - - public RectConst growUp(NumConst shrink) - { - return super.growUp(shrink).freeze(); - } - - - public RectConst growBottom(NumConst shrink) - { - return super.growDown(shrink).freeze(); - } - - - public RectConst centerTo(VectConst point) - { - return super.centerTo(point).freeze(); - } - - - public RectConst centerTo(RectConst parent) - { - return super.centerTo(parent).freeze(); - } - - - public RectConst shrink(NumConst x, NumConst y) - { - return super.shrink(x, y).freeze(); - } - - - public RectConst grow(NumConst x, NumConst y) - { - return super.grow(x, y).freeze(); - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/builders/TiledRect.java b/src/mightypork/gamecore/util/math/constraints/rect/builders/TiledRect.java deleted file mode 100644 index 3310945..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/builders/TiledRect.java +++ /dev/null @@ -1,130 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.builders; - - -import mightypork.gamecore.logging.Log; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectProxy; -import mightypork.gamecore.util.math.constraints.vect.Vect; - - -/** - * Utility for cutting rect into evenly sized cells. - * - * @author Ondřej Hruška (MightyPork) - */ -public class TiledRect extends RectProxy { - - final private int tilesY; - final private int tilesX; - final private Num perRow; - final private Num perCol; - - /** Left top tile */ - private Rect aTile; - - - public TiledRect(Rect source, int horizontal, int vertical) - { - super(source); - this.tilesX = horizontal; - this.tilesY = vertical; - - this.perRow = height().div(vertical); - this.perCol = width().div(horizontal); - - this.aTile = Rect.make(origin(), perCol, perRow); - } - - - /** - * Set tile overlap. Applies only to tile, not span. - * - * @param overlap how far to overlap to neighbouring tiles on all sides - */ - public void setOverlap(double overlap) - { - aTile = aTile.grow(overlap); - } - - - /** - * Get a tile. - * - * @param x x position - * @param y y position - * @return tile - * @throws IndexOutOfBoundsException when invalid index is specified. - */ - public Rect tile(int x, int y) - { - if (x >= tilesX || x < 0) { - throw new IndexOutOfBoundsException("X coordinate out fo range: " + x); - } - - if (y >= tilesY || y < 0) { - throw new IndexOutOfBoundsException("Y coordinate out of range: " + y); - } - - return aTile.move(perCol.mul(x), perRow.mul(y)); - } - - - /** - * Get a span (tile spanning across multiple cells) - * - * @param x x start position - * @param y y start position - * @param size_x horizontal size (columns) - * @param size_y vertical size (rows) - * @return tile the tile - * @throws IndexOutOfBoundsException when invalid index is specified. - */ - public Rect span(int x, int y, int size_x, int size_y) - { - final int x_to = x + size_x - 1; - final int y_to = y + size_y - 1; - - if (size_x <= 0 || size_y <= 0) { - Log.w("Size must be > 0.", new IllegalAccessException()); - } - - if (x >= tilesX || x < 0 || x_to >= tilesX || x_to < 0) { - Log.w("X coordinate(s) out of range.", new IllegalAccessException()); - } - - if (y >= tilesY || y < 0 || y_to >= tilesY || y_to < 0) { - Log.w("Y coordinate(s) out of range.", new IllegalAccessException()); - } - - final Vect orig = origin().add(perCol.mul(x), perRow.mul(y)); - - return Rect.make(orig, perCol.mul(size_x), perRow.mul(size_y)); - } - - - /** - * Get n-th column - * - * @param n column index - * @return the column tile - * @throws IndexOutOfBoundsException when invalid index is specified. - */ - public Rect column(int n) - { - return tile(n, 0); - } - - - /** - * Get n-th row - * - * @param n row index - * @return the row rect - * @throws IndexOutOfBoundsException when invalid index is specified. - */ - public Rect row(int n) - { - return tile(0, n); - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/caching/AbstractRectCache.java b/src/mightypork/gamecore/util/math/constraints/rect/caching/AbstractRectCache.java deleted file mode 100644 index 4fac2ce..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/caching/AbstractRectCache.java +++ /dev/null @@ -1,75 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.caching; - - -import mightypork.gamecore.util.math.constraints.ConstraintCache; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.mutable.RectVar; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectAdapter; - - -/** - *

- * A rect cache. - *

- *

- * Values are held in a caching VectVar, and digest caching is enabled by - * default. - *

- * - * @author Ondřej Hruška (MightyPork) - */ -public abstract class AbstractRectCache extends RectAdapter implements ConstraintCache { - - private final RectVar cache = Rect.makeVar(); - private boolean inited = false; - private boolean cachingEnabled = true; - - - public AbstractRectCache() - { - enableDigestCaching(true); // it changes only on poll - } - - - @Override - protected final Rect getSource() - { - if (!inited) poll(); - - return (cachingEnabled ? cache : getCacheSource()); - } - - - @Override - public final void poll() - { - inited = true; - - // poll source - final Rect source = getCacheSource(); - source.markDigestDirty(); // poll cached - - // store source value - cache.setTo(source); - - markDigestDirty(); - - onConstraintChanged(); - } - - - @Override - public final void enableCaching(boolean yes) - { - cachingEnabled = yes; - enableDigestCaching(yes); - } - - - @Override - public final boolean isCachingEnabled() - { - return cachingEnabled; - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/caching/RectCache.java b/src/mightypork/gamecore/util/math/constraints/rect/caching/RectCache.java deleted file mode 100644 index 364e6fb..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/caching/RectCache.java +++ /dev/null @@ -1,37 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.caching; - - -import mightypork.gamecore.util.annot.DefaultImpl; -import mightypork.gamecore.util.math.constraints.rect.Rect; - - -/** - * Rect cache implementation - * - * @author Ondřej Hruška (MightyPork) - */ -public class RectCache extends AbstractRectCache { - - private final Rect source; - - - public RectCache(Rect source) - { - this.source = source; - } - - - @Override - public final Rect getCacheSource() - { - return source; - } - - - @Override - @DefaultImpl - public void onConstraintChanged() - { - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/caching/RectDigest.java b/src/mightypork/gamecore/util/math/constraints/rect/caching/RectDigest.java deleted file mode 100644 index 7cacd19..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/caching/RectDigest.java +++ /dev/null @@ -1,41 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.caching; - - -import mightypork.gamecore.util.math.constraints.rect.Rect; - - -public class RectDigest { - - public final double x; - public final double y; - public final double width; - public final double height; - - public final double left; - public final double right; - public final double top; - public final double bottom; - - - public RectDigest(Rect rect) - { - this.x = rect.origin().x(); - this.y = rect.origin().y(); - - this.width = rect.size().x(); - this.height = rect.size().y(); - - this.left = x; - this.right = x + width; - this.top = y; - this.bottom = y + height; - } - - - @Override - public String toString() - { - return String - .format("Rect{ at: (%.1f, %.1f), size: (%.1f, %.1f), bounds: L %.1f R %.1f T %.1f B %.1f }", x, y, width, height, left, right, top, bottom); - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/mutable/RectMutable.java b/src/mightypork/gamecore/util/math/constraints/rect/mutable/RectMutable.java deleted file mode 100644 index a60dcc0..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/mutable/RectMutable.java +++ /dev/null @@ -1,91 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.mutable; - - -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.vect.Vect; - - -/** - * Mutable rectangle; operations change it's state. - * - * @author Ondřej Hruška (MightyPork) - */ -public abstract class RectMutable extends Rect { - - /** - * Set to other rect's coordinates - * - * @param rect other rect - */ - public void setTo(Rect rect) - { - setTo(rect.origin(), rect.size()); - } - - - /** - * Set to given size and position - * - * @param origin new origin - * @param width new width - * @param height new height - */ - public void setTo(Vect origin, double width, double height) - { - setTo(origin, Vect.make(width, height)); - } - - - /** - * Set to given size and position - * - * @param x origin.x - * @param y origin.y - * @param width new width - * @param height new height - */ - public void setTo(double x, double y, double width, double height) - { - setTo(Vect.make(x, y), Vect.make(width, height)); - } - - - /** - * Set to given size and position - * - * @param origin new origin - * @param size new size - */ - public void setTo(Vect origin, Vect size) - { - setOrigin(origin); - setSize(size); - } - - - /** - * Set to zero - */ - public void reset() - { - setTo(Vect.ZERO, Vect.ZERO); - } - - - public abstract void setOrigin(double x, double y); - - - public void setOrigin(Vect origin) - { - setOrigin(origin.x(), origin.y()); - } - - - public void setSize(Vect size) - { - setSize(size.x(), size.y()); - } - - - public abstract void setSize(double x, double y); -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/mutable/RectVar.java b/src/mightypork/gamecore/util/math/constraints/rect/mutable/RectVar.java deleted file mode 100644 index 43b9fd3..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/mutable/RectVar.java +++ /dev/null @@ -1,55 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.mutable; - - -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.mutable.VectVar; - - -public class RectVar extends RectMutable { - - final VectVar pos = Vect.makeVar(); - final VectVar size = Vect.makeVar(); - - - /** - * Create at given origin, with given size. - * - * @param x - * @param y - * @param width - * @param height - */ - public RectVar(double x, double y, double width, double height) - { - this.pos.setTo(x, y); - this.size.setTo(width, height); - } - - - @Override - public Vect origin() - { - return pos; - } - - - @Override - public Vect size() - { - return size; - } - - - @Override - public void setOrigin(double x, double y) - { - this.pos.setTo(x, y); - } - - - @Override - public void setSize(double x, double y) - { - this.size.setTo(x, y); - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/proxy/PluggableRectBound.java b/src/mightypork/gamecore/util/math/constraints/rect/proxy/PluggableRectBound.java deleted file mode 100644 index fac1a59..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/proxy/PluggableRectBound.java +++ /dev/null @@ -1,16 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.proxy; - - -/** - * Pluggable rect bound - * - * @author Ondřej Hruška (MightyPork) - */ -public interface PluggableRectBound extends RectBound { - - /** - * @param rect context to set - */ - abstract void setRect(RectBound rect); - -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectAdapter.java b/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectAdapter.java deleted file mode 100644 index ed77c79..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectAdapter.java +++ /dev/null @@ -1,58 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.proxy; - - -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.proxy.VectAdapter; - - -/** - * Rect proxy with abstract method for plugging in / generating rect - * dynamically. - * - * @author Ondřej Hruška (MightyPork) - */ -public abstract class RectAdapter extends Rect { - - // adapters are needed in case the vect returned from source changes - // (is replaced). This way, references to origin and rect will stay intact. - - private final VectAdapter originAdapter = new VectAdapter() { - - @Override - protected Vect getSource() - { - return RectAdapter.this.getSource().origin(); - } - }; - - private final VectAdapter sizeAdapter = new VectAdapter() { - - @Override - protected Vect getSource() - { - return RectAdapter.this.getSource().size(); - } - }; - - - /** - * @return the proxied coord - */ - protected abstract Rect getSource(); - - - @Override - public Vect origin() - { - return originAdapter; - } - - - @Override - public Vect size() - { - return sizeAdapter; - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectBound.java b/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectBound.java deleted file mode 100644 index 47d11f2..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectBound.java +++ /dev/null @@ -1,18 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.proxy; - - -import mightypork.gamecore.util.math.constraints.rect.Rect; - - -/** - * Rect constraint (ie. region) - * - * @author Ondřej Hruška (MightyPork) - */ -public interface RectBound { - - /** - * @return rect region - */ - Rect getRect(); -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectBoundAdapter.java b/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectBoundAdapter.java deleted file mode 100644 index ed248dc..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectBoundAdapter.java +++ /dev/null @@ -1,41 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.proxy; - - -import mightypork.gamecore.util.math.constraints.rect.Rect; - - -/** - * Pluggable rect bound adapter - * - * @author Ondřej Hruška (MightyPork) - */ -public class RectBoundAdapter extends RectAdapter implements PluggableRectBound { - - private RectBound backing = null; - - - public RectBoundAdapter() - { - } - - - public RectBoundAdapter(RectBound bound) - { - backing = bound; - } - - - @Override - public void setRect(RectBound rect) - { - this.backing = rect; - } - - - @Override - public Rect getSource() - { - return backing.getRect(); - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectProxy.java b/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectProxy.java deleted file mode 100644 index 24617cb..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectProxy.java +++ /dev/null @@ -1,24 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.proxy; - - -import mightypork.gamecore.util.math.constraints.rect.Rect; - - -public class RectProxy extends RectAdapter { - - private final Rect source; - - - public RectProxy(Rect source) - { - this.source = source; - } - - - @Override - protected Rect getSource() - { - return source; - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectVectAdapter.java b/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectVectAdapter.java deleted file mode 100644 index b7459b8..0000000 --- a/src/mightypork/gamecore/util/math/constraints/rect/proxy/RectVectAdapter.java +++ /dev/null @@ -1,39 +0,0 @@ -package mightypork.gamecore.util.math.constraints.rect.proxy; - - -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.vect.Vect; - - -/** - * Rect made of two {@link Vect}s - * - * @author Ondřej Hruška (MightyPork) - */ -public class RectVectAdapter extends Rect { - - private final Vect origin; - private final Vect size; - - - public RectVectAdapter(Vect origin, Vect size) - { - this.origin = origin; - this.size = size; - } - - - @Override - public Vect origin() - { - return origin; - } - - - @Override - public Vect size() - { - return size; - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/Vect.java b/src/mightypork/gamecore/util/math/constraints/vect/Vect.java deleted file mode 100644 index ae0c763..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/Vect.java +++ /dev/null @@ -1,1231 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect; - - -import mightypork.gamecore.util.annot.DefaultImpl; -import mightypork.gamecore.util.annot.FactoryMethod; -import mightypork.gamecore.util.math.constraints.DigestCache; -import mightypork.gamecore.util.math.constraints.Digestable; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.NumConst; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.vect.caching.VectCache; -import mightypork.gamecore.util.math.constraints.vect.caching.VectDigest; -import mightypork.gamecore.util.math.constraints.vect.mutable.VectVar; -import mightypork.gamecore.util.math.constraints.vect.proxy.VectBound; -import mightypork.gamecore.util.math.constraints.vect.proxy.VectBoundAdapter; -import mightypork.gamecore.util.math.constraints.vect.proxy.VectNumAdapter; - - -/** - * The most basic Vec methods - * - * @author Ondřej Hruška (MightyPork) - */ -public abstract class Vect implements VectBound, Digestable { - - public static final VectConst ZERO = new VectConst(0, 0, 0); - public static final VectConst ONE = new VectConst(1, 1, 1); - - - @FactoryMethod - public static Vect make(Num xy) - { - return make(xy, xy); - } - - - @FactoryMethod - public static Vect make(Num xc, Num yc) - { - return Vect.make(xc, yc, Num.ZERO); - } - - - @FactoryMethod - public static Vect make(Num xc, Num yc, Num zc) - { - return new VectNumAdapter(xc, yc, zc); - } - - - @FactoryMethod - public static Vect make(VectBound bound) - { - return new VectBoundAdapter(bound); - } - - - @FactoryMethod - public static VectConst make(NumConst xy) - { - return make(xy, xy); - } - - - @FactoryMethod - public static VectConst make(NumConst xc, NumConst yc) - { - return Vect.make(xc, yc, Num.ZERO); - } - - - @FactoryMethod - public static VectConst make(NumConst xc, NumConst yc, NumConst zc) - { - return new VectConst(xc.value(), yc.value(), zc.value()); - } - - - @FactoryMethod - public static VectConst make(double xy) - { - return make(xy, xy); - } - - - @FactoryMethod - public static VectConst make(double x, double y) - { - return Vect.make(x, y, 0); - } - - - @FactoryMethod - public static VectConst make(double x, double y, double z) - { - return new VectConst(x, y, z); - } - - - @FactoryMethod - public static VectVar makeVar() - { - return Vect.makeVar(Vect.ZERO); - } - - - @FactoryMethod - public static VectVar makeVar(double x, double y) - { - return Vect.makeVar(x, y, 0); - } - - - @FactoryMethod - public static VectVar makeVar(Vect copied) - { - return Vect.makeVar(copied.x(), copied.y(), copied.z()); - } - - - @FactoryMethod - public static VectVar makeVar(double x, double y, double z) - { - return new VectVar(x, y, z); - } - - private Num p_size; - private Vect p_neg; - private Vect p_half; - private Vect p_abs; - - private Num p_xc; - private Num p_yc; - private Num p_zc; - - private final DigestCache dc = new DigestCache() { - - @Override - protected VectDigest createDigest() - { - return new VectDigest(Vect.this); - } - }; - - - /** - * @return X coordinate - */ - public abstract double x(); - - - /** - * @return Y coordinate - */ - public abstract double y(); - - - /** - * @return Z coordinate - */ - @DefaultImpl - public double z() - { - return 0; // implemented for ease with 2D anonymous subtypes - } - - - /** - * @return X rounded - */ - public int xi() - { - return (int) Math.round(x()); - } - - - /** - * @return Y rounded - */ - public int yi() - { - return (int) Math.round(y()); - } - - - /** - * @return Z rounded - */ - public int zi() - { - return (int) Math.round(z()); - } - - - /** - * @return X constraint - */ - public Num xn() - { - if (p_xc == null) p_xc = new Num() { - - @Override - public double value() - { - return x(); - } - }; - - return p_xc; - } - - - /** - * @return Y constraint - */ - public Num yn() - { - if (p_yc == null) p_yc = new Num() { - - @Override - public double value() - { - return y(); - } - }; - - return p_yc; - } - - - /** - * @return Z constraint - */ - public Num zn() - { - if (p_zc == null) p_zc = new Num() { - - @Override - public double value() - { - return z(); - } - }; - - return p_zc; - } - - - @Override - public final Vect getVect() - { - return this; - } - - - /** - * @return true if zero - */ - public boolean isZero() - { - return x() == 0 && y() == 0 && z() == 0; - } - - - /** - * Get a static immutable copy of the current state. - * - * @return a immutable copy - */ - public VectConst freeze() - { - return new VectConst(this); - } - - - /** - * Wrap this constraint into a caching adapter. Value will stay fixed (ie. - * no re-calculations) until cache receives a poll() call. - * - * @return the caching adapter - */ - public VectCache cached() - { - return new VectCache(this); - } - - - @Override - public VectDigest digest() - { - return dc.digest(); - } - - - @Override - public void enableDigestCaching(boolean yes) - { - dc.enableDigestCaching(yes); - } - - - @Override - public boolean isDigestCachingEnabled() - { - return dc.isDigestCachingEnabled(); - } - - - @Override - public void markDigestDirty() - { - dc.markDigestDirty(); - } - - - /** - * Get a view with X set to given value - * - * @param x x coordinate - * @return result - */ - public Vect withX(double x) - { - return withX(Num.make(x)); - } - - - /** - * Get a view with Y set to given value - * - * @param y y coordinate - * @return result - */ - public Vect withY(double y) - { - return withY(Num.make(y)); - } - - - /** - * Get a view with Z set to given value - * - * @param z z coordinate - * @return result - */ - public Vect withZ(double z) - { - return withZ(Num.make(z)); - } - - - public Vect withX(final Num x) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return x.value(); - } - - - @Override - public double y() - { - return t.z(); - } - - - @Override - public double z() - { - return t.z(); - } - }; - } - - - public Vect withY(final Num y) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return t.x(); - } - - - @Override - public double y() - { - return y.value(); - } - - - @Override - public double z() - { - return t.z(); - } - }; - } - - - public Vect withZ(final Num z) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return t.x(); - } - - - @Override - public double y() - { - return t.y(); - } - - - @Override - public double z() - { - return z.value(); - } - }; - } - - - /** - * Get absolute value (positive) - * - * @return result - */ - public Vect abs() - { - if (p_abs == null) p_abs = new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return Math.abs(t.x()); - } - - - @Override - public double y() - { - return Math.abs(t.y()); - } - - - @Override - public double z() - { - return Math.abs(t.z()); - } - }; - - return p_abs; - } - - - /** - * Add a vector. - * - * @param vec offset - * @return result - */ - public Vect add(Vect vec) - { - return add(vec.xn(), vec.yn(), vec.zn()); - } - - - /** - * Add to each component.
- * Z is unchanged. - * - * @param x x offset - * @param y y offset - * @return result - */ - public Vect add(double x, double y) - { - return add(x, y, 0); - } - - - /** - * Add to each component. - * - * @param x x offset - * @param y y offset - * @param z z offset - * @return result - */ - public Vect add(final double x, final double y, final double z) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return t.x() + x; - } - - - @Override - public double y() - { - return t.y() + y; - } - - - @Override - public double z() - { - return t.z() + z; - } - }; - } - - - public Vect add(Num x, Num y) - { - return add(x, y, Num.ZERO); - } - - - public Vect add(final Num x, final Num y, final Num z) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return t.x() + x.value(); - } - - - @Override - public double y() - { - return t.y() + y.value(); - } - - - @Override - public double z() - { - return t.z() + z.value(); - } - }; - } - - - /** - * Get copy divided by two - * - * @return result - */ - public Vect half() - { - if (p_half == null) p_half = mul(0.5); - return p_half; - } - - - /** - * Multiply each component. - * - * @param d multiplier - * @return result - */ - public Vect mul(double d) - { - return mul(d, d, d); - } - - - /** - * Multiply each component. - * - * @param vec vector of multipliers - * @return result - */ - public Vect mul(Vect vec) - { - return mul(vec.xn(), vec.yn(), vec.zn()); - } - - - /** - * Multiply each component.
- * Z is unchanged. - * - * @param x x multiplier - * @param y y multiplier - * @return result - */ - public Vect mul(double x, double y) - { - return mul(x, y, 1); - } - - - /** - * Multiply each component. - * - * @param x x multiplier - * @param y y multiplier - * @param z z multiplier - * @return result - */ - public Vect mul(final double x, final double y, final double z) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return t.x() * x; - } - - - @Override - public double y() - { - return t.y() * y; - } - - - @Override - public double z() - { - return t.z() * z; - } - }; - } - - - /** - * Multiply each component. - * - * @param d multiplier - * @return result - */ - public Vect mul(final Num d) - { - return mul(d, d, d); - } - - - /** - * Multiply each component. - * - * @param x x multiplier - * @param y y multiplier - * @return result - */ - public Vect mul(final Num x, final Num y) - { - return mul(x, y, Num.ONE); - } - - - /** - * Multiply each component. - * - * @param x x multiplier - * @param y y multiplier - * @param z z multiplier - * @return result - */ - public Vect mul(final Num x, final Num y, final Num z) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return t.x() * x.value(); - } - - - @Override - public double y() - { - return t.y() * y.value(); - } - - - @Override - public double z() - { - return t.z() * z.value(); - } - }; - } - - - /** - * Round coordinates. - * - * @return result - */ - public Vect round() - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return Math.round(t.x()); - } - - - @Override - public double y() - { - return Math.round(t.y()); - } - - - @Override - public double z() - { - return Math.round(t.z()); - } - }; - } - - - /** - * Round coordinates down. - * - * @return result - */ - public Vect floor() - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return Math.floor(t.x()); - } - - - @Override - public double y() - { - return Math.floor(t.y()); - } - - - @Override - public double z() - { - return Math.floor(t.z()); - } - }; - } - - - /** - * Round coordinates up. - * - * @return result - */ - public Vect ceil() - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return Math.ceil(t.x()); - } - - - @Override - public double y() - { - return Math.ceil(t.y()); - } - - - @Override - public double z() - { - return Math.ceil(t.z()); - } - }; - } - - - /** - * Subtract vector. - * - * @param vec offset - * @return result - */ - public Vect sub(Vect vec) - { - return sub(vec.xn(), vec.yn(), vec.zn()); - } - - - /** - * Subtract a 2D vector.
- * Z is unchanged. - * - * @param x x offset - * @param y y offset - * @return result - */ - public Vect sub(double x, double y) - { - return add(-x, -y, 0); - } - - - /** - * Subtract a 3D vector. - * - * @param x x offset - * @param y y offset - * @param z z offset - * @return result - */ - public Vect sub(double x, double y, double z) - { - return add(-x, -y, -z); - } - - - public Vect sub(Num x, Num y) - { - return sub(x, y, Num.ZERO); - } - - - public Vect sub(final Num x, final Num y, final Num z) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return t.x() - x.value(); - } - - - @Override - public double y() - { - return t.y() - y.value(); - } - - - @Override - public double z() - { - return t.z() - z.value(); - } - }; - } - - - /** - * Negate all coordinates (* -1) - * - * @return result - */ - public Vect neg() - { - if (p_neg == null) p_neg = mul(-1); - return p_neg; - } - - - /** - * Scale vector to given size. - * - * @param size size we need - * @return result - */ - public Vect norm(final Num size) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - final double tSize = t.size().value(); - final double nSize = size.value(); - - if (tSize == 0 || nSize == 0) return 0; - - return t.x() / (nSize / tSize); - } - - - @Override - public double y() - { - final double tSize = t.size().value(); - final double nSize = size.value(); - - if (tSize == 0 || nSize == 0) return 0; - - return t.y() / (nSize / tSize); - } - - - @Override - public double z() - { - final double tSize = t.size().value(); - final double nSize = size.value(); - - if (tSize == 0 || nSize == 0) return 0; - - return t.z() / (nSize / tSize); - } - }; - } - - - public Vect norm(final double size) - { - return norm(Num.make(size)); - } - - - /** - * Get distance to other point - * - * @param point other point - * @return distance - */ - public Num dist(final Vect point) - { - return new Num() { - - final Vect t = Vect.this; - - - @Override - public double value() - { - final double dx = t.x() - point.x(); - final double dy = t.y() - point.y(); - final double dz = t.z() - point.z(); - - return Math.sqrt(dx * dx + dy * dy + dz * dz); - } - }; - } - - - /** - * Get middle of line to other point - * - * @param point other point - * @return result - */ - public Vect midTo(final Vect point) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return (point.x() + t.x()) * 0.5; - } - - - @Override - public double y() - { - return (point.y() + t.y()) * 0.5; - } - - - @Override - public double z() - { - return (point.z() + t.z()) * 0.5; - } - }; - } - - - /** - * Create vector from this point to other point - * - * @param point second point - * @return result - */ - public Vect vectTo(final Vect point) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return (point.x() - t.x()); - } - - - @Override - public double y() - { - return (point.y() - t.y()); - } - - - @Override - public double z() - { - return (point.z() - t.z()); - } - }; - } - - - /** - * Get cross product (vector multiplication) - * - * @param vec other vector - * @return result - */ - public Vect cross(final Vect vec) - { - return new Vect() { - - final Vect t = Vect.this; - - - @Override - public double x() - { - return t.y() * vec.z() - t.z() * vec.y(); - } - - - @Override - public double y() - { - return t.z() * vec.x() - t.x() * vec.z(); - } - - - @Override - public double z() - { - return t.x() * vec.y() - t.y() * vec.x(); - } - }; - } - - - /** - * Get dot product (scalar multiplication) - * - * @param vec other vector - * @return dot product - */ - public Num dot(final Vect vec) - { - return new Num() { - - final Vect t = Vect.this; - - - @Override - public double value() - { - return t.x() * vec.x() + t.y() * vec.y() + t.z() * vec.z(); - } - }; - } - - - /** - * Get vector size - * - * @return size - */ - public Num size() - { - if (p_size == null) p_size = new Num() { - - final Vect t = Vect.this; - - - @Override - public double value() - { - final double x = t.x(), y = t.y(), z = t.z(); - return Math.sqrt(x * x + y * y + z * z); - } - }; - - return p_size; - } - - - /** - * Expand to a rect, with given growth to each side. - * - * @param left - * @param right - * @param top - * @param bottom - * @return the rect - */ - public Rect expand(double left, double right, double top, double bottom) - { - return Rect.make(this, Vect.ZERO).grow(left, right, top, bottom); - } - - - /** - * Expand to a rect, with given growth to each side. - * - * @param left - * @param right - * @param top - * @param bottom - * @return the rect - */ - public Rect expand(Num left, Num right, Num top, Num bottom) - { - return Rect.make(this, Vect.ZERO).grow(left, right, top, bottom); - } - - - @Override - public int hashCode() - { - final int prime = 31; - int result = 1; - result = prime * result + Double.valueOf(x()).hashCode(); - result = prime * result + Double.valueOf(y()).hashCode(); - result = prime * result + Double.valueOf(z()).hashCode(); - return result; - } - - - @Override - public boolean equals(Object obj) - { - if (this == obj) return true; - if (obj == null) return false; - if (!(obj instanceof Vect)) return false; - final Vect other = (Vect) obj; - - return x() == other.x() && y() == other.y() && z() == other.z(); - } - - - @Override - public String toString() - { - return String.format("(%.1f, %.1f, %.1f)", x(), y(), z()); - } - - - public final boolean isInside(Rect bounds) - { - return bounds.contains(this); - } - - - public Rect startRect() - { - return expand(0, 0, 0, 0); - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/VectConst.java b/src/mightypork/gamecore/util/math/constraints/vect/VectConst.java deleted file mode 100644 index 476f6a8..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/VectConst.java +++ /dev/null @@ -1,375 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect; - - -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.NumConst; -import mightypork.gamecore.util.math.constraints.rect.RectConst; -import mightypork.gamecore.util.math.constraints.vect.caching.VectDigest; - - -/** - * Coordinate with immutable numeric values.
- * This coordinate is guaranteed to never change, as opposed to view.
- * It's arranged so that operations with constant arguments yield constant - * results. - * - * @author Ondřej Hruška (MightyPork) - */ -public final class VectConst extends Vect { - - private final double x, y, z; - // non-parametric operations are cached using lazy load. - private NumConst v_size; - private VectConst v_neg; - private VectConst v_ceil; - private VectConst v_floor; - private VectConst v_round; - private VectConst v_half; - private VectConst v_abs; - private NumConst v_xc; - private NumConst v_yc; - private NumConst v_zc; - private VectDigest digest; - - - VectConst(Vect other) - { - this(other.x(), other.y(), other.z()); - } - - - VectConst(double x, double y, double z) - { - this.x = x; - this.y = y; - this.z = z; - } - - - @Override - public double x() - { - return x; - } - - - @Override - public double y() - { - return y; - } - - - @Override - public double z() - { - return z; - } - - - /** - * @return X constraint - */ - - @Override - public final NumConst xn() - { - return (v_xc != null) ? v_xc : (v_xc = Num.make(this.x)); - } - - - /** - * @return Y constraint - */ - - @Override - public final NumConst yn() - { - return (v_yc != null) ? v_yc : (v_yc = Num.make(this.y)); - } - - - /** - * @return Z constraint - */ - - @Override - public final NumConst zn() - { - return (v_zc != null) ? v_zc : (v_zc = Num.make(this.z)); - } - - - /** - * @deprecated it's useless to copy a constant - */ - - @Override - @Deprecated - public VectConst freeze() - { - return this; // it's constant already - } - - - @Override - public VectDigest digest() - { - return (digest != null) ? digest : (digest = super.digest()); - } - - - @Override - public VectConst abs() - { - return (v_abs != null) ? v_abs : (v_abs = super.abs().freeze()); - } - - - @Override - public VectConst add(double x, double y) - { - return super.add(x, y).freeze(); - } - - - @Override - public VectConst add(double x, double y, double z) - { - return super.add(x, y, z).freeze(); - } - - - @Override - public VectConst half() - { - return (v_half != null) ? v_half : (v_half = super.half().freeze()); - } - - - @Override - public VectConst mul(double d) - { - return super.mul(d).freeze(); - } - - - @Override - public VectConst mul(double x, double y) - { - return super.mul(x, y).freeze(); - } - - - @Override - public VectConst mul(double x, double y, double z) - { - return super.mul(x, y, z).freeze(); - } - - - @Override - public VectConst round() - { - return (v_round != null) ? v_round : (v_round = super.round().freeze()); - } - - - @Override - public VectConst floor() - { - return (v_floor != null) ? v_floor : (v_floor = super.floor().freeze()); - } - - - @Override - public VectConst ceil() - { - if (v_ceil != null) return v_ceil; - return v_ceil = super.ceil().freeze(); - } - - - @Override - public VectConst sub(double x, double y) - { - return super.sub(x, y).freeze(); - } - - - @Override - public VectConst sub(double x, double y, double z) - { - return super.sub(x, y, z).freeze(); - } - - - @Override - public VectConst neg() - { - return (v_neg != null) ? v_neg : (v_neg = super.neg().freeze()); - } - - - @Override - public VectConst norm(double size) - { - return super.norm(size).freeze(); - } - - - @Override - public NumConst size() - { - return (v_size != null) ? v_size : (v_size = super.size().freeze()); - } - - - @Override - public VectConst withX(double x) - { - return super.withX(x).freeze(); - } - - - @Override - public VectConst withY(double y) - { - return super.withY(y).freeze(); - } - - - @Override - public VectConst withZ(double z) - { - return super.withZ(z).freeze(); - } - - - public VectConst withX(NumConst x) - { - return super.withX(x).freeze(); - } - - - public VectConst withY(NumConst y) - { - return super.withY(y).freeze(); - } - - - public VectConst withZ(NumConst z) - { - return super.withZ(z).freeze(); - } - - - public VectConst add(VectConst vec) - { - return super.add(vec).freeze(); - } - - - public VectConst add(NumConst x, NumConst y) - { - return super.add(x, y).freeze(); - } - - - public VectConst add(NumConst x, NumConst y, NumConst z) - { - return super.add(x, y, z).freeze(); - } - - - public VectConst mul(VectConst vec) - { - return super.mul(vec).freeze(); - } - - - public VectConst mul(NumConst d) - { - return super.mul(d).freeze(); - } - - - public VectConst mul(NumConst x, NumConst y) - { - return super.mul(x, y).freeze(); - } - - - public VectConst mul(NumConst x, NumConst y, NumConst z) - { - return super.mul(x, y, z).freeze(); - } - - - public VectConst sub(VectConst vec) - { - return super.sub(vec).freeze(); - } - - - public VectConst sub(NumConst x, NumConst y) - { - return super.sub(x, y).freeze(); - } - - - public VectConst sub(NumConst x, NumConst y, NumConst z) - { - return super.sub(x, y, z).freeze(); - } - - - public VectConst norm(NumConst size) - { - return super.norm(size).freeze(); - } - - - public NumConst dist(VectConst point) - { - return super.dist(point).freeze(); - } - - - public VectConst midTo(VectConst point) - { - return super.midTo(point).freeze(); - } - - - public VectConst vectTo(VectConst point) - { - return super.vectTo(point).freeze(); - } - - - public NumConst dot(VectConst vec) - { - return super.dot(vec).freeze(); - } - - - public VectConst cross(VectConst vec) - { - return super.cross(vec).freeze(); - } - - - @Override - public RectConst expand(double left, double right, double top, double bottom) - { - return super.expand(left, right, top, bottom).freeze(); - } - - - public RectConst expand(NumConst left, NumConst right, NumConst top, NumConst bottom) - { - return super.expand(left, right, top, bottom).freeze(); - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/VectProxy.java b/src/mightypork/gamecore/util/math/constraints/vect/VectProxy.java deleted file mode 100644 index da218e4..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/VectProxy.java +++ /dev/null @@ -1,24 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect; - - -import mightypork.gamecore.util.math.constraints.vect.proxy.VectAdapter; - - -public class VectProxy extends VectAdapter { - - private final Vect source; - - - public VectProxy(Vect source) - { - this.source = source; - } - - - @Override - protected Vect getSource() - { - return source; - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/caching/AbstractVectCache.java b/src/mightypork/gamecore/util/math/constraints/vect/caching/AbstractVectCache.java deleted file mode 100644 index 10a9307..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/caching/AbstractVectCache.java +++ /dev/null @@ -1,75 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect.caching; - - -import mightypork.gamecore.util.math.constraints.ConstraintCache; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.mutable.VectVar; -import mightypork.gamecore.util.math.constraints.vect.proxy.VectAdapter; - - -/** - *

- * A vect cache. - *

- *

- * Values are held in a caching VectVar, and digest caching is enabled by - * default. - *

- * - * @author Ondřej Hruška (MightyPork) - */ -public abstract class AbstractVectCache extends VectAdapter implements ConstraintCache { - - private final VectVar cache = Vect.makeVar(); - private boolean inited = false; - private boolean cachingEnabled = true; - - - public AbstractVectCache() - { - enableDigestCaching(true); // it changes only on poll - } - - - @Override - protected final Vect getSource() - { - if (!inited) markDigestDirty(); - - return (cachingEnabled ? cache : getCacheSource()); - } - - - @Override - public final void poll() - { - inited = true; - - // poll source - final Vect source = getCacheSource(); - source.markDigestDirty(); // poll cached - - // store source value - cache.setTo(source); - - markDigestDirty(); - - onConstraintChanged(); - } - - - @Override - public final void enableCaching(boolean yes) - { - cachingEnabled = yes; - enableDigestCaching(yes); - } - - - @Override - public final boolean isCachingEnabled() - { - return cachingEnabled; - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/caching/VectCache.java b/src/mightypork/gamecore/util/math/constraints/vect/caching/VectCache.java deleted file mode 100644 index dbc9928..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/caching/VectCache.java +++ /dev/null @@ -1,37 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect.caching; - - -import mightypork.gamecore.util.annot.DefaultImpl; -import mightypork.gamecore.util.math.constraints.vect.Vect; - - -/** - * Vect cache implementation - * - * @author Ondřej Hruška (MightyPork) - */ -public class VectCache extends AbstractVectCache { - - private final Vect source; - - - public VectCache(Vect source) - { - this.source = source; - enableDigestCaching(true); - } - - - @Override - public Vect getCacheSource() - { - return source; - } - - - @Override - @DefaultImpl - public void onConstraintChanged() - { - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/caching/VectDigest.java b/src/mightypork/gamecore/util/math/constraints/vect/caching/VectDigest.java deleted file mode 100644 index ad0440e..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/caching/VectDigest.java +++ /dev/null @@ -1,27 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect.caching; - - -import mightypork.gamecore.util.math.constraints.vect.Vect; - - -public class VectDigest { - - public final double x; - public final double y; - public final double z; - - - public VectDigest(Vect vect) - { - this.x = vect.x(); - this.y = vect.y(); - this.z = vect.z(); - } - - - @Override - public String toString() - { - return String.format("Vect(%.1f, %.1f, %.1f)", x, y, z); - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/mutable/VectMutable.java b/src/mightypork/gamecore/util/math/constraints/vect/mutable/VectMutable.java deleted file mode 100644 index d343b3f..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/mutable/VectMutable.java +++ /dev/null @@ -1,80 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect.mutable; - - -import mightypork.gamecore.util.math.constraints.vect.Vect; - - -/** - * Mutable coord - * - * @author Ondřej Hruška (MightyPork) - */ -abstract class VectMutable extends Vect { - - /** - * Set all to zeros. - */ - public void reset() - { - setTo(0, 0, 0); - } - - - /** - * Set coordinates to match other coord. - * - * @param copied coord whose coordinates are used - */ - public void setTo(Vect copied) - { - setTo(copied.x(), copied.y(), copied.z()); - } - - - /** - * Set 2D coordinates.
- * Z is unchanged. - * - * @param x x coordinate - * @param y y coordinate - */ - public void setTo(double x, double y) - { - setX(x); - setY(y); - } - - - /** - * Set coordinates. - * - * @param x x coordinate - * @param y y coordinate - * @param z z coordinate - */ - public abstract void setTo(double x, double y, double z); - - - /** - * Set X coordinate. - * - * @param x x coordinate - */ - public abstract void setX(double x); - - - /** - * Set Y coordinate. - * - * @param y y coordinate - */ - public abstract void setY(double y); - - - /** - * Set Z coordinate. - * - * @param z z coordinate - */ - public abstract void setZ(double z); -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/mutable/VectVar.java b/src/mightypork/gamecore/util/math/constraints/vect/mutable/VectVar.java deleted file mode 100644 index dbd5bee..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/mutable/VectVar.java +++ /dev/null @@ -1,78 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect.mutable; - - -/** - * Mutable coordinate.
- * All Vec methods (except copy) alter data values and return this instance. - * - * @author Ondřej Hruška (MightyPork) - */ -public class VectVar extends VectMutable { - - private double x, y, z; - - - /** - * @param x X coordinate - * @param y Y coordinate - * @param z Z coordinate - */ - public VectVar(double x, double y, double z) - { - super(); - this.x = x; - this.y = y; - this.z = z; - } - - - @Override - public double x() - { - return x; - } - - - @Override - public double y() - { - return y; - } - - - @Override - public double z() - { - return z; - } - - - @Override - public void setTo(double x, double y, double z) - { - this.x = x; - this.y = y; - this.z = z; - } - - - @Override - public void setX(double x) - { - this.x = x; - } - - - @Override - public void setY(double y) - { - this.y = y; - } - - - @Override - public void setZ(double z) - { - this.z = z; - } -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/proxy/PluggableVectBound.java b/src/mightypork/gamecore/util/math/constraints/vect/proxy/PluggableVectBound.java deleted file mode 100644 index 7e4bcfb..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/proxy/PluggableVectBound.java +++ /dev/null @@ -1,16 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect.proxy; - - -/** - * Pluggable vector constraint - * - * @author Ondřej Hruška (MightyPork) - */ -public interface PluggableVectBound extends VectBound { - - /** - * @param num bound to set - */ - abstract void setVect(VectBound num); - -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectAdapter.java b/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectAdapter.java deleted file mode 100644 index d5c8e1a..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectAdapter.java +++ /dev/null @@ -1,41 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect.proxy; - - -import mightypork.gamecore.util.math.constraints.vect.Vect; - - -/** - * Vect proxy with abstract method for plugging in / generating coordinates - * dynamically. - * - * @author Ondřej Hruška (MightyPork) - */ -public abstract class VectAdapter extends Vect { - - /** - * @return the proxied coord - */ - protected abstract Vect getSource(); - - - @Override - public double x() - { - return getSource().x(); - } - - - @Override - public double y() - { - return getSource().y(); - } - - - @Override - public double z() - { - return getSource().z(); - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectBound.java b/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectBound.java deleted file mode 100644 index 46812d5..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectBound.java +++ /dev/null @@ -1,18 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect.proxy; - - -import mightypork.gamecore.util.math.constraints.vect.Vect; - - -/** - * Element holding a vector, used for constraint building. - * - * @author Ondřej Hruška (MightyPork) - */ -public interface VectBound { - - /** - * @return the current vector. - */ - public Vect getVect(); -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectBoundAdapter.java b/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectBoundAdapter.java deleted file mode 100644 index e06ee49..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectBoundAdapter.java +++ /dev/null @@ -1,36 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect.proxy; - - -import mightypork.gamecore.util.math.constraints.vect.Vect; - - -public class VectBoundAdapter extends VectAdapter implements PluggableVectBound { - - private VectBound backing = null; - - - public VectBoundAdapter() - { - } - - - public VectBoundAdapter(VectBound bound) - { - backing = bound; - } - - - @Override - public void setVect(VectBound rect) - { - this.backing = rect; - } - - - @Override - protected Vect getSource() - { - return backing.getVect(); - } - -} diff --git a/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectNumAdapter.java b/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectNumAdapter.java deleted file mode 100644 index 603e91e..0000000 --- a/src/mightypork/gamecore/util/math/constraints/vect/proxy/VectNumAdapter.java +++ /dev/null @@ -1,57 +0,0 @@ -package mightypork.gamecore.util.math.constraints.vect.proxy; - - -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.proxy.NumBound; -import mightypork.gamecore.util.math.constraints.vect.Vect; - - -/** - * Coord view composed of given {@link NumBound}s, using their current values. - * - * @author Ondřej Hruška (MightyPork) - */ -public class VectNumAdapter extends Vect { - - private final Num constrX; - private final Num constrY; - private final Num constrZ; - - - public VectNumAdapter(Num x, Num y, Num z) - { - this.constrX = x; - this.constrY = y; - this.constrZ = z; - } - - - public VectNumAdapter(Num x, Num y) - { - this.constrX = x; - this.constrY = y; - this.constrZ = Num.ZERO; - } - - - @Override - public double x() - { - return constrX.value(); - } - - - @Override - public double y() - { - return constrY.value(); - } - - - @Override - public double z() - { - return constrZ.value(); - } - -} diff --git a/src/mightypork/gamecore/util/math/timing/TaskRepeater.java b/src/mightypork/gamecore/util/math/timing/TaskRepeater.java index 61b2d02..8fb7e35 100644 --- a/src/mightypork/gamecore/util/math/timing/TaskRepeater.java +++ b/src/mightypork/gamecore/util/math/timing/TaskRepeater.java @@ -2,7 +2,8 @@ package mightypork.gamecore.util.math.timing; import mightypork.gamecore.gui.Enableable; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; +import mightypork.gamecore.util.math.timing.animation.AnimatorRewind; +import mightypork.gamecore.util.math.timing.animation.NumAnimated; public abstract class TaskRepeater extends AnimatorRewind implements Runnable, Enableable { diff --git a/src/mightypork/gamecore/util/math/timing/TimedTask.java b/src/mightypork/gamecore/util/math/timing/TimedTask.java index 36a2038..21c5e5a 100644 --- a/src/mightypork/gamecore/util/math/timing/TimedTask.java +++ b/src/mightypork/gamecore/util/math/timing/TimedTask.java @@ -1,8 +1,8 @@ package mightypork.gamecore.util.math.timing; +import mightypork.gamecore.util.math.timing.animation.NumAnimated; + -import mightypork.gamecore.eventbus.events.Updateable; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; /** diff --git a/src/mightypork/gamecore/eventbus/events/Updateable.java b/src/mightypork/gamecore/util/math/timing/Updateable.java similarity index 85% rename from src/mightypork/gamecore/eventbus/events/Updateable.java rename to src/mightypork/gamecore/util/math/timing/Updateable.java index 399dc5c..1e25dd6 100644 --- a/src/mightypork/gamecore/eventbus/events/Updateable.java +++ b/src/mightypork/gamecore/util/math/timing/Updateable.java @@ -1,4 +1,4 @@ -package mightypork.gamecore.eventbus.events; +package mightypork.gamecore.util.math.timing; /** diff --git a/src/mightypork/gamecore/util/math/timing/Animator.java b/src/mightypork/gamecore/util/math/timing/animation/Animator.java similarity index 89% rename from src/mightypork/gamecore/util/math/timing/Animator.java rename to src/mightypork/gamecore/util/math/timing/animation/Animator.java index 3df0156..27b9b7f 100644 --- a/src/mightypork/gamecore/util/math/timing/Animator.java +++ b/src/mightypork/gamecore/util/math/timing/animation/Animator.java @@ -1,12 +1,12 @@ -package mightypork.gamecore.util.math.timing; +package mightypork.gamecore.util.math.timing.animation; -import mightypork.gamecore.eventbus.events.Updateable; +import mightypork.dynmath.num.Num; import mightypork.gamecore.util.annot.DefaultImpl; import mightypork.gamecore.util.math.Calc; import mightypork.gamecore.util.math.Easing; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; +import mightypork.gamecore.util.math.timing.Pauseable; +import mightypork.gamecore.util.math.timing.Updateable; public abstract class Animator extends Num implements Updateable, Pauseable { diff --git a/src/mightypork/gamecore/util/math/timing/AnimatorBounce.java b/src/mightypork/gamecore/util/math/timing/animation/AnimatorBounce.java similarity index 86% rename from src/mightypork/gamecore/util/math/timing/AnimatorBounce.java rename to src/mightypork/gamecore/util/math/timing/animation/AnimatorBounce.java index f852d20..22eb8a9 100644 --- a/src/mightypork/gamecore/util/math/timing/AnimatorBounce.java +++ b/src/mightypork/gamecore/util/math/timing/animation/AnimatorBounce.java @@ -1,8 +1,7 @@ -package mightypork.gamecore.util.math.timing; +package mightypork.gamecore.util.math.timing.animation; import mightypork.gamecore.util.math.Easing; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; /** diff --git a/src/mightypork/gamecore/util/math/timing/AnimatorRewind.java b/src/mightypork/gamecore/util/math/timing/animation/AnimatorRewind.java similarity index 85% rename from src/mightypork/gamecore/util/math/timing/AnimatorRewind.java rename to src/mightypork/gamecore/util/math/timing/animation/AnimatorRewind.java index 124fe98..01736f5 100644 --- a/src/mightypork/gamecore/util/math/timing/AnimatorRewind.java +++ b/src/mightypork/gamecore/util/math/timing/animation/AnimatorRewind.java @@ -1,8 +1,7 @@ -package mightypork.gamecore.util.math.timing; +package mightypork.gamecore.util.math.timing.animation; import mightypork.gamecore.util.math.Easing; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; /** diff --git a/src/mightypork/gamecore/util/math/constraints/num/mutable/NumAnimated.java b/src/mightypork/gamecore/util/math/timing/animation/NumAnimated.java similarity index 97% rename from src/mightypork/gamecore/util/math/constraints/num/mutable/NumAnimated.java rename to src/mightypork/gamecore/util/math/timing/animation/NumAnimated.java index 4dc360a..828f23b 100644 --- a/src/mightypork/gamecore/util/math/constraints/num/mutable/NumAnimated.java +++ b/src/mightypork/gamecore/util/math/timing/animation/NumAnimated.java @@ -1,10 +1,11 @@ -package mightypork.gamecore.util.math.constraints.num.mutable; +package mightypork.gamecore.util.math.timing.animation; -import mightypork.gamecore.eventbus.events.Updateable; +import mightypork.dynmath.num.mutable.NumMutable; import mightypork.gamecore.util.math.Calc; import mightypork.gamecore.util.math.Easing; import mightypork.gamecore.util.math.timing.Pauseable; +import mightypork.gamecore.util.math.timing.Updateable; /** diff --git a/src/mightypork/gamecore/util/math/constraints/num/mutable/NumAnimatedDeg.java b/src/mightypork/gamecore/util/math/timing/animation/NumAnimatedDeg.java similarity index 93% rename from src/mightypork/gamecore/util/math/constraints/num/mutable/NumAnimatedDeg.java rename to src/mightypork/gamecore/util/math/timing/animation/NumAnimatedDeg.java index c0fc107..bd1cad9 100644 --- a/src/mightypork/gamecore/util/math/constraints/num/mutable/NumAnimatedDeg.java +++ b/src/mightypork/gamecore/util/math/timing/animation/NumAnimatedDeg.java @@ -1,4 +1,4 @@ -package mightypork.gamecore.util.math.constraints.num.mutable; +package mightypork.gamecore.util.math.timing.animation; import mightypork.gamecore.util.math.Calc; diff --git a/src/mightypork/gamecore/util/math/constraints/num/mutable/NumAnimatedRad.java b/src/mightypork/gamecore/util/math/timing/animation/NumAnimatedRad.java similarity index 93% rename from src/mightypork/gamecore/util/math/constraints/num/mutable/NumAnimatedRad.java rename to src/mightypork/gamecore/util/math/timing/animation/NumAnimatedRad.java index 1619dcb..423e664 100644 --- a/src/mightypork/gamecore/util/math/constraints/num/mutable/NumAnimatedRad.java +++ b/src/mightypork/gamecore/util/math/timing/animation/NumAnimatedRad.java @@ -1,4 +1,4 @@ -package mightypork.gamecore.util.math.constraints.num.mutable; +package mightypork.gamecore.util.math.timing.animation; import mightypork.gamecore.util.math.Calc; diff --git a/src/mightypork/gamecore/util/math/constraints/vect/mutable/VectAnimated.java b/src/mightypork/gamecore/util/math/timing/animation/VectAnimated.java similarity index 94% rename from src/mightypork/gamecore/util/math/constraints/vect/mutable/VectAnimated.java rename to src/mightypork/gamecore/util/math/timing/animation/VectAnimated.java index e2a2cb1..08b47cb 100644 --- a/src/mightypork/gamecore/util/math/constraints/vect/mutable/VectAnimated.java +++ b/src/mightypork/gamecore/util/math/timing/animation/VectAnimated.java @@ -1,12 +1,12 @@ -package mightypork.gamecore.util.math.constraints.vect.mutable; +package mightypork.gamecore.util.math.timing.animation; -import mightypork.gamecore.eventbus.events.Updateable; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.mutable.VectMutable; import mightypork.gamecore.util.annot.FactoryMethod; import mightypork.gamecore.util.math.Easing; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; -import mightypork.gamecore.util.math.constraints.vect.Vect; import mightypork.gamecore.util.math.timing.Pauseable; +import mightypork.gamecore.util.math.timing.Updateable; /** diff --git a/src/mightypork/gamecore/util/objects/Convert.java b/src/mightypork/gamecore/util/objects/Convert.java index 42ba351..6b844f1 100644 --- a/src/mightypork/gamecore/util/objects/Convert.java +++ b/src/mightypork/gamecore/util/objects/Convert.java @@ -1,11 +1,11 @@ package mightypork.gamecore.util.objects; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.VectConst; import mightypork.gamecore.logging.Log; import mightypork.gamecore.util.math.Calc; import mightypork.gamecore.util.math.Range; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.VectConst; /** diff --git a/src/mightypork/rogue/RogueResources.java b/src/mightypork/rogue/RogueResources.java index ea16563..7ca744c 100644 --- a/src/mightypork/rogue/RogueResources.java +++ b/src/mightypork/rogue/RogueResources.java @@ -1,6 +1,7 @@ package mightypork.rogue; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.resources.ResourceSetup; import mightypork.gamecore.resources.audio.SoundRegistry; import mightypork.gamecore.resources.fonts.FontRegistry; @@ -11,7 +12,6 @@ import mightypork.gamecore.resources.textures.GLTexture; import mightypork.gamecore.resources.textures.QuadGrid; import mightypork.gamecore.resources.textures.TextureRegistry; import mightypork.gamecore.resources.textures.WrapMode; -import mightypork.gamecore.util.math.constraints.rect.Rect; public class RogueResources implements ResourceSetup { diff --git a/src/mightypork/rogue/screens/FpsOverlay.java b/src/mightypork/rogue/screens/FpsOverlay.java index 9ce062c..c5615b3 100644 --- a/src/mightypork/rogue/screens/FpsOverlay.java +++ b/src/mightypork/rogue/screens/FpsOverlay.java @@ -1,6 +1,9 @@ package mightypork.rogue.screens; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.proxy.RectBound; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.core.Config; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.Action; @@ -11,9 +14,6 @@ import mightypork.gamecore.input.KeyStroke.Edge; import mightypork.gamecore.resources.Res; import mightypork.gamecore.resources.fonts.GLFont; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; -import mightypork.gamecore.util.math.constraints.vect.Vect; import mightypork.gamecore.util.strings.StringProvider; diff --git a/src/mightypork/rogue/screens/LoadingOverlay.java b/src/mightypork/rogue/screens/LoadingOverlay.java index 8e9bae8..61aff36 100644 --- a/src/mightypork/rogue/screens/LoadingOverlay.java +++ b/src/mightypork/rogue/screens/LoadingOverlay.java @@ -1,6 +1,8 @@ package mightypork.rogue.screens; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.components.painters.QuadPainter; @@ -11,10 +13,8 @@ import mightypork.gamecore.util.Utils; import mightypork.gamecore.util.math.Easing; import mightypork.gamecore.util.math.color.pal.PAL16; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.gamecore.util.math.timing.TimedTask; +import mightypork.gamecore.util.math.timing.animation.NumAnimated; import mightypork.gamecore.util.strings.StringProvider; diff --git a/src/mightypork/rogue/screens/game/HeartBar.java b/src/mightypork/rogue/screens/game/HeartBar.java index d2fa9c8..81ac3f9 100644 --- a/src/mightypork/rogue/screens/game/HeartBar.java +++ b/src/mightypork/rogue/screens/game/HeartBar.java @@ -1,13 +1,13 @@ package mightypork.rogue.screens.game; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.num.mutable.NumVar; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.components.BaseComponent; import mightypork.gamecore.render.Render; import mightypork.gamecore.resources.textures.TxQuad; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.mutable.NumVar; -import mightypork.gamecore.util.math.constraints.rect.Rect; public class HeartBar extends BaseComponent { diff --git a/src/mightypork/rogue/screens/game/IngameNav.java b/src/mightypork/rogue/screens/game/IngameNav.java index 2619064..8cdd2c3 100644 --- a/src/mightypork/rogue/screens/game/IngameNav.java +++ b/src/mightypork/rogue/screens/game/IngameNav.java @@ -1,6 +1,8 @@ package mightypork.rogue.screens.game; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.proxy.RectBound; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.components.LayoutComponent; @@ -8,8 +10,6 @@ import mightypork.gamecore.gui.components.layout.FlowColumnLayout; import mightypork.gamecore.render.Render; import mightypork.gamecore.resources.Res; import mightypork.gamecore.resources.textures.TxQuad; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; public class IngameNav extends LayoutComponent { diff --git a/src/mightypork/rogue/screens/game/InvSlot.java b/src/mightypork/rogue/screens/game/InvSlot.java index bef93ea..f04d794 100644 --- a/src/mightypork/rogue/screens/game/InvSlot.java +++ b/src/mightypork/rogue/screens/game/InvSlot.java @@ -1,6 +1,9 @@ package mightypork.rogue.screens.game; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.caching.RectCache; import mightypork.gamecore.gui.Action; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.components.input.ClickableComponent; @@ -11,9 +14,6 @@ import mightypork.gamecore.resources.textures.TxQuad; import mightypork.gamecore.util.math.Calc; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.caching.RectCache; import mightypork.rogue.world.PlayerFacade; import mightypork.rogue.world.WorldProvider; import mightypork.rogue.world.item.Item; diff --git a/src/mightypork/rogue/screens/game/LayerAskSave.java b/src/mightypork/rogue/screens/game/LayerAskSave.java index 3a9c693..78480c6 100644 --- a/src/mightypork/rogue/screens/game/LayerAskSave.java +++ b/src/mightypork/rogue/screens/game/LayerAskSave.java @@ -3,6 +3,7 @@ package mightypork.rogue.screens.game; import java.io.IOException; +import mightypork.dynmath.num.Num; import mightypork.gamecore.core.Config; import mightypork.gamecore.gui.Action; import mightypork.gamecore.gui.AlignX; @@ -17,7 +18,6 @@ import mightypork.gamecore.logging.Log; import mightypork.gamecore.resources.Res; import mightypork.gamecore.resources.fonts.GLFont; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; import mightypork.rogue.screens.game.ScreenGame.GScrState; import mightypork.rogue.world.WorldProvider; diff --git a/src/mightypork/rogue/screens/game/LayerDeath.java b/src/mightypork/rogue/screens/game/LayerDeath.java index c4cad34..fb6b1c8 100644 --- a/src/mightypork/rogue/screens/game/LayerDeath.java +++ b/src/mightypork/rogue/screens/game/LayerDeath.java @@ -3,6 +3,7 @@ package mightypork.rogue.screens.game; import java.io.IOException; +import mightypork.dynmath.num.Num; import mightypork.gamecore.core.Config; import mightypork.gamecore.gui.Action; import mightypork.gamecore.gui.AlignX; @@ -19,7 +20,6 @@ import mightypork.gamecore.logging.Log; import mightypork.gamecore.resources.Res; import mightypork.gamecore.resources.fonts.GLFont; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; import mightypork.rogue.RogueStateManager.RogueState; import mightypork.rogue.events.RogueStateRequest; import mightypork.rogue.screens.game.ScreenGame.GScrState; diff --git a/src/mightypork/rogue/screens/game/LayerGameUi.java b/src/mightypork/rogue/screens/game/LayerGameUi.java index 5247a28..f462dd6 100644 --- a/src/mightypork/rogue/screens/game/LayerGameUi.java +++ b/src/mightypork/rogue/screens/game/LayerGameUi.java @@ -1,13 +1,13 @@ package mightypork.rogue.screens.game; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.components.painters.TextPainter; import mightypork.gamecore.gui.screens.ScreenLayer; import mightypork.gamecore.resources.Res; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.gamecore.util.strings.StringProvider; import mightypork.rogue.world.World; import mightypork.rogue.world.WorldProvider; diff --git a/src/mightypork/rogue/screens/game/LayerInv.java b/src/mightypork/rogue/screens/game/LayerInv.java index 5b241cb..fe12f75 100644 --- a/src/mightypork/rogue/screens/game/LayerInv.java +++ b/src/mightypork/rogue/screens/game/LayerInv.java @@ -1,6 +1,8 @@ package mightypork.rogue.screens.game; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.core.Config; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.components.layout.ConstraintLayout; @@ -13,8 +15,6 @@ import mightypork.gamecore.input.KeyStroke; import mightypork.gamecore.input.KeyStroke.Edge; import mightypork.gamecore.resources.Res; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.gamecore.util.strings.StringProvider; import mightypork.rogue.screens.game.ScreenGame.GScrState; import mightypork.rogue.world.PlayerFacade; diff --git a/src/mightypork/rogue/screens/game/LayerMapView.java b/src/mightypork/rogue/screens/game/LayerMapView.java index bcda190..c7ee608 100644 --- a/src/mightypork/rogue/screens/game/LayerMapView.java +++ b/src/mightypork/rogue/screens/game/LayerMapView.java @@ -1,9 +1,9 @@ package mightypork.rogue.screens.game; +import mightypork.dynmath.num.Num; import mightypork.gamecore.gui.screens.Screen; import mightypork.gamecore.gui.screens.ScreenLayer; -import mightypork.gamecore.util.math.constraints.num.Num; import mightypork.rogue.world.gui.MapView; import mightypork.rogue.world.gui.interaction.MIPKeyboard; import mightypork.rogue.world.gui.interaction.MIPMouse; diff --git a/src/mightypork/rogue/screens/game/LayerWin.java b/src/mightypork/rogue/screens/game/LayerWin.java index e7b486f..857f5b8 100644 --- a/src/mightypork/rogue/screens/game/LayerWin.java +++ b/src/mightypork/rogue/screens/game/LayerWin.java @@ -3,6 +3,7 @@ package mightypork.rogue.screens.game; import java.io.File; +import mightypork.dynmath.num.Num; import mightypork.gamecore.core.Config; import mightypork.gamecore.gui.Action; import mightypork.gamecore.gui.AlignX; @@ -17,7 +18,6 @@ import mightypork.gamecore.input.KeyStroke.Edge; import mightypork.gamecore.resources.Res; import mightypork.gamecore.resources.fonts.GLFont; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; import mightypork.rogue.RogueStateManager.RogueState; import mightypork.rogue.events.RogueStateRequest; import mightypork.rogue.world.WorldProvider; diff --git a/src/mightypork/rogue/screens/menu/ScreenMainMenu.java b/src/mightypork/rogue/screens/menu/ScreenMainMenu.java index deab663..19869d5 100644 --- a/src/mightypork/rogue/screens/menu/ScreenMainMenu.java +++ b/src/mightypork/rogue/screens/menu/ScreenMainMenu.java @@ -1,6 +1,8 @@ package mightypork.rogue.screens.menu; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.core.Config; import mightypork.gamecore.core.events.UserQuitRequest; import mightypork.gamecore.core.modules.AppAccess; @@ -18,8 +20,6 @@ import mightypork.gamecore.resources.Res; import mightypork.gamecore.resources.fonts.GLFont; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.PAL16; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.rogue.RogueStateManager.RogueState; import mightypork.rogue.events.RogueStateRequest; import mightypork.rogue.screens.RogueScreen; diff --git a/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java b/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java index ca91f43..61a15b6 100644 --- a/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java +++ b/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java @@ -1,6 +1,7 @@ package mightypork.rogue.screens.select_world; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.core.Config; import mightypork.gamecore.core.WorkDir; import mightypork.gamecore.core.modules.AppAccess; @@ -16,7 +17,6 @@ import mightypork.gamecore.resources.Res; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.PAL16; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.rogue.RogueStateManager.RogueState; import mightypork.rogue.events.RogueStateRequest; import mightypork.rogue.screens.RogueScreen; diff --git a/src/mightypork/rogue/screens/select_world/WorldSlot.java b/src/mightypork/rogue/screens/select_world/WorldSlot.java index 0872fef..1fb94cc 100644 --- a/src/mightypork/rogue/screens/select_world/WorldSlot.java +++ b/src/mightypork/rogue/screens/select_world/WorldSlot.java @@ -3,6 +3,8 @@ package mightypork.rogue.screens.select_world; import java.io.File; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.Action; import mightypork.gamecore.gui.AlignX; @@ -15,8 +17,6 @@ import mightypork.gamecore.logging.Log; import mightypork.gamecore.resources.Res; import mightypork.gamecore.resources.fonts.GLFont; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.gamecore.util.strings.StringProvider; import mightypork.ion.Ion; import mightypork.ion.IonBundle; diff --git a/src/mightypork/rogue/screens/story/ScreenStory.java b/src/mightypork/rogue/screens/story/ScreenStory.java index cd47536..40c3ae7 100644 --- a/src/mightypork/rogue/screens/story/ScreenStory.java +++ b/src/mightypork/rogue/screens/story/ScreenStory.java @@ -1,6 +1,8 @@ package mightypork.rogue.screens.story; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.core.Config; import mightypork.gamecore.core.modules.AppAccess; import mightypork.gamecore.gui.Action; @@ -21,10 +23,8 @@ import mightypork.gamecore.resources.Res; import mightypork.gamecore.util.math.Easing; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.gamecore.util.math.timing.TimedTask; +import mightypork.gamecore.util.math.timing.animation.NumAnimated; import mightypork.rogue.RogueStateManager.RogueState; import mightypork.rogue.events.RogueStateRequest; import mightypork.rogue.screens.RogueScreen; diff --git a/src/mightypork/rogue/world/PlayerControl.java b/src/mightypork/rogue/world/PlayerControl.java index 9a72397..beff05b 100644 --- a/src/mightypork/rogue/world/PlayerControl.java +++ b/src/mightypork/rogue/world/PlayerControl.java @@ -4,9 +4,9 @@ package mightypork.rogue.world; import java.util.HashSet; import java.util.Set; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.algo.Move; -import mightypork.gamecore.util.math.constraints.vect.Vect; import mightypork.rogue.world.entity.Entity; import mightypork.rogue.world.entity.EntityType; import mightypork.rogue.world.entity.modules.EntityMoveListener; diff --git a/src/mightypork/rogue/world/PlayerFacade.java b/src/mightypork/rogue/world/PlayerFacade.java index a40fb71..08f5c5d 100644 --- a/src/mightypork/rogue/world/PlayerFacade.java +++ b/src/mightypork/rogue/world/PlayerFacade.java @@ -6,9 +6,9 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.algo.Move; -import mightypork.gamecore.util.math.constraints.vect.Vect; import mightypork.rogue.world.entity.Entity; import mightypork.rogue.world.item.Item; import mightypork.rogue.world.item.ItemType; diff --git a/src/mightypork/rogue/world/World.java b/src/mightypork/rogue/world/World.java index cf347a8..29131ff 100644 --- a/src/mightypork/rogue/world/World.java +++ b/src/mightypork/rogue/world/World.java @@ -9,11 +9,11 @@ import java.util.Random; import mightypork.gamecore.eventbus.BusAccess; import mightypork.gamecore.eventbus.EventBus; import mightypork.gamecore.eventbus.clients.DelegatingClient; -import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.logging.Log; import mightypork.gamecore.util.error.CorruptDataException; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.timing.Pauseable; +import mightypork.gamecore.util.math.timing.Updateable; import mightypork.ion.IonBundle; import mightypork.ion.IonObjBundled; import mightypork.rogue.world.entity.Entities; diff --git a/src/mightypork/rogue/world/WorldConsole.java b/src/mightypork/rogue/world/WorldConsole.java index cf6f22d..c413c10 100644 --- a/src/mightypork/rogue/world/WorldConsole.java +++ b/src/mightypork/rogue/world/WorldConsole.java @@ -6,9 +6,9 @@ import java.util.Deque; import java.util.Iterator; import java.util.concurrent.LinkedBlockingDeque; -import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.util.math.Easing; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; +import mightypork.gamecore.util.math.timing.Updateable; +import mightypork.gamecore.util.math.timing.animation.NumAnimated; import mightypork.rogue.world.entity.Entity; import mightypork.rogue.world.item.Item; diff --git a/src/mightypork/rogue/world/WorldRenderer.java b/src/mightypork/rogue/world/WorldRenderer.java index eeb21fb..21aadc1 100644 --- a/src/mightypork/rogue/world/WorldRenderer.java +++ b/src/mightypork/rogue/world/WorldRenderer.java @@ -1,16 +1,16 @@ package mightypork.rogue.world; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.RectConst; +import mightypork.dynmath.rect.proxy.RectProxy; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.VectConst; import mightypork.gamecore.render.Render; import mightypork.gamecore.resources.Res; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.RectConst; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectProxy; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.VectConst; import mightypork.rogue.Const; import mightypork.rogue.world.entity.Entity; import mightypork.rogue.world.level.Level; diff --git a/src/mightypork/rogue/world/entity/Entity.java b/src/mightypork/rogue/world/entity/Entity.java index 7314f4a..52af7e7 100644 --- a/src/mightypork/rogue/world/entity/Entity.java +++ b/src/mightypork/rogue/world/entity/Entity.java @@ -7,11 +7,11 @@ import java.util.Map; import java.util.Map.Entry; import mightypork.gamecore.eventbus.clients.DelegatingClient; -import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.util.annot.DefaultImpl; import mightypork.gamecore.util.error.IllegalValueException; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.algo.pathfinding.PathFinder; +import mightypork.gamecore.util.math.timing.Updateable; import mightypork.ion.IonBundle; import mightypork.ion.IonObjBundled; import mightypork.rogue.world.World; diff --git a/src/mightypork/rogue/world/entity/EntityModule.java b/src/mightypork/rogue/world/entity/EntityModule.java index 13eb0c6..9ec6349 100644 --- a/src/mightypork/rogue/world/entity/EntityModule.java +++ b/src/mightypork/rogue/world/entity/EntityModule.java @@ -1,8 +1,8 @@ package mightypork.rogue.world.entity; -import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.util.annot.DefaultImpl; +import mightypork.gamecore.util.math.timing.Updateable; import mightypork.ion.IonBundle; import mightypork.ion.IonObjBundled; diff --git a/src/mightypork/rogue/world/entity/modules/EntityModulePosition.java b/src/mightypork/rogue/world/entity/modules/EntityModulePosition.java index ab6236d..6831a5c 100644 --- a/src/mightypork/rogue/world/entity/modules/EntityModulePosition.java +++ b/src/mightypork/rogue/world/entity/modules/EntityModulePosition.java @@ -7,9 +7,9 @@ import java.util.List; import java.util.Queue; import java.util.Set; +import mightypork.dynmath.vect.VectConst; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.algo.Move; -import mightypork.gamecore.util.math.constraints.vect.VectConst; import mightypork.ion.IonBundle; import mightypork.rogue.world.entity.Entity; import mightypork.rogue.world.entity.EntityModule; diff --git a/src/mightypork/rogue/world/entity/modules/EntityPos.java b/src/mightypork/rogue/world/entity/modules/EntityPos.java index 1cd2cb5..8a297c8 100644 --- a/src/mightypork/rogue/world/entity/modules/EntityPos.java +++ b/src/mightypork/rogue/world/entity/modules/EntityPos.java @@ -1,13 +1,13 @@ package mightypork.rogue.world.entity.modules; -import mightypork.gamecore.eventbus.events.Updateable; +import mightypork.dynmath.vect.Vect; +import mightypork.dynmath.vect.VectConst; import mightypork.gamecore.util.math.Easing; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.algo.Move; -import mightypork.gamecore.util.math.constraints.vect.Vect; -import mightypork.gamecore.util.math.constraints.vect.VectConst; -import mightypork.gamecore.util.math.constraints.vect.mutable.VectAnimated; +import mightypork.gamecore.util.math.timing.Updateable; +import mightypork.gamecore.util.math.timing.animation.VectAnimated; import mightypork.ion.IonBundle; import mightypork.ion.IonObjBundled; diff --git a/src/mightypork/rogue/world/entity/render/EntityRendererMobLR.java b/src/mightypork/rogue/world/entity/render/EntityRendererMobLR.java index 2a1ab11..c36e375 100644 --- a/src/mightypork/rogue/world/entity/render/EntityRendererMobLR.java +++ b/src/mightypork/rogue/world/entity/render/EntityRendererMobLR.java @@ -1,6 +1,10 @@ package mightypork.rogue.world.entity.render; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.num.mutable.NumVar; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.render.Render; import mightypork.gamecore.resources.Res; import mightypork.gamecore.resources.textures.TxQuad; @@ -8,10 +12,6 @@ import mightypork.gamecore.resources.textures.TxSheet; import mightypork.gamecore.util.math.Calc; import mightypork.gamecore.util.math.Easing; import mightypork.gamecore.util.math.color.Color; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.mutable.NumVar; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.vect.Vect; import mightypork.rogue.world.entity.Entity; import mightypork.rogue.world.entity.EntityRenderer; import mightypork.rogue.world.level.render.MapRenderContext; diff --git a/src/mightypork/rogue/world/gui/MapView.java b/src/mightypork/rogue/world/gui/MapView.java index 52d56fe..2e962ca 100644 --- a/src/mightypork/rogue/world/gui/MapView.java +++ b/src/mightypork/rogue/world/gui/MapView.java @@ -5,8 +5,9 @@ import java.util.Collection; import java.util.LinkedHashSet; import java.util.Set; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.eventbus.clients.DelegatingClient; -import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.gui.components.InputComponent; import mightypork.gamecore.input.events.MouseButtonEvent; import mightypork.gamecore.input.events.MouseButtonHandler; @@ -14,10 +15,9 @@ import mightypork.gamecore.render.Render; import mightypork.gamecore.util.math.Easing; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; -import mightypork.gamecore.util.math.constraints.vect.Vect; import mightypork.gamecore.util.math.timing.TimedTask; +import mightypork.gamecore.util.math.timing.Updateable; +import mightypork.gamecore.util.math.timing.animation.NumAnimated; import mightypork.rogue.world.PlayerControl; import mightypork.rogue.world.World; import mightypork.rogue.world.WorldProvider; diff --git a/src/mightypork/rogue/world/gui/Minimap.java b/src/mightypork/rogue/world/gui/Minimap.java index 76fa722..5a81134 100644 --- a/src/mightypork/rogue/world/gui/Minimap.java +++ b/src/mightypork/rogue/world/gui/Minimap.java @@ -1,6 +1,10 @@ package mightypork.rogue.world.gui; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.mutable.RectMutable; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.gui.components.InputComponent; import mightypork.gamecore.input.events.MouseButtonEvent; import mightypork.gamecore.input.events.MouseButtonHandler; @@ -8,10 +12,6 @@ import mightypork.gamecore.render.Render; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.mutable.RectMutable; -import mightypork.gamecore.util.math.constraints.vect.Vect; import mightypork.rogue.Const; import mightypork.rogue.world.PlayerFacade; import mightypork.rogue.world.WorldProvider; diff --git a/src/mightypork/rogue/world/gui/WorldConsoleRenderer.java b/src/mightypork/rogue/world/gui/WorldConsoleRenderer.java index 05642ec..3419f9f 100644 --- a/src/mightypork/rogue/world/gui/WorldConsoleRenderer.java +++ b/src/mightypork/rogue/world/gui/WorldConsoleRenderer.java @@ -4,6 +4,9 @@ package mightypork.rogue.world.gui; import java.util.Collection; import java.util.ConcurrentModificationException; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.num.mutable.NumVar; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.components.BaseComponent; import mightypork.gamecore.logging.Log; @@ -13,9 +16,6 @@ import mightypork.gamecore.util.math.Calc; import mightypork.gamecore.util.math.Easing; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.RGB; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.mutable.NumVar; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.rogue.world.WorldConsole; import mightypork.rogue.world.WorldProvider; diff --git a/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java b/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java index 572daca..582d9b0 100644 --- a/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java +++ b/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java @@ -5,9 +5,9 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.core.Config; import mightypork.gamecore.eventbus.clients.DelegatingClient; -import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.input.InputSystem; import mightypork.gamecore.input.KeyBindingPool; import mightypork.gamecore.input.KeyStroke; @@ -15,7 +15,7 @@ import mightypork.gamecore.input.KeyStroke.Edge; import mightypork.gamecore.input.Keys; import mightypork.gamecore.util.math.algo.Move; import mightypork.gamecore.util.math.algo.Moves; -import mightypork.gamecore.util.math.constraints.vect.Vect; +import mightypork.gamecore.util.math.timing.Updateable; import mightypork.rogue.world.entity.impl.EntityPlayer; import mightypork.rogue.world.events.PlayerStepEndListener; import mightypork.rogue.world.gui.MapView; diff --git a/src/mightypork/rogue/world/gui/interaction/MIPMouse.java b/src/mightypork/rogue/world/gui/interaction/MIPMouse.java index 1d8b609..a4f14c1 100644 --- a/src/mightypork/rogue/world/gui/interaction/MIPMouse.java +++ b/src/mightypork/rogue/world/gui/interaction/MIPMouse.java @@ -1,13 +1,13 @@ package mightypork.rogue.world.gui.interaction; -import mightypork.gamecore.eventbus.events.Updateable; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.input.InputSystem; import mightypork.gamecore.util.math.Calc.Deg; import mightypork.gamecore.util.math.Polar; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.algo.Moves; -import mightypork.gamecore.util.math.constraints.vect.Vect; +import mightypork.gamecore.util.math.timing.Updateable; import mightypork.rogue.world.entity.impl.EntityPlayer; import mightypork.rogue.world.events.PlayerStepEndListener; import mightypork.rogue.world.gui.MapView; diff --git a/src/mightypork/rogue/world/gui/interaction/MapInteractionPlugin.java b/src/mightypork/rogue/world/gui/interaction/MapInteractionPlugin.java index 8b9b9d3..42eb2a8 100644 --- a/src/mightypork/rogue/world/gui/interaction/MapInteractionPlugin.java +++ b/src/mightypork/rogue/world/gui/interaction/MapInteractionPlugin.java @@ -1,7 +1,7 @@ package mightypork.rogue.world.gui.interaction; -import mightypork.gamecore.util.math.constraints.vect.Vect; +import mightypork.dynmath.vect.Vect; import mightypork.rogue.world.PlayerFacade; import mightypork.rogue.world.World; import mightypork.rogue.world.WorldProvider; diff --git a/src/mightypork/rogue/world/item/Item.java b/src/mightypork/rogue/world/item/Item.java index 502bd84..8767e8b 100644 --- a/src/mightypork/rogue/world/item/Item.java +++ b/src/mightypork/rogue/world/item/Item.java @@ -1,10 +1,10 @@ package mightypork.rogue.world.item; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.logging.Log; import mightypork.gamecore.util.annot.DefaultImpl; import mightypork.gamecore.util.math.Calc; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.ion.IonBundle; import mightypork.ion.IonObjBundled; import mightypork.rogue.world.PlayerFacade; diff --git a/src/mightypork/rogue/world/item/ItemRenderer.java b/src/mightypork/rogue/world/item/ItemRenderer.java index a3d9ba7..511abda 100644 --- a/src/mightypork/rogue/world/item/ItemRenderer.java +++ b/src/mightypork/rogue/world/item/ItemRenderer.java @@ -1,7 +1,7 @@ package mightypork.rogue.world.item; -import mightypork.gamecore.util.math.constraints.rect.Rect; +import mightypork.dynmath.rect.Rect; public abstract class ItemRenderer { diff --git a/src/mightypork/rogue/world/item/render/QuadItemRenderer.java b/src/mightypork/rogue/world/item/render/QuadItemRenderer.java index e9003d6..66dd319 100644 --- a/src/mightypork/rogue/world/item/render/QuadItemRenderer.java +++ b/src/mightypork/rogue/world/item/render/QuadItemRenderer.java @@ -1,9 +1,9 @@ package mightypork.rogue.world.item.render; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.render.Render; import mightypork.gamecore.resources.textures.TxQuad; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.rogue.world.item.Item; import mightypork.rogue.world.item.ItemRenderer; diff --git a/src/mightypork/rogue/world/level/Level.java b/src/mightypork/rogue/world/level/Level.java index 75912a5..c0cea5a 100644 --- a/src/mightypork/rogue/world/level/Level.java +++ b/src/mightypork/rogue/world/level/Level.java @@ -4,19 +4,19 @@ package mightypork.rogue.world.level; import java.io.IOException; import java.util.*; +import mightypork.dynmath.vect.Vect; import mightypork.gamecore.eventbus.BusAccess; import mightypork.gamecore.eventbus.EventBus; import mightypork.gamecore.eventbus.clients.DelegatingClient; import mightypork.gamecore.eventbus.clients.ToggleableClient; -import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.logging.Log; import mightypork.gamecore.util.math.Calc; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.algo.Move; import mightypork.gamecore.util.math.algo.Moves; import mightypork.gamecore.util.math.algo.floodfill.FloodFill; -import mightypork.gamecore.util.math.constraints.vect.Vect; import mightypork.gamecore.util.math.noise.NoiseGen; +import mightypork.gamecore.util.math.timing.Updateable; import mightypork.ion.IonBundle; import mightypork.ion.IonInput; import mightypork.ion.IonObjBinary; diff --git a/src/mightypork/rogue/world/level/render/EntityRenderContext.java b/src/mightypork/rogue/world/level/render/EntityRenderContext.java index 16c06bd..f2e8636 100644 --- a/src/mightypork/rogue/world/level/render/EntityRenderContext.java +++ b/src/mightypork/rogue/world/level/render/EntityRenderContext.java @@ -1,7 +1,7 @@ package mightypork.rogue.world.level.render; -import mightypork.gamecore.util.math.constraints.rect.Rect; +import mightypork.dynmath.rect.Rect; import mightypork.rogue.world.level.Level; diff --git a/src/mightypork/rogue/world/level/render/MapRenderContext.java b/src/mightypork/rogue/world/level/render/MapRenderContext.java index 0e9b28c..3b092f0 100644 --- a/src/mightypork/rogue/world/level/render/MapRenderContext.java +++ b/src/mightypork/rogue/world/level/render/MapRenderContext.java @@ -1,9 +1,9 @@ package mightypork.rogue.world.level.render; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.builders.TiledRect; import mightypork.gamecore.util.math.algo.Coord; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.builders.TiledRect; import mightypork.rogue.world.level.Level; import mightypork.rogue.world.tile.Tile; diff --git a/src/mightypork/rogue/world/level/render/TileRenderContext.java b/src/mightypork/rogue/world/level/render/TileRenderContext.java index e045909..8b86ac5 100644 --- a/src/mightypork/rogue/world/level/render/TileRenderContext.java +++ b/src/mightypork/rogue/world/level/render/TileRenderContext.java @@ -1,10 +1,10 @@ package mightypork.rogue.world.level.render; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.proxy.RectBound; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.algo.Move; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBound; import mightypork.gamecore.util.math.noise.NoiseGen; import mightypork.rogue.world.level.Level; import mightypork.rogue.world.tile.Tile; diff --git a/src/mightypork/rogue/world/tile/DroppedItemRenderer.java b/src/mightypork/rogue/world/tile/DroppedItemRenderer.java index 0acfee6..86b4719 100644 --- a/src/mightypork/rogue/world/tile/DroppedItemRenderer.java +++ b/src/mightypork/rogue/world/tile/DroppedItemRenderer.java @@ -3,13 +3,13 @@ package mightypork.rogue.world.tile; import java.util.Collection; +import mightypork.dynmath.num.Num; +import mightypork.dynmath.num.proxy.NumBoundAdapter; +import mightypork.dynmath.rect.Rect; +import mightypork.dynmath.rect.proxy.RectBoundAdapter; import mightypork.gamecore.util.math.Easing; -import mightypork.gamecore.util.math.constraints.num.Num; -import mightypork.gamecore.util.math.constraints.num.proxy.NumBoundAdapter; -import mightypork.gamecore.util.math.constraints.rect.Rect; -import mightypork.gamecore.util.math.constraints.rect.proxy.RectBoundAdapter; -import mightypork.gamecore.util.math.timing.Animator; -import mightypork.gamecore.util.math.timing.AnimatorBounce; +import mightypork.gamecore.util.math.timing.animation.Animator; +import mightypork.gamecore.util.math.timing.animation.AnimatorBounce; import mightypork.rogue.world.item.Item; import mightypork.rogue.world.level.render.TileRenderContext; diff --git a/src/mightypork/rogue/world/tile/TileRenderer.java b/src/mightypork/rogue/world/tile/TileRenderer.java index dd6a4b6..5daac34 100644 --- a/src/mightypork/rogue/world/tile/TileRenderer.java +++ b/src/mightypork/rogue/world/tile/TileRenderer.java @@ -1,13 +1,13 @@ package mightypork.rogue.world.tile; -import mightypork.gamecore.eventbus.events.Updateable; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.render.Render; import mightypork.gamecore.resources.Res; import mightypork.gamecore.resources.textures.TxQuad; import mightypork.gamecore.util.annot.DefaultImpl; import mightypork.gamecore.util.math.algo.Moves; -import mightypork.gamecore.util.math.constraints.rect.Rect; +import mightypork.gamecore.util.math.timing.Updateable; import mightypork.rogue.world.level.render.TileRenderContext; import mightypork.rogue.world.tile.render.NullTileRenderer; diff --git a/src/mightypork/rogue/world/tile/render/BasicTileRenderer.java b/src/mightypork/rogue/world/tile/render/BasicTileRenderer.java index 63d4db0..c280f70 100644 --- a/src/mightypork/rogue/world/tile/render/BasicTileRenderer.java +++ b/src/mightypork/rogue/world/tile/render/BasicTileRenderer.java @@ -1,9 +1,9 @@ package mightypork.rogue.world.tile.render; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.render.Render; import mightypork.gamecore.resources.textures.TxSheet; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.rogue.world.level.render.TileRenderContext; import mightypork.rogue.world.tile.Tile; import mightypork.rogue.world.tile.TileRenderer; diff --git a/src/mightypork/rogue/world/tile/render/DoorTileRenderer.java b/src/mightypork/rogue/world/tile/render/DoorTileRenderer.java index ce2c737..b3398e6 100644 --- a/src/mightypork/rogue/world/tile/render/DoorTileRenderer.java +++ b/src/mightypork/rogue/world/tile/render/DoorTileRenderer.java @@ -1,9 +1,9 @@ package mightypork.rogue.world.tile.render; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.render.Render; import mightypork.gamecore.resources.textures.TxSheet; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.gamecore.util.math.timing.TimedTask; import mightypork.rogue.world.level.render.TileRenderContext; import mightypork.rogue.world.tile.TileRenderer; diff --git a/src/mightypork/rogue/world/tile/render/TwoHighTileRenderer.java b/src/mightypork/rogue/world/tile/render/TwoHighTileRenderer.java index 3343d3c..096edb5 100644 --- a/src/mightypork/rogue/world/tile/render/TwoHighTileRenderer.java +++ b/src/mightypork/rogue/world/tile/render/TwoHighTileRenderer.java @@ -1,9 +1,9 @@ package mightypork.rogue.world.tile.render; +import mightypork.dynmath.rect.Rect; import mightypork.gamecore.render.Render; import mightypork.gamecore.resources.textures.TxQuad; -import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.rogue.world.level.render.TileRenderContext; import mightypork.rogue.world.tile.Tile; import mightypork.rogue.world.tile.TileRenderer;