Package moves, new fn in Rect, new bound adapters
This commit is contained in:
@@ -6,7 +6,7 @@ import java.io.IOException;
|
|||||||
import mightypork.gamecore.loading.DeferredResource;
|
import mightypork.gamecore.loading.DeferredResource;
|
||||||
import mightypork.utils.annotations.Alias;
|
import mightypork.utils.annotations.Alias;
|
||||||
import mightypork.utils.files.FileUtils;
|
import mightypork.utils.files.FileUtils;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
import org.newdawn.slick.openal.Audio;
|
import org.newdawn.slick.openal.Audio;
|
||||||
import org.newdawn.slick.openal.SoundStore;
|
import org.newdawn.slick.openal.SoundStore;
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ import mightypork.gamecore.control.bus.clients.RootBusNode;
|
|||||||
import mightypork.gamecore.control.bus.events.ResourceLoadRequest;
|
import mightypork.gamecore.control.bus.events.ResourceLoadRequest;
|
||||||
import mightypork.gamecore.control.timing.Updateable;
|
import mightypork.gamecore.control.timing.Updateable;
|
||||||
import mightypork.utils.math.Calc.Buffers;
|
import mightypork.utils.math.Calc.Buffers;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectVar;
|
import mightypork.utils.math.constraints.vect.VectVar;
|
||||||
|
|
||||||
import org.lwjgl.openal.AL;
|
import org.lwjgl.openal.AL;
|
||||||
import org.lwjgl.openal.AL10;
|
import org.lwjgl.openal.AL10;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package mightypork.gamecore.audio.players;
|
|||||||
|
|
||||||
import mightypork.gamecore.audio.DeferredAudio;
|
import mightypork.gamecore.audio.DeferredAudio;
|
||||||
import mightypork.gamecore.audio.Volume;
|
import mightypork.gamecore.audio.Volume;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package mightypork.gamecore.control.bus.events;
|
|||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.constraints.RectBound;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ package mightypork.gamecore.control.bus.events;
|
|||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.control.bus.events.types.UnloggedEvent;
|
import mightypork.gamecore.control.bus.events.types.UnloggedEvent;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectConst;
|
import mightypork.utils.math.constraints.vect.VectConst;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package mightypork.gamecore.control.bus.events;
|
package mightypork.gamecore.control.bus.events;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ package mightypork.gamecore.gui.components;
|
|||||||
import mightypork.gamecore.control.AppAccess;
|
import mightypork.gamecore.control.AppAccess;
|
||||||
import mightypork.gamecore.control.AppSubModule;
|
import mightypork.gamecore.control.AppSubModule;
|
||||||
import mightypork.utils.math.constraints.RectBound;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
|
|
||||||
|
|
||||||
public abstract class AbstractComponent extends AppSubModule implements PluggableRenderable {
|
public abstract class AbstractComponent extends AppSubModule implements PluggableRenderable {
|
||||||
@@ -18,7 +18,7 @@ public abstract class AbstractComponent extends AppSubModule implements Pluggabl
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setContext(RectBound context)
|
public void setRect(RectBound context)
|
||||||
{
|
{
|
||||||
this.context = context;
|
this.context = context;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package mightypork.gamecore.gui.components;
|
|||||||
|
|
||||||
import mightypork.utils.math.constraints.PluggableRectBound;
|
import mightypork.utils.math.constraints.PluggableRectBound;
|
||||||
import mightypork.utils.math.constraints.RectBound;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -22,6 +22,6 @@ public interface PluggableRenderable extends Renderable, PluggableRectBound {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void setContext(RectBound rect);
|
void setRect(RectBound rect);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public abstract class AbstractLayout extends AbstractComponent {
|
|||||||
*/
|
*/
|
||||||
public AbstractLayout(AppAccess app, RectBound context) {
|
public AbstractLayout(AppAccess app, RectBound context) {
|
||||||
super(app);
|
super(app);
|
||||||
setContext(context);
|
setRect(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class ColumnHolder extends AbstractLayout {
|
|||||||
{
|
{
|
||||||
if (elem == null) return;
|
if (elem == null) return;
|
||||||
|
|
||||||
elem.setContext(column(this, cols, col++));
|
elem.setRect(column(this, cols, col++));
|
||||||
|
|
||||||
attach(elem);
|
attach(elem);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class RowHolder extends AbstractLayout {
|
|||||||
{
|
{
|
||||||
if (elem == null) return;
|
if (elem == null) return;
|
||||||
|
|
||||||
elem.setContext(row(this, rows, row++));
|
elem.setRect(row(this, rows, row++));
|
||||||
|
|
||||||
attach(elem);
|
attach(elem);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ package mightypork.gamecore.gui.components.painters;
|
|||||||
import mightypork.gamecore.gui.components.PluggableRenderable;
|
import mightypork.gamecore.gui.components.PluggableRenderable;
|
||||||
import mightypork.gamecore.gui.components.Renderable;
|
import mightypork.gamecore.gui.components.Renderable;
|
||||||
import mightypork.utils.math.constraints.RectBound;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
import mightypork.utils.math.constraints.RectBoundAdapter;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.RectBoundAdapter;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -27,8 +27,8 @@ public abstract class AbstractPainter extends RectBoundAdapter implements Plugga
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setContext(RectBound rect)
|
public void setRect(RectBound rect)
|
||||||
{
|
{
|
||||||
super.setContext(rect);
|
super.setRect(rect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import mightypork.gamecore.render.fonts.FontRenderer;
|
|||||||
import mightypork.gamecore.render.fonts.FontRenderer.Align;
|
import mightypork.gamecore.render.fonts.FontRenderer.Align;
|
||||||
import mightypork.gamecore.render.fonts.GLFont;
|
import mightypork.gamecore.render.fonts.GLFont;
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectVar;
|
import mightypork.utils.math.constraints.vect.VectVar;
|
||||||
import mightypork.utils.string.StringProvider;
|
import mightypork.utils.string.StringProvider;
|
||||||
import mightypork.utils.string.StringProvider.StringWrapper;
|
import mightypork.utils.string.StringProvider.StringWrapper;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import java.util.Collection;
|
|||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
import mightypork.gamecore.control.AppAccess;
|
import mightypork.gamecore.control.AppAccess;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import mightypork.gamecore.input.KeyStroke;
|
|||||||
import mightypork.gamecore.render.Render;
|
import mightypork.gamecore.render.Render;
|
||||||
import mightypork.utils.annotations.DefaultImpl;
|
import mightypork.utils.annotations.DefaultImpl;
|
||||||
import mightypork.utils.math.constraints.RectBound;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import mightypork.gamecore.input.KeyBindingPool;
|
|||||||
import mightypork.gamecore.input.KeyStroke;
|
import mightypork.gamecore.input.KeyStroke;
|
||||||
import mightypork.utils.annotations.DefaultImpl;
|
import mightypork.utils.annotations.DefaultImpl;
|
||||||
import mightypork.utils.math.constraints.RectBound;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import mightypork.gamecore.control.bus.events.MouseMotionEvent;
|
|||||||
import mightypork.gamecore.control.timing.Updateable;
|
import mightypork.gamecore.control.timing.Updateable;
|
||||||
import mightypork.rogue.events.ActionRequest;
|
import mightypork.rogue.events.ActionRequest;
|
||||||
import mightypork.rogue.events.ActionRequest.RequestType;
|
import mightypork.rogue.events.ActionRequest.RequestType;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectVar;
|
import mightypork.utils.math.constraints.vect.VectVar;
|
||||||
|
|
||||||
import org.lwjgl.LWJGLException;
|
import org.lwjgl.LWJGLException;
|
||||||
import org.lwjgl.input.Keyboard;
|
import org.lwjgl.input.Keyboard;
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import mightypork.gamecore.control.bus.events.ScreenChangeEvent;
|
|||||||
import mightypork.gamecore.control.timing.FpsMeter;
|
import mightypork.gamecore.control.timing.FpsMeter;
|
||||||
import mightypork.utils.logging.Log;
|
import mightypork.utils.logging.Log;
|
||||||
import mightypork.utils.math.constraints.RectBound;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
import org.lwjgl.BufferUtils;
|
import org.lwjgl.BufferUtils;
|
||||||
import org.lwjgl.LWJGLException;
|
import org.lwjgl.LWJGLException;
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import mightypork.gamecore.render.textures.TxQuad;
|
|||||||
import mightypork.utils.files.FileUtils;
|
import mightypork.utils.files.FileUtils;
|
||||||
import mightypork.utils.logging.Log;
|
import mightypork.utils.logging.Log;
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectConst;
|
import mightypork.utils.math.constraints.vect.VectConst;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
import org.newdawn.slick.opengl.Texture;
|
import org.newdawn.slick.opengl.Texture;
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ package mightypork.gamecore.render.fonts;
|
|||||||
|
|
||||||
import mightypork.gamecore.render.Render;
|
import mightypork.gamecore.render.Render;
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectVar;
|
import mightypork.utils.math.constraints.vect.VectVar;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package mightypork.gamecore.render.fonts;
|
|||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import mightypork.gamecore.render.fonts.GLFont;
|
|||||||
import mightypork.gamecore.render.textures.FilterMode;
|
import mightypork.gamecore.render.textures.FilterMode;
|
||||||
import mightypork.utils.logging.Log;
|
import mightypork.utils.logging.Log;
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.vect.VectConst;
|
import mightypork.utils.math.constraints.vect.VectConst;
|
||||||
|
|
||||||
import org.lwjgl.BufferUtils;
|
import org.lwjgl.BufferUtils;
|
||||||
import org.lwjgl.util.glu.GLU;
|
import org.lwjgl.util.glu.GLU;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import mightypork.gamecore.render.textures.FilterMode;
|
|||||||
import mightypork.utils.annotations.Alias;
|
import mightypork.utils.annotations.Alias;
|
||||||
import mightypork.utils.files.FileUtils;
|
import mightypork.utils.files.FileUtils;
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ package mightypork.gamecore.render.fonts.impl;
|
|||||||
import mightypork.gamecore.render.fonts.GLFont;
|
import mightypork.gamecore.render.fonts.GLFont;
|
||||||
import mightypork.utils.logging.Log;
|
import mightypork.utils.logging.Log;
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import mightypork.gamecore.loading.DeferredResource;
|
|||||||
import mightypork.gamecore.loading.MustLoadInMainThread;
|
import mightypork.gamecore.loading.MustLoadInMainThread;
|
||||||
import mightypork.gamecore.render.Render;
|
import mightypork.gamecore.render.Render;
|
||||||
import mightypork.utils.annotations.Alias;
|
import mightypork.utils.annotations.Alias;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
import org.newdawn.slick.opengl.Texture;
|
import org.newdawn.slick.opengl.Texture;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import java.util.HashMap;
|
|||||||
import mightypork.gamecore.control.AppAccess;
|
import mightypork.gamecore.control.AppAccess;
|
||||||
import mightypork.gamecore.control.AppAdapter;
|
import mightypork.gamecore.control.AppAdapter;
|
||||||
import mightypork.gamecore.control.bus.events.ResourceLoadRequest;
|
import mightypork.gamecore.control.bus.events.ResourceLoadRequest;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
|
|
||||||
import org.newdawn.slick.opengl.Texture;
|
import org.newdawn.slick.opengl.Texture;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package mightypork.gamecore.render.textures;
|
package mightypork.gamecore.render.textures;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
import mightypork.utils.math.rect.RectConst;
|
import mightypork.utils.math.constraints.rect.RectConst;
|
||||||
|
|
||||||
import org.newdawn.slick.opengl.Texture;
|
import org.newdawn.slick.opengl.Texture;
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import mightypork.gamecore.render.fonts.GLFont;
|
|||||||
import mightypork.rogue.Res;
|
import mightypork.rogue.Res;
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.constraints.RectBound;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.string.StringProvider;
|
import mightypork.utils.string.StringProvider;
|
||||||
|
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ public class LayerFps extends ScreenLayer {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
tp.setContext(constraint);
|
tp.setRect(constraint);
|
||||||
|
|
||||||
tp.setShadow(RGB.BLACK, Vect.ONE);
|
tp.setShadow(RGB.BLACK, Vect.ONE);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import mightypork.gamecore.render.Render;
|
|||||||
import mightypork.utils.math.animation.AnimDouble;
|
import mightypork.utils.math.animation.AnimDouble;
|
||||||
import mightypork.utils.math.animation.Easing;
|
import mightypork.utils.math.animation.Easing;
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.constraints.NumBound;
|
|
||||||
import mightypork.utils.math.constraints.RectBound;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
|
import mightypork.utils.math.constraints.num.NumBound;
|
||||||
|
|
||||||
|
|
||||||
public class BouncyBox extends AbstractPainter implements Updateable {
|
public class BouncyBox extends AbstractPainter implements Updateable {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import mightypork.gamecore.render.fonts.FontRenderer.Align;
|
|||||||
import mightypork.rogue.Res;
|
import mightypork.rogue.Res;
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.constraints.RectBound;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
import mightypork.utils.math.vect.VectConst;
|
import mightypork.utils.math.constraints.vect.VectConst;
|
||||||
|
|
||||||
|
|
||||||
public class LayerBouncyBoxes extends ScreenLayer {
|
public class LayerBouncyBoxes extends ScreenLayer {
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ import mightypork.rogue.Res;
|
|||||||
import mightypork.utils.math.animation.AnimDouble;
|
import mightypork.utils.math.animation.AnimDouble;
|
||||||
import mightypork.utils.math.animation.Easing;
|
import mightypork.utils.math.animation.Easing;
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.num.Num;
|
import mightypork.utils.math.constraints.num.Num;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectAnimated;
|
import mightypork.utils.math.constraints.vect.VectAnimated;
|
||||||
|
|
||||||
|
|
||||||
public class LayerFlyingCat extends ScreenLayer implements Updateable, MouseButtonEvent.Listener {
|
public class LayerFlyingCat extends ScreenLayer implements Updateable, MouseButtonEvent.Listener {
|
||||||
@@ -43,7 +43,7 @@ public class LayerFlyingCat extends ScreenLayer implements Updateable, MouseButt
|
|||||||
|
|
||||||
cat = new ImagePainter(Res.getTxQuad("test.kitten"));
|
cat = new ImagePainter(Res.getTxQuad("test.kitten"));
|
||||||
|
|
||||||
cat.setContext(Rect.make(size, size).centerTo(pos));
|
cat.setRect(Rect.make(size, size).centerTo(pos));
|
||||||
|
|
||||||
tp = new TextPainter(Res.getFont("default"));
|
tp = new TextPainter(Res.getFont("default"));
|
||||||
tp.setAlign(Align.CENTER);
|
tp.setAlign(Align.CENTER);
|
||||||
@@ -51,11 +51,11 @@ public class LayerFlyingCat extends ScreenLayer implements Updateable, MouseButt
|
|||||||
tp.setText("Meow!");
|
tp.setText("Meow!");
|
||||||
tp.setShadow(RGB.dark(0.8), Vect.make(2, 2));
|
tp.setShadow(RGB.dark(0.8), Vect.make(2, 2));
|
||||||
|
|
||||||
tp.setContext(Rect.make(64, 64).centerTo(mouse()));
|
tp.setRect(Rect.make(64, 64).centerTo(mouse()));
|
||||||
|
|
||||||
qp = QuadPainter.gradV(RGB.YELLOW, RGB.RED);
|
qp = QuadPainter.gradV(RGB.YELLOW, RGB.RED);
|
||||||
|
|
||||||
qp.setContext(cat.getRect().bottomLeft().expand(size.half(), Num.ZERO, Num.ZERO, size.half()));
|
qp.setRect(cat.getRect().bottomLeft().expand(size.half(), Num.ZERO, Num.ZERO, size.half()));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Register keys
|
* Register keys
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import mightypork.gamecore.gui.screens.Screen;
|
|||||||
import mightypork.gamecore.render.fonts.FontRenderer.Align;
|
import mightypork.gamecore.render.fonts.FontRenderer.Align;
|
||||||
import mightypork.rogue.Res;
|
import mightypork.rogue.Res;
|
||||||
import mightypork.utils.math.color.RGB;
|
import mightypork.utils.math.color.RGB;
|
||||||
import mightypork.utils.math.num.Num;
|
import mightypork.utils.math.constraints.num.Num;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
|
|
||||||
|
|
||||||
public class ScreenTestFont extends Screen {
|
public class ScreenTestFont extends Screen {
|
||||||
@@ -25,7 +25,7 @@ public class ScreenTestFont extends Screen {
|
|||||||
final Num h = bounds().height().mul(0.1);
|
final Num h = bounds().height().mul(0.1);
|
||||||
final Rect strbox = Rect.make(Num.ZERO, h).centerTo(bounds());
|
final Rect strbox = Rect.make(Num.ZERO, h).centerTo(bounds());
|
||||||
|
|
||||||
tp.setContext(strbox);
|
tp.setRect(strbox);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ package mightypork.test;
|
|||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import mightypork.utils.math.num.Num;
|
import mightypork.utils.math.constraints.num.Num;
|
||||||
import mightypork.utils.math.num.NumVar;
|
import mightypork.utils.math.constraints.num.NumVar;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
import mightypork.utils.math.rect.RectConst;
|
import mightypork.utils.math.constraints.rect.RectConst;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectConst;
|
import mightypork.utils.math.constraints.vect.VectConst;
|
||||||
import mightypork.utils.math.vect.VectVar;
|
import mightypork.utils.math.constraints.vect.VectVar;
|
||||||
|
|
||||||
|
|
||||||
public class TestConstr {
|
public class TestConstr {
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package mightypork.test;
|
package mightypork.test;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.num.Num;
|
import mightypork.utils.math.constraints.num.Num;
|
||||||
import mightypork.utils.math.num.NumVar;
|
import mightypork.utils.math.constraints.num.NumVar;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectVar;
|
import mightypork.utils.math.constraints.vect.VectVar;
|
||||||
|
|
||||||
|
|
||||||
public class TestCoords {
|
public class TestCoords {
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package mightypork.test;
|
package mightypork.test;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectConst;
|
import mightypork.utils.math.constraints.vect.VectConst;
|
||||||
import mightypork.utils.math.vect.VectVar;
|
import mightypork.utils.math.constraints.vect.VectVar;
|
||||||
|
|
||||||
|
|
||||||
public class TestVec {
|
public class TestVec {
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import java.util.Map.Entry;
|
|||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
import mightypork.utils.math.Range;
|
import mightypork.utils.math.Range;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectConst;
|
import mightypork.utils.math.constraints.vect.VectConst;
|
||||||
import mightypork.utils.objects.Convert;
|
import mightypork.utils.objects.Convert;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import java.util.List;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import mightypork.utils.math.animation.Easing;
|
import mightypork.utils.math.animation.Easing;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
import org.lwjgl.BufferUtils;
|
import org.lwjgl.BufferUtils;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package mightypork.utils.math;
|
|||||||
|
|
||||||
import mightypork.utils.math.Calc.Deg;
|
import mightypork.utils.math.Calc.Deg;
|
||||||
import mightypork.utils.math.Calc.Rad;
|
import mightypork.utils.math.Calc.Rad;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ package mightypork.utils.math.animation;
|
|||||||
import mightypork.gamecore.control.timing.Pauseable;
|
import mightypork.gamecore.control.timing.Pauseable;
|
||||||
import mightypork.gamecore.control.timing.Updateable;
|
import mightypork.gamecore.control.timing.Updateable;
|
||||||
import mightypork.utils.math.Calc;
|
import mightypork.utils.math.Calc;
|
||||||
import mightypork.utils.math.num.NumMutable;
|
import mightypork.utils.math.constraints.num.NumMutable;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,970 +0,0 @@
|
|||||||
package mightypork.utils.math.constraints;
|
|
||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.control.timing.Poller;
|
|
||||||
import mightypork.utils.math.num.Num;
|
|
||||||
import mightypork.utils.math.num.Num;
|
|
||||||
import mightypork.utils.math.rect.Rect;
|
|
||||||
import mightypork.utils.math.rect.RectVal;
|
|
||||||
import mightypork.utils.math.rect.RectView;
|
|
||||||
import mightypork.utils.math.rect.RectView;
|
|
||||||
import mightypork.utils.math.vect.Vect;
|
|
||||||
import mightypork.utils.math.vect.VectAdapter;
|
|
||||||
import mightypork.utils.math.vect.VectVal;
|
|
||||||
import mightypork.utils.math.vect.Vect;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constraint factory.<br>
|
|
||||||
* Import statically for best experience.
|
|
||||||
*
|
|
||||||
* @author MightyPork
|
|
||||||
*/
|
|
||||||
public class ConstraintFactory {
|
|
||||||
|
|
||||||
public static RectCache cached(final Poller poller, final RectBound rc)
|
|
||||||
{
|
|
||||||
return new RectCache(poller, rc);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert {@link Number} to {@link NumBound} if needed
|
|
||||||
*
|
|
||||||
* @param o unknown numeric value
|
|
||||||
* @return converted
|
|
||||||
*/
|
|
||||||
private static NumBound toNumberBound(final Object o)
|
|
||||||
{
|
|
||||||
if (o instanceof NumBound) return (NumBound) o;
|
|
||||||
|
|
||||||
if (o instanceof Number) return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return ((Number) o).doubleValue();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
throw new IllegalArgumentException("Invalid numeric type.");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert {@link Number} or {@link NumBound} to double (current value)
|
|
||||||
*
|
|
||||||
* @param o unknown numeric value
|
|
||||||
* @return double value
|
|
||||||
*/
|
|
||||||
private static double eval(final Object o)
|
|
||||||
{
|
|
||||||
return o == null ? 0 : toNumberBound(o).getNum().value();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert as {@link VectBound} to a {@link Vect}
|
|
||||||
*
|
|
||||||
* @param vectBound vect bound
|
|
||||||
* @return contained vect
|
|
||||||
*/
|
|
||||||
private static Vect eval(final VectBound vectBound)
|
|
||||||
{
|
|
||||||
return vectBound == null ? Vect.ZERO : vectBound.getVect();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert a {@link RectBound} to a {@link Rect}
|
|
||||||
*
|
|
||||||
* @param rectBound rect bound
|
|
||||||
* @return contained rect
|
|
||||||
*/
|
|
||||||
private static RectView eval(final RectBound rectBound)
|
|
||||||
{
|
|
||||||
return rectBound == null ? Rect.ZERO : rectBound.getRect();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num min(final Object a, final Object b)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return Math.min(eval(a), eval(b));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num max(final Object a, final Object b)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return Math.max(eval(a), eval(b));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num abs(final NumBound a)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return Math.abs(a.value());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num half(final NumBound a)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return a.value() / 2;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num round(final NumBound a)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return Math.round(a.value());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound round(final RectBound r)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).round();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num ceil(final NumBound a)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return Math.ceil(a.value());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num floor(final NumBound a)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return Math.floor(a.value());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num neg(final NumBound a)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return -a.value();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num add(final Object a, final Object b)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return eval(a) + eval(b);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num sub(final Object a, final Object b)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return eval(a) - eval(b);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num mul(final Object a, final Object b)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return eval(a) * eval(b);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num half(final Object a)
|
|
||||||
{
|
|
||||||
return mul(a, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num div(final Object a, final Object b)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return eval(a) / eval(b);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num perc(final Object whole, final Object percent)
|
|
||||||
{
|
|
||||||
return new Num() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double value()
|
|
||||||
{
|
|
||||||
return eval(whole) * (eval(percent) / 100);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound row(final RectBound r, final int rows, final int index)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
RectView rv = eval(r);
|
|
||||||
|
|
||||||
final double height = rv.height();
|
|
||||||
final double perRow = height / rows;
|
|
||||||
|
|
||||||
final VectVal origin = rv.origin().add(0, perRow * index);
|
|
||||||
final VectVal size = rv.size().setY(perRow);
|
|
||||||
|
|
||||||
return RectVal.make(origin, size);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound column(final RectBound r, final int columns, final int index)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
RectView rv = eval(r);
|
|
||||||
|
|
||||||
final double width = rv.width();
|
|
||||||
final double perCol = width / columns;
|
|
||||||
|
|
||||||
final VectVal origin = rv.origin().add(perCol * index, 0);
|
|
||||||
final VectVal size = rv.size().setX(perCol);
|
|
||||||
|
|
||||||
return RectVal.make(origin, size);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound tile(final RectBound r, final int rows, final int cols, final int left, final int top)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
RectView rv = eval(r);
|
|
||||||
|
|
||||||
final double height = rv.height();
|
|
||||||
final double width = rv.height();
|
|
||||||
final double perRow = height / rows;
|
|
||||||
final double perCol = width / cols;
|
|
||||||
|
|
||||||
final VectVal origin = rv.origin().add(perCol * left, perRow * (rows - top - 1));
|
|
||||||
|
|
||||||
return RectVal.make(origin, perCol, perRow);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound shrink(RectBound r, Object shrink)
|
|
||||||
{
|
|
||||||
return shrink(r, shrink, shrink, shrink, shrink);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound shrink(RectBound context, Object horiz, Object vert)
|
|
||||||
{
|
|
||||||
return shrink(context, horiz, vert, horiz, vert);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound shrink(final RectBound r, final Object left, final Object top, final Object right, final Object bottom)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).shrink(eval(left), eval(top), eval(right), eval(bottom));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound shrinkTop(final RectBound r, final Object shrink)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).shrink(0, eval(shrink), 0, 0);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound shrinkBottom(final RectBound r, final Object shrink)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).shrink(0, 0, 0, eval(shrink));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound shrinkLeft(final RectBound r, final Object shrink)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).shrink(eval(shrink), 0, 0, 0);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound shrinkRight(final RectBound r, final Object shrink)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).shrink(0, 0, eval(shrink), 0);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound grow(RectBound r, Object grow)
|
|
||||||
{
|
|
||||||
return grow(r, grow, grow, grow, grow);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound grow(RectBound r, Object horiz, Object vert)
|
|
||||||
{
|
|
||||||
return grow(r, horiz, vert, horiz, vert);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound grow(final RectBound r, final Object left, final Object right, final Object top, final Object bottom)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).grow(eval(left), eval(right), eval(top), eval(bottom));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound growUp(final RectBound r, final Object grow)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).grow(0, eval(grow), 0, 0);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound growDown(final RectBound r, final Object grow)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).grow(0, 0, 0, eval(grow));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound growLeft(final RectBound r, final Object grow)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).grow(eval(grow), 0, 0, 0);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound growRight(final RectBound r, final Object grow)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).grow(0, 0, eval(grow), 0);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound box(final Object side)
|
|
||||||
{
|
|
||||||
return box(side, side);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound box(final VectBound origin, final Object width, final Object height)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return RectVal.make(eval(origin), eval(width), eval(height));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound box(final Object width, final Object height)
|
|
||||||
{
|
|
||||||
return box(Vect.ZERO, width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound box(final RectBound r, final Object width, final Object height)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
final RectView origin = eval(r);
|
|
||||||
|
|
||||||
return RectVal.make(origin.x(), origin.y(), eval(width), eval(height));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound box(final RectBound r, final Object x, final Object y, final Object width, final Object height)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
final VectVal origin = eval(r).origin();
|
|
||||||
|
|
||||||
return RectVal.make(origin.x() + eval(x), origin.y() + eval(y), eval(width), eval(height));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound centerTo(final RectBound r, final RectBound centerTo)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
final VectVal size = eval(r).size();
|
|
||||||
final VectVal center = eval(centerTo).center();
|
|
||||||
|
|
||||||
return RectVal.make(center.sub(size.half()), size);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound centerTo(final RectBound r, final VectBound centerTo)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
final VectVal size = eval(r).size();
|
|
||||||
|
|
||||||
return RectVal.make(eval(centerTo).sub(size.half()), size);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound centerTo(final RectBound r, final Object x, final Object y)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
final VectVal size = eval(r).size();
|
|
||||||
final VectVal v = VectVal.make(eval(x), eval(y));
|
|
||||||
|
|
||||||
return RectVal.make(v.sub(size.half()), size);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound move(final RectBound r, final VectBound move)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).move(eval(move));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound move(final RectBound r, final Object x, final Object y)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
return eval(r).move(eval(x), eval(y));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Make a rect around coord
|
|
||||||
*
|
|
||||||
* @param c coord
|
|
||||||
* @param allSides size to grow on all sides
|
|
||||||
* @return rect constraint
|
|
||||||
*/
|
|
||||||
public static RectBound expand(final VectBound c, final Object allSides)
|
|
||||||
{
|
|
||||||
return expand(c, allSides, allSides, allSides, allSides);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Make a rect around coord
|
|
||||||
*
|
|
||||||
* @param c coord
|
|
||||||
* @param horizontal horisontal grow (left, right)
|
|
||||||
* @param vertical vertical grow (top, bottom)
|
|
||||||
* @return rect constraint
|
|
||||||
*/
|
|
||||||
public static RectBound expand(final VectBound c, final Object horizontal, final Object vertical)
|
|
||||||
{
|
|
||||||
return expand(c, horizontal, vertical, horizontal, vertical);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Make a rect around coord, growing by given amounts
|
|
||||||
*
|
|
||||||
* @param c coord
|
|
||||||
* @param top
|
|
||||||
* @param right
|
|
||||||
* @param bottom
|
|
||||||
* @param left
|
|
||||||
* @return rect constraint
|
|
||||||
*/
|
|
||||||
public static RectBound expand(final VectBound c, final Object top, final Object right, final Object bottom, final Object left)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
final double t = eval(top);
|
|
||||||
final double r = eval(right);
|
|
||||||
final double b = eval(bottom);
|
|
||||||
final double l = eval(left);
|
|
||||||
|
|
||||||
final Vect v = eval(c);
|
|
||||||
|
|
||||||
return RectVal.make(v.x() - l, v.y() - t, l + r, t + b);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound edgeLeft(final RectBound r)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
RectView v = eval(r);
|
|
||||||
|
|
||||||
return v.shrink(NumBound.ZERO, NumBound.ZERO, v.width(), NumBound.ZERO);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound edgeTop(final RectBound r)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
RectView rv = eval(r);
|
|
||||||
|
|
||||||
return rv.shrink(NumBound.ZERO,NumBound.ZERO, NumBound.ZERO, rv.height());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound edgeRight(final RectBound r)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
RectView rv = eval(r);
|
|
||||||
return rv.shrink(rv.width(), NumBound.ZERO, NumBound.ZERO, NumBound.ZERO);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static RectBound edgeBottom(final RectBound r)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
RectView rv = eval(r);
|
|
||||||
return rv.shrink(NumBound.ZERO, rv.height(), NumBound.ZERO, NumBound.ZERO);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect neg(final VectBound c)
|
|
||||||
{
|
|
||||||
return mul(c, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect half(final VectBound c)
|
|
||||||
{
|
|
||||||
return mul(c, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect add(final VectBound c1, final VectBound c2)
|
|
||||||
{
|
|
||||||
return new VectAdapter() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vect getSource()
|
|
||||||
{
|
|
||||||
return eval(c1).add(eval(c2));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect add(final VectBound c, final Object x, final Object y)
|
|
||||||
{
|
|
||||||
return add(c, x, y, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect add(final VectBound c, final Object x, final Object y, final Object z)
|
|
||||||
{
|
|
||||||
return new VectAdapter() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vect getSource()
|
|
||||||
{
|
|
||||||
return eval(c).add(eval(x), eval(y), eval(z));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect sub(final VectBound c1, final VectBound c2)
|
|
||||||
{
|
|
||||||
return new VectAdapter() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vect getSource()
|
|
||||||
{
|
|
||||||
return eval(c1).sub(eval(c2));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect sub(final VectBound c, final Object x, final Object y)
|
|
||||||
{
|
|
||||||
return sub(c, x, y, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect sub(final VectBound c, final Object x, final Object y, final Object z)
|
|
||||||
{
|
|
||||||
return new VectAdapter() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vect getSource()
|
|
||||||
{
|
|
||||||
return eval(c).sub(eval(x), eval(y), eval(z));
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect mul(final VectBound c, final Object mul)
|
|
||||||
{
|
|
||||||
return new VectAdapter() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vect getSource()
|
|
||||||
{
|
|
||||||
return eval(c).mul(eval(mul));
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect norm(final VectBound c, final Object norm)
|
|
||||||
{
|
|
||||||
return new VectAdapter() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vect getSource()
|
|
||||||
{
|
|
||||||
return eval(c).norm(eval(norm));
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect origin(final RectBound r)
|
|
||||||
{
|
|
||||||
return new VectAdapter() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vect getSource()
|
|
||||||
{
|
|
||||||
return eval(r).origin();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect size(final RectBound r)
|
|
||||||
{
|
|
||||||
return new VectAdapter() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vect getSource()
|
|
||||||
{
|
|
||||||
return eval(r).size();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num height(final RectBound r)
|
|
||||||
{
|
|
||||||
return size(r).yC();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Num width(final RectBound r)
|
|
||||||
{
|
|
||||||
return size(r).xC();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect center(final RectBound r)
|
|
||||||
{
|
|
||||||
return add(origin(r), half(size(r)));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect topLeft(final RectBound r)
|
|
||||||
{
|
|
||||||
return origin(r);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect topRight(final RectBound r)
|
|
||||||
{
|
|
||||||
return add(origin(r), width(r), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect bottomLeft(final RectBound r)
|
|
||||||
{
|
|
||||||
return add(origin(r), 0, width(r));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect bottomRight(final RectBound r)
|
|
||||||
{
|
|
||||||
return add(origin(r), size(r));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect topCenter(final RectBound r)
|
|
||||||
{
|
|
||||||
return add(origin(r), half(width(r)), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect bottomCenter(final RectBound r)
|
|
||||||
{
|
|
||||||
return add(origin(r), half(width(r)), width(r));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect centerLeft(final RectBound r)
|
|
||||||
{
|
|
||||||
return add(origin(r), 0, half(width(r)));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Vect centerRight(final RectBound r)
|
|
||||||
{
|
|
||||||
return add(origin(r), width(r), half(width(r)));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Zero-sized RectView at given coord
|
|
||||||
*
|
|
||||||
* @param c coord
|
|
||||||
* @return rect
|
|
||||||
*/
|
|
||||||
public static RectBound zeroRect(final VectBound c)
|
|
||||||
{
|
|
||||||
return new RectBound() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RectView getRect()
|
|
||||||
{
|
|
||||||
Vect cv = eval(c);
|
|
||||||
|
|
||||||
return new RectView() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vect size()
|
|
||||||
{
|
|
||||||
return Vect.ZERO;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vect origin()
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
};RectVal.make.make(cv.x(), cv.y(), 0, 0);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package mightypork.utils.math.constraints;
|
||||||
|
|
||||||
|
|
||||||
|
import mightypork.utils.math.constraints.num.NumBound;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pluggable numeric constraint
|
||||||
|
*
|
||||||
|
* @author MightyPork
|
||||||
|
*/
|
||||||
|
public interface PluggableNumBound extends NumBound {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param num bound to set
|
||||||
|
*/
|
||||||
|
abstract void setNum(NumBound num);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@ package mightypork.utils.math.constraints;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface for constraints that can be assigned context
|
* Pluggable rect bound
|
||||||
*
|
*
|
||||||
* @author MightyPork
|
* @author MightyPork
|
||||||
*/
|
*/
|
||||||
@@ -11,6 +11,6 @@ public interface PluggableRectBound extends RectBound {
|
|||||||
/**
|
/**
|
||||||
* @param rect context to set
|
* @param rect context to set
|
||||||
*/
|
*/
|
||||||
abstract void setContext(RectBound rect);
|
abstract void setRect(RectBound rect);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package mightypork.utils.math.constraints;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pluggable vector constraint
|
||||||
|
*
|
||||||
|
* @author MightyPork
|
||||||
|
*/
|
||||||
|
public interface PluggableVectBound extends VectBound {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param num bound to set
|
||||||
|
*/
|
||||||
|
abstract void setVect(VectBound num);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package mightypork.utils.math.constraints;
|
package mightypork.utils.math.constraints;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,57 +0,0 @@
|
|||||||
package mightypork.utils.math.constraints;
|
|
||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.control.timing.Pollable;
|
|
||||||
import mightypork.gamecore.control.timing.Poller;
|
|
||||||
import mightypork.utils.math.rect.Rect;
|
|
||||||
import mightypork.utils.math.rect.RectMutable;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@link RectBound} cache, used for caching computed Rect from a complex
|
|
||||||
* {@link RectBound}.<br>
|
|
||||||
* Calculates only when polled.
|
|
||||||
*
|
|
||||||
* @author MightyPork
|
|
||||||
*/
|
|
||||||
public class RectCache implements RectBound, Pollable {
|
|
||||||
|
|
||||||
private final RectBound observed;
|
|
||||||
private final RectMutable cached = Rect.makeVar();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param observed cached constraint
|
|
||||||
*/
|
|
||||||
public RectCache(RectBound observed) {
|
|
||||||
this.observed = observed;
|
|
||||||
poll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create and join a poller
|
|
||||||
*
|
|
||||||
* @param poller poller to join
|
|
||||||
* @param rc observed constraint
|
|
||||||
*/
|
|
||||||
public RectCache(Poller poller, RectBound rc) {
|
|
||||||
this(rc);
|
|
||||||
poller.add(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Rect getRect()
|
|
||||||
{
|
|
||||||
return cached;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void poll()
|
|
||||||
{
|
|
||||||
cached.setTo(observed.getRect());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package mightypork.utils.math.constraints;
|
package mightypork.utils.math.constraints;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-2
@@ -1,9 +1,8 @@
|
|||||||
package mightypork.utils.math.num;
|
package mightypork.utils.math.constraints.num;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.annotations.FactoryMethod;
|
import mightypork.utils.annotations.FactoryMethod;
|
||||||
import mightypork.utils.math.Calc;
|
import mightypork.utils.math.Calc;
|
||||||
import mightypork.utils.math.constraints.NumBound;
|
|
||||||
|
|
||||||
|
|
||||||
public abstract class Num implements NumBound {
|
public abstract class Num implements NumBound {
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package mightypork.utils.math.num;
|
package mightypork.utils.math.constraints.num;
|
||||||
|
|
||||||
|
|
||||||
public abstract class NumAdapter extends Num {
|
public abstract class NumAdapter extends Num {
|
||||||
+1
-4
@@ -1,7 +1,4 @@
|
|||||||
package mightypork.utils.math.constraints;
|
package mightypork.utils.math.constraints.num;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.num.Num;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package mightypork.utils.math.constraints.num;
|
||||||
|
|
||||||
|
|
||||||
|
import mightypork.utils.math.constraints.PluggableNumBound;
|
||||||
|
|
||||||
|
|
||||||
|
public class NumBoundAdapter extends NumAdapter implements PluggableNumBound {
|
||||||
|
|
||||||
|
private NumBound backing = null;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setNum(NumBound rect)
|
||||||
|
{
|
||||||
|
this.backing = rect;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Num getSource()
|
||||||
|
{
|
||||||
|
return backing.getNum();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+6
-2
@@ -1,8 +1,10 @@
|
|||||||
package mightypork.utils.math.num;
|
package mightypork.utils.math.constraints.num;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constant number
|
* Constant number.<br>
|
||||||
|
* It's arranged so that operations with constant arguments yield constant
|
||||||
|
* results.
|
||||||
*
|
*
|
||||||
* @author MightyPork
|
* @author MightyPork
|
||||||
*/
|
*/
|
||||||
@@ -39,12 +41,14 @@ public class NumConst extends Num {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NumDigest digest()
|
public NumDigest digest()
|
||||||
{
|
{
|
||||||
return (digest != null) ? digest : (digest = super.digest());
|
return (digest != null) ? digest : (digest = super.digest());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NumConst add(double addend)
|
public NumConst add(double addend)
|
||||||
{
|
{
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package mightypork.utils.math.num;
|
package mightypork.utils.math.constraints.num;
|
||||||
|
|
||||||
|
|
||||||
public class NumDigest {
|
public class NumDigest {
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package mightypork.utils.math.num;
|
package mightypork.utils.math.constraints.num;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package mightypork.utils.math.num;
|
package mightypork.utils.math.constraints.num;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+101
-5
@@ -1,12 +1,12 @@
|
|||||||
package mightypork.utils.math.rect;
|
package mightypork.utils.math.constraints.rect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.annotations.FactoryMethod;
|
import mightypork.utils.annotations.FactoryMethod;
|
||||||
import mightypork.utils.math.constraints.RectBound;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
import mightypork.utils.math.num.Num;
|
import mightypork.utils.math.constraints.num.Num;
|
||||||
import mightypork.utils.math.num.NumConst;
|
import mightypork.utils.math.constraints.num.NumConst;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectConst;
|
import mightypork.utils.math.constraints.vect.VectConst;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -332,6 +332,102 @@ public abstract class Rect implements RectBound {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Rect shrinkLeft(final double shrink)
|
||||||
|
{
|
||||||
|
return growLeft(-shrink);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Rect shrinkRight(final double shrink)
|
||||||
|
{
|
||||||
|
return growLeft(-shrink);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Rect shrinkTop(final double shrink)
|
||||||
|
{
|
||||||
|
return growTop(-shrink);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Rect shrinkBottom(final double shrink)
|
||||||
|
{
|
||||||
|
return growBottom(-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 growTop(final double shrink)
|
||||||
|
{
|
||||||
|
return grow(0, 0, shrink, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Rect growBottom(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 growTop(final Num shrink)
|
||||||
|
{
|
||||||
|
return grow(Num.ZERO, Num.ZERO, shrink, Num.ZERO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Rect growBottom(final Num shrink)
|
||||||
|
{
|
||||||
|
return grow(Num.ZERO, Num.ZERO, Num.ZERO, shrink);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Grow to sides
|
* Grow to sides
|
||||||
*
|
*
|
||||||
+3
-3
@@ -1,8 +1,8 @@
|
|||||||
package mightypork.utils.math.rect;
|
package mightypork.utils.math.constraints.rect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectAdapter;
|
import mightypork.utils.math.constraints.vect.VectAdapter;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+4
-4
@@ -1,8 +1,8 @@
|
|||||||
package mightypork.utils.math.constraints;
|
package mightypork.utils.math.constraints.rect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.PluggableRectBound;
|
||||||
import mightypork.utils.math.rect.RectAdapter;
|
import mightypork.utils.math.constraints.RectBound;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -16,7 +16,7 @@ public abstract class RectBoundAdapter extends RectAdapter implements PluggableR
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setContext(RectBound rect)
|
public void setRect(RectBound rect)
|
||||||
{
|
{
|
||||||
this.backing = rect;
|
this.backing = rect;
|
||||||
}
|
}
|
||||||
+112
-6
@@ -1,13 +1,15 @@
|
|||||||
package mightypork.utils.math.rect;
|
package mightypork.utils.math.constraints.rect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.num.NumConst;
|
import mightypork.utils.math.constraints.num.NumConst;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectConst;
|
import mightypork.utils.math.constraints.vect.VectConst;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Rectangle with constant bounds, that can never change.
|
* Rectangle with constant bounds, that can never change.<br>
|
||||||
|
* It's arranged so that operations with constant arguments yield constant
|
||||||
|
* results.
|
||||||
*
|
*
|
||||||
* @author MightyPork
|
* @author MightyPork
|
||||||
*/
|
*/
|
||||||
@@ -89,6 +91,7 @@ public class RectConst extends Rect {
|
|||||||
return (digest != null) ? digest : (digest = super.digest());
|
return (digest != null) ? digest : (digest = super.digest());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VectConst origin()
|
public VectConst origin()
|
||||||
{
|
{
|
||||||
@@ -264,7 +267,6 @@ public class RectConst extends Rect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RectConst leftEdge()
|
public RectConst leftEdge()
|
||||||
{
|
{
|
||||||
@@ -319,6 +321,110 @@ public class RectConst extends Rect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@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 growTop(double shrink)
|
||||||
|
{
|
||||||
|
return super.growTop(shrink).freeze();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RectConst growBottom(double shrink)
|
||||||
|
{
|
||||||
|
return super.growBottom(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 growTop(NumConst shrink)
|
||||||
|
{
|
||||||
|
return super.growTop(shrink).freeze();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public RectConst growBottom(NumConst shrink)
|
||||||
|
{
|
||||||
|
return super.growBottom(shrink).freeze();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public RectConst centerTo(VectConst point)
|
public RectConst centerTo(VectConst point)
|
||||||
{
|
{
|
||||||
return super.centerTo(point).freeze();
|
return super.centerTo(point).freeze();
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package mightypork.utils.math.rect;
|
package mightypork.utils.math.constraints.rect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.vect.VectConst;
|
import mightypork.utils.math.constraints.vect.VectConst;
|
||||||
|
|
||||||
|
|
||||||
public class RectDigest {
|
public class RectDigest {
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package mightypork.utils.math.rect;
|
package mightypork.utils.math.constraints.rect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+3
-3
@@ -1,8 +1,8 @@
|
|||||||
package mightypork.utils.math.rect;
|
package mightypork.utils.math.constraints.rect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectVar;
|
import mightypork.utils.math.constraints.vect.VectVar;
|
||||||
|
|
||||||
|
|
||||||
public class RectVar extends RectMutable {
|
public class RectVar extends RectMutable {
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package mightypork.utils.math.rect;
|
package mightypork.utils.math.constraints.rect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+5
-7
@@ -1,14 +1,13 @@
|
|||||||
package mightypork.utils.math.vect;
|
package mightypork.utils.math.constraints.vect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.annotations.DefaultImpl;
|
import mightypork.utils.annotations.DefaultImpl;
|
||||||
import mightypork.utils.annotations.FactoryMethod;
|
import mightypork.utils.annotations.FactoryMethod;
|
||||||
import mightypork.utils.math.Calc;
|
import mightypork.utils.math.Calc;
|
||||||
import mightypork.utils.math.constraints.VectBound;
|
import mightypork.utils.math.constraints.VectBound;
|
||||||
import mightypork.utils.math.num.Num;
|
import mightypork.utils.math.constraints.num.Num;
|
||||||
import mightypork.utils.math.num.NumConst;
|
import mightypork.utils.math.constraints.num.NumConst;
|
||||||
import mightypork.utils.math.rect.Rect;
|
import mightypork.utils.math.constraints.rect.Rect;
|
||||||
import mightypork.utils.math.rect.RectDigest;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -238,7 +237,6 @@ public abstract class Vect implements VectBound {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a snapshot of the current state, to be used for processing.
|
* Get a snapshot of the current state, to be used for processing.
|
||||||
*
|
*
|
||||||
@@ -1127,7 +1125,7 @@ public abstract class Vect implements VectBound {
|
|||||||
* @param bottom
|
* @param bottom
|
||||||
* @return the rect
|
* @return the rect
|
||||||
*/
|
*/
|
||||||
public Rect expand(int left, int right, int top, int bottom)
|
public Rect expand(double left, double right, double top, double bottom)
|
||||||
{
|
{
|
||||||
return Rect.make(this, Vect.ZERO).grow(left, right, top, bottom);
|
return Rect.make(this, Vect.ZERO).grow(left, right, top, bottom);
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package mightypork.utils.math.vect;
|
package mightypork.utils.math.constraints.vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package mightypork.utils.math.vect;
|
package mightypork.utils.math.constraints.vect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.control.timing.Pauseable;
|
import mightypork.gamecore.control.timing.Pauseable;
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package mightypork.utils.math.constraints.vect;
|
||||||
|
|
||||||
|
|
||||||
|
import mightypork.utils.math.constraints.PluggableVectBound;
|
||||||
|
import mightypork.utils.math.constraints.VectBound;
|
||||||
|
|
||||||
|
|
||||||
|
public class VectBoundAdapter extends VectAdapter implements PluggableVectBound {
|
||||||
|
|
||||||
|
private VectBound backing = null;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setVect(VectBound rect)
|
||||||
|
{
|
||||||
|
this.backing = rect;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Vect getSource()
|
||||||
|
{
|
||||||
|
return backing.getVect();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+8
-6
@@ -1,14 +1,16 @@
|
|||||||
package mightypork.utils.math.vect;
|
package mightypork.utils.math.constraints.vect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.num.Num;
|
import mightypork.utils.math.constraints.num.Num;
|
||||||
import mightypork.utils.math.num.NumConst;
|
import mightypork.utils.math.constraints.num.NumConst;
|
||||||
import mightypork.utils.math.rect.RectConst;
|
import mightypork.utils.math.constraints.rect.RectConst;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Coordinate with immutable numeric values.<br>
|
* Coordinate with immutable numeric values.<br>
|
||||||
* This coordinate is guaranteed to never change, as opposed to view.
|
* This coordinate is guaranteed to never change, as opposed to view.<br>
|
||||||
|
* It's arranged so that operations with constant arguments yield constant
|
||||||
|
* results.
|
||||||
*
|
*
|
||||||
* @author MightyPork
|
* @author MightyPork
|
||||||
*/
|
*/
|
||||||
@@ -350,7 +352,7 @@ public final class VectConst extends Vect {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RectConst expand(int left, int right, int top, int bottom)
|
public RectConst expand(double left, double right, double top, double bottom)
|
||||||
{
|
{
|
||||||
return super.expand(left, right, top, bottom).freeze();
|
return super.expand(left, right, top, bottom).freeze();
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package mightypork.utils.math.vect;
|
package mightypork.utils.math.constraints.vect;
|
||||||
|
|
||||||
|
|
||||||
public class VectDigest {
|
public class VectDigest {
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package mightypork.utils.math.vect;
|
package mightypork.utils.math.constraints.vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+3
-3
@@ -1,8 +1,8 @@
|
|||||||
package mightypork.utils.math.vect;
|
package mightypork.utils.math.constraints.vect;
|
||||||
|
|
||||||
|
|
||||||
import mightypork.utils.math.constraints.NumBound;
|
import mightypork.utils.math.constraints.num.Num;
|
||||||
import mightypork.utils.math.num.Num;
|
import mightypork.utils.math.constraints.num.NumBound;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package mightypork.utils.math.vect;
|
package mightypork.utils.math.constraints.vect;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -4,8 +4,8 @@ package mightypork.utils.objects;
|
|||||||
import mightypork.utils.logging.Log;
|
import mightypork.utils.logging.Log;
|
||||||
import mightypork.utils.math.Calc;
|
import mightypork.utils.math.Calc;
|
||||||
import mightypork.utils.math.Range;
|
import mightypork.utils.math.Range;
|
||||||
import mightypork.utils.math.vect.Vect;
|
import mightypork.utils.math.constraints.vect.Vect;
|
||||||
import mightypork.utils.math.vect.VectConst;
|
import mightypork.utils.math.constraints.vect.VectConst;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user