Renamed constraints to bounds.

v5stable
Ondřej Hruška 10 years ago
parent 4816e0b539
commit e1d87df697
  1. 2
      src/mightypork/gamecore/audio/SoundSystem.java
  2. 6
      src/mightypork/gamecore/control/bus/events/MouseButtonEvent.java
  3. 4
      src/mightypork/gamecore/control/bus/events/MouseMotionEvent.java
  4. 2
      src/mightypork/gamecore/control/bus/events/ScreenChangeEvent.java
  5. 4
      src/mightypork/gamecore/gui/components/PluggableRenderable.java
  6. 4
      src/mightypork/gamecore/gui/components/PluggableRenderer.java
  7. 8
      src/mightypork/gamecore/gui/components/layout/ColumnHolder.java
  8. 8
      src/mightypork/gamecore/gui/components/layout/ElementHolder.java
  9. 8
      src/mightypork/gamecore/gui/components/layout/RowHolder.java
  10. 6
      src/mightypork/gamecore/gui/screens/Screen.java
  11. 4
      src/mightypork/gamecore/gui/screens/ScreenLayer.java
  12. 2
      src/mightypork/gamecore/input/InputSystem.java
  13. 4
      src/mightypork/gamecore/render/DisplaySystem.java
  14. 34
      src/mightypork/gamecore/render/Render.java
  15. 12
      src/mightypork/gamecore/render/fonts/FontRenderer.java
  16. 1
      src/mightypork/gamecore/render/fonts/impl/CachedFont.java
  17. 6
      src/mightypork/rogue/screens/LayerFps.java
  18. 20
      src/mightypork/rogue/screens/test_bouncyboxes/BouncyBox.java
  19. 6
      src/mightypork/rogue/screens/test_bouncyboxes/LayerBouncyBoxes.java
  20. 9
      src/mightypork/rogue/screens/test_cat_sound/LayerFlyingCat.java
  21. 10
      src/mightypork/rogue/screens/test_font/ScreenTestFont.java
  22. 12
      src/mightypork/rogue/screens/test_render/LayerTestGradient.java
  23. 8
      src/mightypork/test/TestConstr.java
  24. 4
      src/mightypork/utils/math/animation/AnimDouble.java
  25. 919
      src/mightypork/utils/math/constraints/Bounds.java
  26. 952
      src/mightypork/utils/math/constraints/Constraints.java
  27. 4
      src/mightypork/utils/math/constraints/ContextAdapter.java
  28. 20
      src/mightypork/utils/math/constraints/NumberBound.java
  29. 6
      src/mightypork/utils/math/constraints/NumberConst.java
  30. 20
      src/mightypork/utils/math/constraints/NumberConstraint.java
  31. 4
      src/mightypork/utils/math/constraints/PluggableRect.java
  32. 2
      src/mightypork/utils/math/constraints/RectBound.java
  33. 14
      src/mightypork/utils/math/constraints/RectCache.java
  34. 18
      src/mightypork/utils/math/constraints/VectConstraint.java
  35. 115
      src/mightypork/utils/math/rect/AbstractRect.java
  36. 51
      src/mightypork/utils/math/rect/Rect.java
  37. 4
      src/mightypork/utils/math/rect/RectMutable.java
  38. 8
      src/mightypork/utils/math/rect/RectMutableImpl.java
  39. 9
      src/mightypork/utils/math/rect/RectProxy.java
  40. 7
      src/mightypork/utils/math/rect/RectVal.java
  41. 16
      src/mightypork/utils/math/rect/RectView.java
  42. 39
      src/mightypork/utils/math/vect/AbstractVect.java
  43. 16
      src/mightypork/utils/math/vect/NumConstrVect.java
  44. 23
      src/mightypork/utils/math/vect/Vect.java
  45. 2
      src/mightypork/utils/math/vect/VectAdapter.java
  46. 2
      src/mightypork/utils/math/vect/VectMutableAnim.java
  47. 4
      src/mightypork/utils/math/vect/VectVal.java
  48. 14
      src/mightypork/utils/math/vect/VectView.java
  49. 6
      src/mightypork/utils/objects/Convert.java

@ -62,7 +62,7 @@ public class SoundSystem extends RootBusNode implements Updateable {
*/
public static VectView getListener()
{
return listener.view();
return listener.getView();
}
// -- instance --

@ -1,7 +1,7 @@
package mightypork.gamecore.control.bus.events;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.vect.Vect;
import mightypork.utils.math.vect.VectView;
@ -80,7 +80,7 @@ public class MouseButtonEvent implements Event<MouseButtonEvent.Listener> {
*/
public VectView getPos()
{
return pos.view();
return pos.getView();
}
@ -108,7 +108,7 @@ public class MouseButtonEvent implements Event<MouseButtonEvent.Listener> {
* @param rect rect region
* @return was over
*/
public boolean isOver(RectConstraint rect)
public boolean isOver(RectBound rect)
{
return rect.getRect().contains(pos);
}

@ -23,8 +23,8 @@ public class MouseMotionEvent implements Event<MouseMotionEvent.Listener> {
* @param move move vector
*/
public MouseMotionEvent(Vect pos, Vect move) {
this.move = move.value();
this.pos = pos.value();
this.move = move.getValue();
this.pos = pos.getValue();
}

@ -52,7 +52,7 @@ public class ScreenChangeEvent implements Event<ScreenChangeEvent.Listener> {
*/
public VectView getScreenSize()
{
return screenSize.view();
return screenSize.getView();
}

@ -2,7 +2,7 @@ package mightypork.gamecore.gui.components;
import mightypork.utils.math.constraints.PluggableRect;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.rect.RectView;
@ -22,6 +22,6 @@ public interface PluggableRenderable extends Renderable, PluggableRect {
@Override
void setContext(RectConstraint rect);
void setContext(RectBound rect);
}

@ -2,7 +2,7 @@ package mightypork.gamecore.gui.components;
import mightypork.utils.math.constraints.ContextAdapter;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.rect.RectView;
@ -25,7 +25,7 @@ public abstract class PluggableRenderer extends ContextAdapter implements Plugga
@Override
public void setContext(RectConstraint rect)
public void setContext(RectBound rect)
{
super.setContext(rect);
}

@ -1,10 +1,10 @@
package mightypork.gamecore.gui.components.layout;
import static mightypork.utils.math.constraints.Constraints.*;
import static mightypork.utils.math.constraints.Bounds.*;
import mightypork.gamecore.control.AppAccess;
import mightypork.gamecore.gui.components.PluggableRenderable;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
/**
@ -23,7 +23,7 @@ public class ColumnHolder extends ElementHolder {
* @param context context
* @param rows number of rows
*/
public ColumnHolder(AppAccess app, RectConstraint context, int rows) {
public ColumnHolder(AppAccess app, RectBound context, int rows) {
super(app, context);
this.cols = rows;
}
@ -52,7 +52,7 @@ public class ColumnHolder extends ElementHolder {
{
if (elem == null) return;
elem.setContext(cColumn(this, cols, col++));
elem.setContext(column(this, cols, col++));
attach(elem);
}

@ -9,7 +9,7 @@ import mightypork.gamecore.control.bus.clients.BusNode;
import mightypork.gamecore.gui.components.PluggableRenderable;
import mightypork.gamecore.gui.components.PluggableRenderer;
import mightypork.gamecore.gui.components.Renderable;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.rect.RectView;
@ -22,7 +22,7 @@ import mightypork.utils.math.rect.RectView;
public abstract class ElementHolder extends BusNode implements PluggableRenderable {
private final LinkedList<PluggableRenderable> elements = new LinkedList<>();
private RectConstraint context;
private RectBound context;
/**
@ -37,14 +37,14 @@ public abstract class ElementHolder extends BusNode implements PluggableRenderab
* @param app app access
* @param context boudning context
*/
public ElementHolder(AppAccess app, RectConstraint context) {
public ElementHolder(AppAccess app, RectBound context) {
super(app);
setContext(context);
}
@Override
public void setContext(RectConstraint context)
public void setContext(RectBound context)
{
this.context = context;
}

@ -1,10 +1,10 @@
package mightypork.gamecore.gui.components.layout;
import static mightypork.utils.math.constraints.Constraints.*;
import static mightypork.utils.math.constraints.Bounds.*;
import mightypork.gamecore.control.AppAccess;
import mightypork.gamecore.gui.components.PluggableRenderable;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
/**
@ -23,7 +23,7 @@ public class RowHolder extends ElementHolder {
* @param context bounding context
* @param rows number of rows
*/
public RowHolder(AppAccess app, RectConstraint context, int rows) {
public RowHolder(AppAccess app, RectBound context, int rows) {
super(app, context);
this.rows = rows;
}
@ -52,7 +52,7 @@ public class RowHolder extends ElementHolder {
{
if (elem == null) return;
elem.setContext(cRow(this, rows, row++));
elem.setContext(row(this, rows, row++));
attach(elem);
}

@ -10,7 +10,7 @@ import mightypork.gamecore.input.KeyBinder;
import mightypork.gamecore.input.KeyBindingPool;
import mightypork.gamecore.input.KeyStroke;
import mightypork.gamecore.render.Render;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.rect.RectView;
import mightypork.utils.math.vect.Vect;
@ -20,7 +20,7 @@ import mightypork.utils.math.vect.Vect;
*
* @author MightyPork
*/
public abstract class Screen extends AppSubModule implements Renderable, KeyBinder, RectConstraint, ScreenChangeEvent.Listener {
public abstract class Screen extends AppSubModule implements Renderable, KeyBinder, RectBound, ScreenChangeEvent.Listener {
private final KeyBindingPool keybindings = new KeyBindingPool();
@ -66,7 +66,7 @@ public abstract class Screen extends AppSubModule implements Renderable, KeyBind
active = true;
needSetupViewport = true;
onSizeChanged(getRect().getSize());
onSizeChanged(getRect().size());
onScreenEnter();
// enable events

@ -7,7 +7,7 @@ import mightypork.gamecore.gui.components.Renderable;
import mightypork.gamecore.input.KeyBinder;
import mightypork.gamecore.input.KeyBindingPool;
import mightypork.gamecore.input.KeyStroke;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.rect.RectView;
import mightypork.utils.math.vect.Vect;
import mightypork.utils.math.vect.VectView;
@ -18,7 +18,7 @@ import mightypork.utils.math.vect.VectView;
*
* @author MightyPork
*/
public abstract class ScreenLayer extends AppSubModule implements Comparable<ScreenLayer>, Renderable, RectConstraint, KeyBinder {
public abstract class ScreenLayer extends AppSubModule implements Comparable<ScreenLayer>, Renderable, RectBound, KeyBinder {
private final Screen screen;

@ -155,7 +155,7 @@ public class InputSystem extends RootBusNode implements Updateable, KeyBinder {
move.mul(1, -1, 1);
if (button != -1 || wheeld != 0) {
getEventBus().send(new MouseButtonEvent(pos.value(), button, down, wheeld));
getEventBus().send(new MouseButtonEvent(pos.getValue(), button, down, wheeld));
}
moveSum.add(move);

@ -10,7 +10,7 @@ import mightypork.gamecore.control.AppModule;
import mightypork.gamecore.control.bus.events.ScreenChangeEvent;
import mightypork.gamecore.control.timing.FpsMeter;
import mightypork.utils.logging.Log;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.rect.RectVal;
import mightypork.utils.math.rect.RectView;
import mightypork.utils.math.vect.VectView;
@ -26,7 +26,7 @@ import org.lwjgl.opengl.DisplayMode;
*
* @author MightyPork
*/
public class DisplaySystem extends AppModule implements RectConstraint {
public class DisplaySystem extends AppModule implements RectBound {
private DisplayMode windowDisplayMode;
private int targetFps;

@ -213,7 +213,7 @@ public class Render {
*/
public static void rotate(double angle, Vect axis)
{
final Vect vec = axis.view().norm(1);
final Vect vec = axis.getView().norm(1);
glRotated(angle, vec.x(), vec.y(), vec.z());
}
@ -351,10 +351,10 @@ public class Render {
*/
public static void quad(Rect quad)
{
final double x1 = quad.xMin();
final double y1 = quad.yMin();
final double x2 = quad.xMax();
final double y2 = quad.yMax();
final double x1 = quad.getLeft();
final double y1 = quad.top();
final double x2 = quad.right();
final double y2 = quad.bottom();
// draw with color
unbindTexture();
@ -391,15 +391,15 @@ public class Render {
*/
public static void quadUV_nobound(Rect quad, Rect uvs)
{
final double x1 = quad.xMin();
final double y1 = quad.yMin();
final double x2 = quad.xMax();
final double y2 = quad.yMax();
final double x1 = quad.getLeft();
final double y1 = quad.top();
final double x2 = quad.right();
final double y2 = quad.bottom();
final double tx1 = uvs.xMin();
final double ty1 = uvs.yMin();
final double tx2 = uvs.xMax();
final double ty2 = uvs.yMax();
final double tx1 = uvs.getLeft();
final double ty1 = uvs.top();
final double tx2 = uvs.right();
final double ty2 = uvs.bottom();
// quad with texture
glTexCoord2d(tx1, ty2);
@ -437,10 +437,10 @@ public class Render {
*/
public static void quadColor(Rect quad, RGB colorHMinVMin, RGB colorHMaxVMin, RGB colorHMaxVMax, RGB colorHMinVMax)
{
final double x1 = quad.xMin();
final double y1 = quad.yMin();
final double x2 = quad.xMax();
final double y2 = quad.yMax();
final double x1 = quad.getLeft();
final double y1 = quad.top();
final double x2 = quad.right();
final double y2 = quad.bottom();
// draw with color
unbindTexture();

@ -110,7 +110,7 @@ public class FontRenderer {
{
Render.pushMatrix();
Render.translate(pos.value().round());
Render.translate(pos.getValue().round());
Render.scaleXY(getScale(height));
font.draw(text, color);
@ -148,20 +148,20 @@ public class FontRenderer {
switch (align) {
case LEFT:
start = bounds.getTopLeft();
start = bounds.topLeft();
break;
case CENTER:
start = bounds.getTopCenter();
start = bounds.topCenter();
break;
case RIGHT:
default:
start = bounds.getTopRight();
start = bounds.topRight();
break;
}
draw(text, start, bounds.getHeight(), align, color);
draw(text, start, bounds.height(), align, color);
}
@ -193,7 +193,7 @@ public class FontRenderer {
final double w = getWidth(text, height);
final VectMutable start = pos.mutable();
final VectMutable start = VectMutable.make(pos);
switch (align) {
case LEFT:

@ -24,7 +24,6 @@ import mightypork.gamecore.render.textures.FilterMode;
import mightypork.utils.logging.Log;
import mightypork.utils.math.color.RGB;
import mightypork.utils.math.vect.VectVal;
import mightypork.utils.math.vect.VectView;
import org.lwjgl.BufferUtils;
import org.lwjgl.util.glu.GLU;

@ -1,7 +1,7 @@
package mightypork.rogue.screens;
import static mightypork.utils.math.constraints.Constraints.*;
import static mightypork.utils.math.constraints.Bounds.*;
import mightypork.gamecore.gui.Action;
import mightypork.gamecore.gui.components.painters.TextPainter;
import mightypork.gamecore.gui.screens.Screen;
@ -12,7 +12,7 @@ import mightypork.gamecore.render.fonts.FontRenderer.Align;
import mightypork.gamecore.render.fonts.GLFont;
import mightypork.rogue.Res;
import mightypork.utils.math.color.RGB;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.vect.Vect;
import mightypork.utils.string.StringProvider;
@ -39,7 +39,7 @@ public class LayerFps extends ScreenLayer {
final GLFont font = Res.getFont("default");
final RectConstraint constraint = cBox(cAdd(cTopRight(this), -8, 8), 0, 32);
final RectBound constraint = box(add(topRight(this), -8, 8), 0, 32);
tp = new TextPainter(font, Align.RIGHT, RGB.WHITE, new StringProvider() {

@ -1,7 +1,7 @@
package mightypork.rogue.screens.test_bouncyboxes;
import static mightypork.utils.math.constraints.Constraints.*;
import static mightypork.utils.math.constraints.Bounds.*;
import java.util.Random;
@ -11,31 +11,31 @@ import mightypork.gamecore.render.Render;
import mightypork.utils.math.animation.AnimDouble;
import mightypork.utils.math.animation.Easing;
import mightypork.utils.math.color.RGB;
import mightypork.utils.math.constraints.NumberConstraint;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.NumberBound;
import mightypork.utils.math.constraints.RectBound;
public class BouncyBox extends PluggableRenderer implements Updateable {
private final Random rand = new Random();
private final RectConstraint box;
private final RectBound box;
private final AnimDouble pos = new AnimDouble(0, Easing.BOUNCE_OUT);
public BouncyBox() {
// create box
final NumberConstraint side = cHeight(this);
RectConstraint abox = cBox(this, side, side);
final NumberBound side = height(this);
RectBound abox = box(this, side, side);
// move
final NumberConstraint move_length = cSub(cWidth(this), side);
final NumberConstraint offset = cMul(move_length, pos);
abox = cMove(abox, offset, 0);
final NumberBound move_length = sub(width(this), side);
final NumberBound offset = mul(move_length, pos);
abox = move(abox, offset, 0);
// add padding
abox = cShrink(abox, cPerc(side, 10));
abox = shrink(abox, perc(side, 10));
box = abox;
}

@ -1,7 +1,7 @@
package mightypork.rogue.screens.test_bouncyboxes;
import static mightypork.utils.math.constraints.Constraints.*;
import static mightypork.utils.math.constraints.Bounds.*;
import java.util.ArrayList;
import java.util.List;
@ -15,7 +15,7 @@ import mightypork.gamecore.input.Keys;
import mightypork.gamecore.render.fonts.FontRenderer.Align;
import mightypork.rogue.Res;
import mightypork.utils.math.color.RGB;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.vect.VectVal;
@ -47,7 +47,7 @@ public class LayerBouncyBoxes extends ScreenLayer {
});
// shrink screen rect by 8% on all sides
final RectConstraint holder_rect = cShrink(this, cPerc(cWidth(this), 4));
final RectBound holder_rect = shrink(this, perc(width(this), 4));
addChildClient(layout = new RowHolder(screen, holder_rect, 11));

@ -1,7 +1,7 @@
package mightypork.rogue.screens.test_cat_sound;
import static mightypork.utils.math.constraints.Constraints.*;
import static mightypork.utils.math.constraints.Bounds.*;
import java.util.Random;
@ -19,6 +19,7 @@ import mightypork.rogue.Res;
import mightypork.utils.math.animation.AnimDouble;
import mightypork.utils.math.animation.Easing;
import mightypork.utils.math.color.RGB;
import mightypork.utils.math.constraints.Bounds;
import mightypork.utils.math.vect.Vect;
import mightypork.utils.math.vect.VectMutable;
import mightypork.utils.math.vect.VectMutableAnim;
@ -45,7 +46,7 @@ public class LayerFlyingCat extends ScreenLayer implements Updateable, MouseButt
cat = new ImagePainter(Res.getTxQuad("test.kitten"));
cat.setContext(cCenterTo(cBox(size, size), pos));
cat.setContext(centerTo(box(size, size), pos));
tp = new TextPainter(Res.getFont("default"));
tp.setAlign(Align.CENTER);
@ -53,10 +54,10 @@ public class LayerFlyingCat extends ScreenLayer implements Updateable, MouseButt
tp.setText("Meow!");
tp.setShadow(RGB.dark(0.8), VectVal.make(2, 2));
tp.setContext(cCenterTo(cBox(64, 64), cMousePos));
tp.setContext(centerTo(box(64, 64), cMousePos));
qp = QuadPainter.gradV(RGB.YELLOW, RGB.RED);
qp.setContext(cExpand(cBottomLeft(cat), 0, 0, 50, 50));
qp.setContext(expand(bottomLeft(cat), 0, 0, 50, 50));
/*
* Register keys

@ -1,15 +1,15 @@
package mightypork.rogue.screens.test_font;
import static mightypork.utils.math.constraints.Constraints.*;
import static mightypork.utils.math.constraints.Bounds.*;
import mightypork.gamecore.control.AppAccess;
import mightypork.gamecore.gui.components.painters.TextPainter;
import mightypork.gamecore.gui.screens.Screen;
import mightypork.gamecore.render.fonts.FontRenderer.Align;
import mightypork.rogue.Res;
import mightypork.utils.math.color.RGB;
import mightypork.utils.math.constraints.NumberConstraint;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.NumberBound;
import mightypork.utils.math.constraints.RectBound;
public class ScreenTestFont extends Screen {
@ -23,9 +23,9 @@ public class ScreenTestFont extends Screen {
tp = new TextPainter(Res.getFont("default"), Align.CENTER, RGB.GREEN);
tp.setText("Hello World!");
final NumberConstraint fontHeight = cMul(getDisplay().getSize().yc(), 0.1);
final NumberBound fontHeight = mul(getDisplay().getSize().yc(), 0.1);
final RectConstraint strbox = cCenterTo(cBox(fontHeight), this);
final RectBound strbox = centerTo(box(fontHeight), this);
tp.setContext(strbox);
}

@ -1,13 +1,13 @@
package mightypork.rogue.screens.test_render;
import static mightypork.utils.math.constraints.Constraints.*;
import static mightypork.utils.math.constraints.Bounds.*;
import mightypork.gamecore.control.timing.Poller;
import mightypork.gamecore.gui.screens.Screen;
import mightypork.gamecore.gui.screens.ScreenLayer;
import mightypork.gamecore.render.Render;
import mightypork.utils.math.color.RGB;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.vect.Vect;
@ -15,15 +15,15 @@ public class LayerTestGradient extends ScreenLayer {
private final Poller p = new Poller();
private final RectConstraint pos1;
private final RectConstraint pos2;
private final RectBound pos1;
private final RectBound pos2;
public LayerTestGradient(Screen screen) {
super(screen);
pos1 = cCached(p, cGrowDown(cTopEdge(this), 64));
pos2 = cCached(p, cShrinkTop(cGrowRight(cLeftEdge(this), 64), 64));
pos1 = cached(p, growDown(edgeTop(this), 64));
pos2 = cached(p, shrinkTop(growRight(edgeLeft(this), 64), 64));
}

@ -1,12 +1,13 @@
package mightypork.test;
import static mightypork.utils.math.constraints.Bounds.*;
import java.util.Locale;
import mightypork.utils.math.rect.RectVal;
import mightypork.utils.math.rect.RectView;
import mightypork.utils.math.vect.VectVal;
import static mightypork.utils.math.constraints.Constraints.*;
public class TestConstr {
@ -16,12 +17,11 @@ public class TestConstr {
Locale.setDefault(Locale.ENGLISH);
final RectView rect = RectVal.make(0, 0, 10, 10);
final VectVal point = VectVal.make(50,50);
final VectVal point = VectVal.make(50, 50);
System.out.println(rect);
System.out.println(point);
System.out.println(cCenterTo(rect, point).getRect());
System.out.println(centerTo(rect, point).getRect());
// final RectValue rm = RectValue.make(0, 0, 100, 100);
// System.out.println(rm);

@ -4,7 +4,7 @@ package mightypork.utils.math.animation;
import mightypork.gamecore.control.timing.Pauseable;
import mightypork.gamecore.control.timing.Updateable;
import mightypork.utils.math.Calc;
import mightypork.utils.math.constraints.NumberConstraint;
import mightypork.utils.math.constraints.NumberBound;
/**
@ -12,7 +12,7 @@ import mightypork.utils.math.constraints.NumberConstraint;
*
* @author MightyPork
*/
public class AnimDouble implements Updateable, Pauseable, NumberConstraint {
public class AnimDouble implements Updateable, Pauseable, NumberBound {
/** target double */
protected double to = 0;

@ -0,0 +1,919 @@
package mightypork.utils.math.constraints;
import mightypork.gamecore.control.timing.Poller;
import mightypork.utils.math.rect.RectVal;
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.VectView;
/**
* Constraint factory.<br>
* Import statically for best experience.
*
* @author MightyPork
*/
public class Bounds {
public static RectCache cached(final Poller poller, final RectBound rc)
{
return new RectCache(poller, rc);
}
/**
* Convert {@link Number} to {@link NumberBound} if needed
*
* @param o unknown numeric value
* @return converted
*/
private static NumberBound toNumberBound(final Object o)
{
if (o instanceof NumberBound) return (NumberBound) o;
if (o instanceof Number) return new NumberBound() {
@Override
public double getValue()
{
return ((Number) o).doubleValue();
}
};
throw new IllegalArgumentException("Invalid numeric type.");
}
/**
* Convert {@link Number} or {@link NumberBound} to double (current value)
*
* @param o unknown numeric value
* @return double value
*/
private static double eval(final Object o)
{
return toNumberBound(o).getValue();
}
public static NumberBound min(final Object a, final Object b)
{
return new NumberBound() {
@Override
public double getValue()
{
return Math.min(eval(a), eval(b));
}
};
}
public static NumberBound max(final Object a, final Object b)
{
return new NumberBound() {
@Override
public double getValue()
{
return Math.max(eval(a), eval(b));
}
};
}
public static NumberBound abs(final NumberBound a)
{
return new NumberBound() {
@Override
public double getValue()
{
return Math.abs(a.getValue());
}
};
}
public static NumberBound half(final NumberBound a)
{
return new NumberBound() {
@Override
public double getValue()
{
return a.getValue() / 2;
}
};
}
public static NumberBound round(final NumberBound a)
{
return new NumberBound() {
@Override
public double getValue()
{
return Math.round(a.getValue());
}
};
}
public static RectBound round(final RectBound r)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().round();
}
};
}
public static NumberBound ceil(final NumberBound a)
{
return new NumberBound() {
@Override
public double getValue()
{
return Math.ceil(a.getValue());
}
};
}
public static NumberBound floor(final NumberBound a)
{
return new NumberBound() {
@Override
public double getValue()
{
return Math.floor(a.getValue());
}
};
}
public static NumberBound neg(final NumberBound a)
{
return new NumberBound() {
@Override
public double getValue()
{
return -a.getValue();
}
};
}
public static NumberBound add(final Object a, final Object b)
{
return new NumberBound() {
@Override
public double getValue()
{
return eval(a) + eval(b);
}
};
}
public static NumberBound sub(final Object a, final Object b)
{
return new NumberBound() {
@Override
public double getValue()
{
return eval(a) - eval(b);
}
};
}
public static NumberBound mul(final Object a, final Object b)
{
return new NumberBound() {
@Override
public double getValue()
{
return eval(a) * eval(b);
}
};
}
public static NumberBound half(final Object a)
{
return mul(a, 0.5);
}
public static NumberBound div(final Object a, final Object b)
{
return new NumberBound() {
@Override
public double getValue()
{
return eval(a) / eval(b);
}
};
}
public static NumberBound perc(final Object whole, final Object percent)
{
return new NumberBound() {
@Override
public double getValue()
{
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()
{
final double height = r.getRect().height();
final double perRow = height / rows;
final Vect origin = r.getRect().origin().add(0, perRow * index);
final Vect size = r.getRect().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()
{
final double width = r.getRect().width();
final double perCol = width / columns;
final Vect origin = r.getRect().origin().add(perCol * index, 0);
final Vect size = r.getRect().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()
{
final double height = r.getRect().height();
final double width = r.getRect().height();
final double perRow = height / rows;
final double perCol = width / cols;
final Vect origin = r.getRect().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 r.getRect().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 r.getRect().shrink(0, eval(shrink), 0, 0);
}
};
}
public static RectBound shrinkBottom(final RectBound r, final Object shrink)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().shrink(0, 0, 0, eval(shrink));
}
};
}
public static RectBound shrinkLeft(final RectBound r, final Object shrink)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().shrink(eval(shrink), 0, 0, 0);
}
};
}
public static RectBound shrinkRight(final RectBound r, final Object shrink)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().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 r.getRect().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 r.getRect().grow(0, eval(grow), 0, 0);
}
};
}
public static RectBound growDown(final RectBound r, final Object grow)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().grow(0, 0, 0, eval(grow));
}
};
}
public static RectBound growLeft(final RectBound r, final Object grow)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().grow(eval(grow), 0, 0, 0);
}
};
}
public static RectBound growRight(final RectBound r, final Object grow)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().grow(0, 0, eval(grow), 0);
}
};
}
public static RectBound box(final Object side)
{
return box(side, side);
}
public static RectBound box(final Vect origin, final Object width, final Object height)
{
return new RectBound() {
@Override
public RectView getRect()
{
return RectVal.make(origin, eval(width), eval(height));
}
};
}
public static RectBound box(final Object width, final Object height)
{
return new RectBound() {
@Override
public RectView getRect()
{
return RectVal.make(0, 0, eval(width), eval(height));
}
};
}
public static RectBound box(final RectBound r, final Object width, final Object height)
{
return new RectBound() {
@Override
public RectView getRect()
{
final Vect origin = r.getRect().origin();
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 Vect origin = r.getRect().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 VectView size = r.getRect().size();
final VectView center = centerTo.getRect().center();
return RectVal.make(center.sub(size.half()), size);
}
};
}
public static RectBound centerTo(final RectBound r, final Vect centerTo)
{
return new RectBound() {
@Override
public RectView getRect()
{
final VectView size = r.getRect().size();
return RectVal.make(centerTo.getValue().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 VectView size = r.getRect().size();
final VectView v = VectVal.make(eval(x), eval(y));
return RectVal.make(v.sub(size.half()), size);
}
};
}
public static RectBound move(final RectBound r, final Vect move)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().move(move);
}
};
}
public static RectBound move(final RectBound r, final Object x, final Object y)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().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 Vect 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 Vect 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 Vect 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);
return RectVal.make(c.x() - l, c.y() - t, l + r, t + b);
}
};
}
public static RectBound edgeLeft(final RectBound r)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().shrink(0, 0, r.getRect().width(), 0);
}
};
}
public static RectBound edgeTop(final RectBound r)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().shrink(0, 0, 0, r.getRect().height());
}
};
}
public static RectBound edgeRight(final RectBound r)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().shrink(r.getRect().width(), 0, 0, 0);
}
};
}
public static RectBound edgeBottom(final RectBound r)
{
return new RectBound() {
@Override
public RectView getRect()
{
return r.getRect().shrink(0, r.getRect().height(), 0, 0);
}
};
}
public static VectView neg(final Vect c)
{
return mul(c, -1);
}
public static VectView half(final Vect c)
{
return mul(c, 0.5);
}
public static VectView add(final Vect c1, final Vect c2)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return c1.getValue().add(c2);
}
};
}
public static VectView add(final Vect c, final Object x, final Object y)
{
return add(c, x, y, 0);
}
public static VectView add(final Vect c, final Object x, final Object y, final Object z)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return c.getValue().add(eval(x), eval(y), eval(z));
}
};
}
public static VectView sub(final Vect c1, final Vect c2)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return c1.getValue().sub(c2);
}
};
}
public static VectView sub(final Vect c, final Object x, final Object y)
{
return sub(c, x, y, 0);
}
public static VectView sub(final Vect c, final Object x, final Object y, final Object z)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return c.getValue().sub(eval(x), eval(y), eval(z));
}
};
}
public static VectView mul(final Vect c, final Object mul)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return c.getValue().mul(eval(mul));
}
};
}
public static VectView norm(final Vect c, final Object norm)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return c.getValue().norm(eval(norm));
}
};
}
public static VectView origin(final RectBound r)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return r.getRect().origin();
}
};
}
public static VectView size(final RectBound r)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return r.getRect().size();
}
};
}
public static NumberBound height(final RectBound r)
{
return size(r).yc();
}
public static NumberBound width(final RectBound r)
{
return size(r).xc();
}
public static VectView center(final RectBound r)
{
return add(origin(r), half(size(r)));
}
public static VectView topLeft(final RectBound r)
{
return origin(r);
}
public static VectView topRight(final RectBound r)
{
return add(origin(r), width(r), 0);
}
public static VectView bottomLeft(final RectBound r)
{
return add(origin(r), 0, width(r));
}
public static VectView bottomRight(final RectBound r)
{
return add(origin(r), size(r));
}
public static VectView topCenter(final RectBound r)
{
return add(origin(r), half(width(r)), 0);
}
public static VectView bottomCenter(final RectBound r)
{
return add(origin(r), half(width(r)), width(r));
}
public static VectView centerLeft(final RectBound r)
{
return add(origin(r), 0, half(width(r)));
}
public static VectView 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 Vect c)
{
return new RectBound() {
@Override
public RectView getRect()
{
return RectVal.make(c.x(), c.y(), 0, 0);
}
};
}
}

@ -1,952 +0,0 @@
package mightypork.utils.math.constraints;
import mightypork.gamecore.control.timing.Poller;
import mightypork.utils.math.rect.RectVal;
import mightypork.utils.math.rect.RectView;
import mightypork.utils.math.vect.VectAdapter;
import mightypork.utils.math.vect.Vect;
import mightypork.utils.math.vect.VectVal;
import mightypork.utils.math.vect.VectView;
/**
* Constraint factory.<br>
* Import statically for best experience.
*
* @author MightyPork
*/
public class Constraints {
public static RectCache cCached(final Poller poller, final RectConstraint rc)
{
return new RectCache(poller, rc);
}
/**
* Convert {@link Number} to {@link NumberConstraint} if needed
*
* @param o unknown numeric value
* @return converted
*/
private static NumberConstraint toConstraint(final Object o)
{
if (o instanceof NumberConstraint) return (NumberConstraint) o;
if (o instanceof Number) return new NumberConstraint() {
@Override
public double getValue()
{
return ((Number) o).doubleValue();
}
};
throw new IllegalArgumentException("Invalid numeric type.");
}
/**
* Convert {@link Number} or {@link NumberConstraint} to double (current
* value)
*
* @param o unknown numeric value
* @return double value
*/
private static double toDouble(final Object o)
{
return toConstraint(o).getValue();
}
public static NumberConstraint cMin(final Object a, final Object b)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return Math.min(toDouble(a), toDouble(b));
}
};
}
public static NumberConstraint cMax(final Object a, final Object b)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return Math.max(toDouble(a), toDouble(b));
}
};
}
public static NumberConstraint cAbs(final NumberConstraint a)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return Math.abs(a.getValue());
}
};
}
public static NumberConstraint cHalf(final NumberConstraint a)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return a.getValue() / 2;
}
};
}
public static NumberConstraint cRound(final NumberConstraint a)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return Math.round(a.getValue());
}
};
}
public static RectConstraint cRound(final RectConstraint r)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().round();
}
};
}
public static NumberConstraint cCeil(final NumberConstraint a)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return Math.ceil(a.getValue());
}
};
}
public static NumberConstraint cFloor(final NumberConstraint a)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return Math.floor(a.getValue());
}
};
}
public static NumberConstraint cNeg(final NumberConstraint a)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return -a.getValue();
}
};
}
public static NumberConstraint cAdd(final Object a, final Object b)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return toDouble(a) + toDouble(b);
}
};
}
public static NumberConstraint cSub(final Object a, final Object b)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return toDouble(a) - toDouble(b);
}
};
}
public static NumberConstraint cMul(final Object a, final Object b)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return toDouble(a) * toDouble(b);
}
};
}
public static NumberConstraint cHalf(final Object a)
{
return cMul(a, 0.5);
}
public static NumberConstraint cDiv(final Object a, final Object b)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return toDouble(a) / toDouble(b);
}
};
}
public static NumberConstraint cPerc(final Object whole, final Object percent)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return toDouble(whole) * (toDouble(percent) / 100);
}
};
}
public static RectConstraint cRow(final RectConstraint r, final int rows, final int index)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
final double height = r.getRect().getHeight();
final double perRow = height / rows;
final Vect origin = r.getRect().getOrigin().add(0, perRow * index);
final Vect size = r.getRect().getSize().setY(perRow);
return RectVal.make(origin, size);
}
};
}
public static RectConstraint cColumn(final RectConstraint r, final int columns, final int index)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
final double width = r.getRect().getWidth();
final double perCol = width / columns;
final Vect origin = r.getRect().getOrigin().add(perCol * index, 0);
final Vect size = r.getRect().getSize().setX(perCol);
return RectVal.make(origin, size);
}
};
}
public static RectConstraint cTile(final RectConstraint r, final int rows, final int cols, final int left, final int top)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
final double height = r.getRect().getHeight();
final double width = r.getRect().getHeight();
final double perRow = height / rows;
final double perCol = width / cols;
final Vect origin = r.getRect().getOrigin().add(perCol * left, perRow * (rows - top - 1));
return RectVal.make(origin, perCol, perRow);
}
};
}
public static RectConstraint cShrink(RectConstraint r, Object shrink)
{
final NumberConstraint n = toConstraint(shrink);
return cShrink(r, n, n, n, n);
}
public static RectConstraint cShrink(RectConstraint context, Object horiz, Object vert)
{
return cShrink(context, horiz, vert, horiz, vert);
}
public static RectConstraint cShrink(final RectConstraint r, final Object left, final Object top, final Object right, final Object bottom)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().shrink(toDouble(left), toDouble(top), toDouble(right), toDouble(bottom));
}
};
}
public static RectConstraint cShrinkTop(final RectConstraint r, final Object shrink)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().shrink(0, toDouble(shrink), 0, 0);
}
};
}
public static RectConstraint cShrinkBottom(final RectConstraint r, final Object shrink)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().shrink(0, 0, 0, toDouble(shrink));
}
};
}
public static RectConstraint cShrinkLeft(final RectConstraint r, final Object shrink)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().shrink(toDouble(shrink), 0, 0, 0);
}
};
}
public static RectConstraint cShrinkRight(final RectConstraint r, final Object shrink)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().shrink(0, 0, toDouble(shrink), 0);
}
};
}
public static RectConstraint cGrow(RectConstraint r, Object grow)
{
final NumberConstraint n = toConstraint(grow);
return cGrow(r, n, n, n, n);
}
public static RectConstraint cGrow(RectConstraint r, Object horiz, Object vert)
{
return cGrow(r, horiz, vert, horiz, vert);
}
public static RectConstraint cGrow(final RectConstraint r, final Object left, final Object right, final Object top, final Object bottom)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().grow(toDouble(left), toDouble(right), toDouble(top), toDouble(bottom));
}
};
}
public static RectConstraint cGrowUp(final RectConstraint r, final Object grow)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().grow(0, toDouble(grow), 0, 0);
}
};
}
public static RectConstraint cGrowDown(final RectConstraint r, final Object grow)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().grow(0, 0, 0, toDouble(grow));
}
};
}
public static RectConstraint cGrowLeft(final RectConstraint r, final Object grow)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().grow(toDouble(grow), 0, 0, 0);
}
};
}
public static RectConstraint cGrowRight(final RectConstraint r, final Object grow)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().grow(0, 0, toDouble(grow), 0);
}
};
}
public static RectConstraint cBox(final Object side)
{
return cBox(side, side);
}
public static RectConstraint cBox(final VectConstraint origin, final Object width, final Object height)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return RectVal.make(origin.getVec(), toDouble(width), toDouble(height));
}
};
}
public static RectConstraint cBox(final Object width, final Object height)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return RectVal.make(0, 0, toDouble(width), toDouble(height));
}
};
}
public static RectConstraint cBox(final RectConstraint r, final Object width, final Object height)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
final Vect origin = r.getRect().getOrigin();
return RectVal.make(origin.x(), origin.y(), toDouble(width), toDouble(height));
}
};
}
public static RectConstraint cBox(final RectConstraint r, final Object x, final Object y, final Object width, final Object height)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
final Vect origin = r.getRect().getOrigin();
return RectVal.make(origin.x() + toDouble(x), origin.y() + toDouble(y), toDouble(width), toDouble(height));
}
};
}
public static RectConstraint cCenterTo(final RectConstraint r, final RectConstraint centerTo)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
final VectView size = r.getRect().getSize();
final VectView center = centerTo.getRect().getCenter();
return RectVal.make(center.sub(size.half()), size);
}
};
}
public static RectConstraint cCenterTo(final RectConstraint r, final VectConstraint centerTo)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
final VectView size = r.getRect().getSize();
return RectVal.make(centerTo.getVec().sub(size.half()), size);
}
};
}
public static RectConstraint cCenterTo(final RectConstraint r, final Object x, final Object y)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
final VectView size = r.getRect().getSize();
final VectView v = VectVal.make(toDouble(x), toDouble(y));
return RectVal.make(v.sub(size.half()), size);
}
};
}
public static RectConstraint cMove(final RectConstraint r, final VectConstraint move)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().move(move.getVec());
}
};
}
public static RectConstraint cMove(final RectConstraint r, final Object x, final Object y)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().move(toDouble(x), toDouble(y));
}
};
}
/**
* Make a rect around coord
*
* @param c coord
* @param allSides size to grow on all sides
* @return rect constraint
*/
public static RectConstraint cExpand(final VectConstraint c, final Object allSides)
{
return cExpand(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 RectConstraint cExpand(final VectConstraint c, final Object horizontal, final Object vertical)
{
return cExpand(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 RectConstraint cExpand(final VectConstraint c, final Object top, final Object right, final Object bottom, final Object left)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
final double t = toDouble(top);
final double r = toDouble(right);
final double b = toDouble(bottom);
final double l = toDouble(left);
final double x = c.getVec().x();
final double y = c.getVec().y();
return RectVal.make(x - l, y - t, l + r, t + b);
}
};
}
public static RectConstraint cLeftEdge(final RectConstraint r)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().shrink(0, 0, r.getRect().getWidth(), 0);
}
};
}
public static RectConstraint cTopEdge(final RectConstraint r)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().shrink(0, 0, 0, r.getRect().getHeight());
}
};
}
public static RectConstraint cRightEdge(final RectConstraint r)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().shrink(r.getRect().getWidth(), 0, 0, 0);
}
};
}
public static RectConstraint cBottomEdge(final RectConstraint r)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
return r.getRect().shrink(0, r.getRect().getHeight(), 0, 0);
}
};
}
public static NumberConstraint cX(final VectConstraint c)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return c.getVec().x();
}
};
}
public static NumberConstraint cY(final VectConstraint c)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return c.getVec().y();
}
};
}
public static NumberConstraint cZ(final VectConstraint c)
{
return new NumberConstraint() {
@Override
public double getValue()
{
return c.getVec().z();
}
};
}
public static VectConstraint cNeg(final VectConstraint c)
{
return cMul(c, -1);
}
public static VectConstraint cHalf(final VectConstraint c)
{
return cMul(c, 0.5);
}
public static VectConstraint cAdd(final VectConstraint c1, final VectConstraint c2)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return c1.getVec().add(c2.getVec());
}
};
}
public static VectConstraint cAdd(final VectConstraint c, final Object x, final Object y)
{
return cAdd(c, x, y, 0);
}
public static VectConstraint cAdd(final VectConstraint c, final Object x, final Object y, final Object z)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return c.getVec().add(toDouble(x), toDouble(y), toDouble(z));
}
};
}
public static VectConstraint cSub(final VectConstraint c1, final VectConstraint c2)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return c1.getVec().sub(c2.getVec());
}
};
}
public static VectConstraint cSub(final VectConstraint c, final Object x, final Object y)
{
return cSub(c, x, y, 0);
}
public static VectConstraint cSub(final VectConstraint c, final Object x, final Object y, final Object z)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return c.getVec().sub(toDouble(x), toDouble(y), toDouble(z));
}
};
}
public static VectConstraint cMul(final VectConstraint c, final Object mul)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return c.getVec().mul(toDouble(mul));
}
};
}
public static VectConstraint cOrigin(final RectConstraint r)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return r.getRect().getOrigin();
}
};
}
public static VectConstraint cSize(final RectConstraint r)
{
return new VectAdapter() {
@Override
public VectView getSource()
{
return r.getRect().getSize();
}
};
}
public static NumberConstraint cHeight(final RectConstraint r)
{
return cY(cSize(r));
}
public static NumberConstraint cWidth(final RectConstraint r)
{
return cX(cSize(r));
}
public static VectConstraint cCenter(final RectConstraint r)
{
return cAdd(cOrigin(r), cHalf(cSize(r)));
}
public static VectConstraint cTopLeft(final RectConstraint r)
{
return cOrigin(r);
}
public static VectConstraint cTopRight(final RectConstraint r)
{
return cAdd(cOrigin(r), cWidth(r), 0);
}
public static VectConstraint cBottomLeft(final RectConstraint r)
{
return cAdd(cOrigin(r), 0, cWidth(r));
}
public static VectConstraint cBottomRight(final RectConstraint r)
{
return cAdd(cOrigin(r), cSize(r));
}
public static VectConstraint cTopCenter(final RectConstraint r)
{
return cAdd(cOrigin(r), cHalf(cWidth(r)), 0);
}
public static VectConstraint cBottomCenter(final RectConstraint r)
{
return cAdd(cOrigin(r), cHalf(cWidth(r)), cWidth(r));
}
public static VectConstraint cCenterLeft(final RectConstraint r)
{
return cAdd(cOrigin(r), 0, cHalf(cWidth(r)));
}
public static VectConstraint cCenterRight(final RectConstraint r)
{
return cAdd(cOrigin(r), cWidth(r), cHalf(cWidth(r)));
}
/**
* Zero-sized RectView at given coord
*
* @param c coord
* @return rect
*/
public static RectConstraint cZeroRect(final VectConstraint c)
{
return new RectConstraint() {
@Override
public RectView getRect()
{
final Vect v = c.getVec();
return RectVal.make(v.x(), v.y(), 0, 0);
}
};
}
}

@ -11,11 +11,11 @@ import mightypork.utils.math.rect.RectView;
*/
public abstract class ContextAdapter implements PluggableRect {
private RectConstraint backing = null;
private RectBound backing = null;
@Override
public void setContext(RectConstraint rect)
public void setContext(RectBound rect)
{
this.backing = rect;
}

@ -0,0 +1,20 @@
package mightypork.utils.math.constraints;
/**
* Numeric constraint
*
* @author MightyPork
*/
public interface NumberBound {
public static final NumberBound ZERO = new NumberConst(0);
public static final NumberBound ONE = new NumberConst(1);
/**
* @return current value
*/
double getValue();
}

@ -2,16 +2,16 @@ package mightypork.utils.math.constraints;
/**
* Constant number {@link NumberConstraint}
* Constant number {@link NumberBound}
*
* @author MightyPork
*/
public class FixedNumberConstraint implements NumberConstraint {
public class NumberConst implements NumberBound {
private final double value;
public FixedNumberConstraint(double value) {
public NumberConst(double value) {
this.value = value;
}

@ -1,20 +0,0 @@
package mightypork.utils.math.constraints;
/**
* Numeric constraint
*
* @author MightyPork
*/
public interface NumberConstraint {
public static final NumberConstraint ZERO = new FixedNumberConstraint(0);
public static final NumberConstraint ONE = new FixedNumberConstraint(1);
/**
* @return current value
*/
double getValue();
}

@ -9,12 +9,12 @@ import mightypork.utils.math.rect.RectView;
*
* @author MightyPork
*/
public interface PluggableRect extends RectConstraint {
public interface PluggableRect extends RectBound {
/**
* @param rect context to set
*/
abstract void setContext(RectConstraint rect);
abstract void setContext(RectBound rect);
@Override

@ -9,7 +9,7 @@ import mightypork.utils.math.rect.RectView;
*
* @author MightyPork
*/
public interface RectConstraint {
public interface RectBound {
/**
* @return rect region

@ -8,22 +8,22 @@ import mightypork.utils.math.rect.RectView;
/**
* {@link RectConstraint} cache, used for caching computed Rect from a complex
* {@link RectConstraint}.<br>
* {@link RectBound} cache, used for caching computed Rect from a complex
* {@link RectBound}.<br>
* Calculates only when polled.
*
* @author MightyPork
*/
public class RectCache implements RectConstraint, Pollable {
public class RectCache implements RectBound, Pollable {
private final RectConstraint observed;
private final RectBound observed;
private final RectMutable cached = RectMutable.zero();
/**
* @param observed cached constraint
*/
public RectCache(RectConstraint observed) {
public RectCache(RectBound observed) {
this.observed = observed;
poll();
}
@ -35,7 +35,7 @@ public class RectCache implements RectConstraint, Pollable {
* @param poller poller to join
* @param rc observed constraint
*/
public RectCache(Poller poller, RectConstraint rc) {
public RectCache(Poller poller, RectBound rc) {
this(rc);
poller.add(this);
}
@ -44,7 +44,7 @@ public class RectCache implements RectConstraint, Pollable {
@Override
public RectView getRect()
{
return cached.view();
return cached.getView();
}

@ -1,18 +0,0 @@
package mightypork.utils.math.constraints;
import mightypork.utils.math.vect.VectVal;
/**
* Vector constraint.
*
* @author MightyPork
*/
public interface VectConstraint {
/**
* @return the constraint vec
*/
VectVal getVec();
}

@ -1,11 +1,8 @@
package mightypork.utils.math.rect;
import static mightypork.utils.math.constraints.Constraints.*;
import mightypork.utils.math.constraints.VectConstraint;
import mightypork.utils.math.vect.Vect;
import mightypork.utils.math.vect.VectVal;
import mightypork.utils.math.vect.VectView;
/**
@ -16,149 +13,122 @@ import mightypork.utils.math.vect.VectView;
public abstract class AbstractRect implements Rect {
private RectProxy proxy;
private VectConstraint tl;
private VectConstraint tc;
private VectConstraint tr;
private VectConstraint cl;
private VectConstraint c;
private VectConstraint cr;
private VectConstraint bl;
private VectConstraint bc;
private VectConstraint br;
@Override
public final RectView getRect()
{
return this.view();
return this.getView();
}
@Override
public final VectVal getTopLeft()
public final VectVal topLeft()
{
// lazy init
if (tl == null) tl = cTopLeft(this);
return tl.getVec();
return origin();
}
@Override
public final VectVal getTopCenter()
public final VectVal topCenter()
{
// lazy init
if (tc == null) tc = cTopCenter(this);
return tc.getVec();
return origin().add(size().x() / 2, 0);
}
@Override
public final VectVal getTopRight()
public final VectVal topRight()
{
// lazy init
if (tr == null) tr = cTopRight(this);
return tr.getVec();
return origin().add(size().x(), 0);
}
@Override
public final VectVal getCenterLeft()
public final VectVal centerLeft()
{
// lazy init
if (cl == null) cl = cCenterLeft(this);
return cl.getVec();
return origin().add(0, size().y() / 2);
}
@Override
public final VectVal getCenter()
public final VectVal center()
{
// lazy init
if (c == null) c = cCenter(this);
return c.getVec();
return origin().add(size().half());
}
@Override
public final VectVal getCenterRight()
public final VectVal centerRight()
{
// lazy init
if (cr == null) cr = cCenterRight(this);
return cr.getVec();
return origin().add(size().x(), size().y() / 2);
}
@Override
public final VectVal getBottomLeft()
public final VectVal bottomLeft()
{
// lazy init
if (bl == null) bl = cBottomLeft(this);
return bl.getVec();
return origin().add(0, size().y());
}
@Override
public final VectVal getBottomCenter()
public final VectVal bottomCenter()
{
// lazy init
if (bc == null) bc = cBottomCenter(this);
return bc.getVec();
return origin().add(size().x() / 2, size().y());
}
@Override
public final VectVal getBottomRight()
public final VectVal bottomRight()
{
// lazy init
if (br == null) br = cBottomRight(this);
return br.getVec();
return origin().add(size().x(), size().y());
}
@Override
public final double getWidth()
public final double width()
{
return getSize().x();
return size().x();
}
@Override
public final double getHeight()
public final double height()
{
return getSize().y();
return size().y();
}
@Override
public final double xMin()
public final double getLeft()
{
return getOrigin().x();
return origin().x();
}
@Override
public final double xMax()
public final double right()
{
return getOrigin().x() + getSize().x();
return origin().x() + size().x();
}
@Override
public final double yMin()
public final double top()
{
return getOrigin().y();
return origin().y();
}
@Override
public final double yMax()
public final double bottom()
{
return getOrigin().y() + getSize().y();
return origin().y() + size().y();
}
@Override
public RectProxy view()
public RectProxy getView()
{
if (proxy == null) proxy = new RectProxy(this);
@ -167,16 +137,9 @@ public abstract class AbstractRect implements Rect {
@Override
public RectMutable mutable()
public RectVal getValue()
{
return RectMutable.make(this);
}
@Override
public RectVal value()
{
return RectVal.make(getOrigin(), getSize());
return RectVal.make(origin(), size());
}
@ -186,10 +149,10 @@ public abstract class AbstractRect implements Rect {
final double x = point.x();
final double y = point.y();
final double x1 = getOrigin().x();
final double y1 = getOrigin().y();
final double x2 = x1 + getSize().x();
final double y2 = y1 + getSize().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;
}
@ -198,7 +161,7 @@ public abstract class AbstractRect implements Rect {
@Override
public String toString()
{
return String.format("Rect { %s - %s }", getTopLeft(), getBottomRight());
return String.format("Rect { %s - %s }", topLeft(), bottomRight());
}
}

@ -1,10 +1,9 @@
package mightypork.utils.math.rect;
import mightypork.utils.math.constraints.RectConstraint;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.vect.Vect;
import mightypork.utils.math.vect.VectVal;
import mightypork.utils.math.vect.VectView;
/**
@ -12,26 +11,18 @@ import mightypork.utils.math.vect.VectView;
*
* @author MightyPork
*/
public interface Rect extends RectConstraint {
public interface Rect extends RectBound {
RectVal ONE = new RectVal(0, 0, 1, 1);
RectVal ZERO = new RectVal(0, 0, 0, 0);
/**
* Get a writable copy
*
* @return writable copy
*/
RectMutable mutable();
/**
* Get a copy of current value
*
* @return copy
*/
RectVal value();
RectVal getValue();
/**
@ -39,61 +30,61 @@ public interface Rect extends RectConstraint {
*
* @return proxy
*/
RectProxy view();
RectProxy getView();
/**
* @return origin
*/
VectVal getOrigin();
VectVal origin();
VectVal getSize();
VectVal size();
double getWidth();
double width();
double getHeight();
double height();
VectVal getTopLeft();
VectVal topLeft();
VectVal getTopCenter();
VectVal topCenter();
VectVal getTopRight();
VectVal topRight();
VectVal getCenterLeft();
VectVal centerLeft();
VectVal getCenter();
VectVal center();
VectVal getCenterRight();
VectVal centerRight();
VectVal getBottomLeft();
VectVal bottomLeft();
VectVal getBottomCenter();
VectVal bottomCenter();
VectVal getBottomRight();
VectVal bottomRight();
double xMin();
double getLeft();
double xMax();
double right();
double yMin();
double top();
double yMax();
double bottom();
/**

@ -96,7 +96,7 @@ public abstract class RectMutable extends RectMath<RectMutable> {
*/
public static RectMutable make(Rect other)
{
return make(other.getOrigin(), other.getSize());
return make(other.origin(), other.size());
}
@ -121,7 +121,7 @@ public abstract class RectMutable extends RectMath<RectMutable> {
*/
public RectMutable setTo(Rect rect)
{
return setTo(rect.getOrigin(), rect.getSize());
return setTo(rect.origin(), rect.size());
}

@ -92,16 +92,16 @@ class RectMutableImpl extends RectMutable {
@Override
public VectVal getOrigin()
public VectVal origin()
{
return pos.value();
return pos.getValue();
}
@Override
public VectVal getSize()
public VectVal size()
{
return size.value();
return size.getValue();
}

@ -2,7 +2,6 @@ package mightypork.utils.math.rect;
import mightypork.utils.math.vect.VectVal;
import mightypork.utils.math.vect.VectView;
/**
@ -21,16 +20,16 @@ public class RectProxy extends RectView {
@Override
public VectVal getOrigin()
public VectVal origin()
{
return observed.getOrigin();
return observed.origin();
}
@Override
public VectVal getSize()
public VectVal size()
{
return observed.getSize();
return observed.size();
}
}

@ -3,7 +3,6 @@ package mightypork.utils.math.rect;
import mightypork.utils.math.vect.Vect;
import mightypork.utils.math.vect.VectVal;
import mightypork.utils.math.vect.VectView;
public class RectVal extends RectView {
@ -115,21 +114,21 @@ public class RectVal extends RectView {
@Override
public RectVal value()
public RectVal getValue()
{
return this; // nothing can change.
}
@Override
public VectVal getOrigin()
public VectVal origin()
{
return pos;
}
@Override
public VectVal getSize()
public VectVal size()
{
return size;
}

@ -1,8 +1,6 @@
package mightypork.utils.math.rect;
/**
* Immutable rect
*
@ -16,35 +14,37 @@ public abstract class RectView extends RectMath<RectVal> {
* @param observed observed rect
* @return view
*/
public static RectView make(Rect observed) {
return observed.view();
public static RectView make(Rect observed)
{
return observed.getView();
}
@Override
public RectVal move(double x, double y)
{
return RectVal.make(getOrigin().add(x, y), getSize());
return RectVal.make(origin().add(x, y), size());
}
@Override
public RectVal shrink(double left, double right, double top, double bottom)
{
return RectVal.make(getOrigin().add(left, top), getSize().sub(left + right, top + bottom));
return RectVal.make(origin().add(left, top), size().sub(left + right, top + bottom));
}
@Override
public RectVal grow(double left, double right, double top, double bottom)
{
return RectVal.make(getOrigin().sub(left, top), getSize().add(left + right, top + bottom));
return RectVal.make(origin().sub(left, top), size().add(left + right, top + bottom));
}
@Override
public RectVal round()
{
return RectVal.make(getOrigin().round(), getSize().round());
return RectVal.make(origin().round(), size().round());
}
}

@ -1,22 +1,15 @@
package mightypork.utils.math.vect;
import mightypork.utils.math.constraints.NumberConstraint;
import mightypork.utils.math.constraints.NumberBound;
public abstract class AbstractVect implements Vect {
private VectView proxy;
private NumberConstraint xc;
private NumberConstraint yc;
private NumberConstraint zc;
@Override
public final VectVal getVec()
{
return value();
}
private NumberBound xc;
private NumberBound yc;
private NumberBound zc;
@Override
@ -53,9 +46,9 @@ public abstract class AbstractVect implements Vect {
@Override
public final NumberConstraint xc()
public final NumberBound xc()
{
if (xc == null) xc = new NumberConstraint() {
if (xc == null) xc = new NumberBound() {
@Override
public double getValue()
@ -69,9 +62,9 @@ public abstract class AbstractVect implements Vect {
@Override
public final NumberConstraint yc()
public final NumberBound yc()
{
if (yc == null) yc = new NumberConstraint() {
if (yc == null) yc = new NumberBound() {
@Override
public double getValue()
@ -85,9 +78,9 @@ public abstract class AbstractVect implements Vect {
@Override
public final NumberConstraint zc()
public final NumberBound zc()
{
if (zc == null) zc = new NumberConstraint() {
if (zc == null) zc = new NumberBound() {
@Override
public double getValue()
@ -116,7 +109,7 @@ public abstract class AbstractVect implements Vect {
@Override
public VectVal value()
public VectVal getValue()
{
return new VectVal(this);
}
@ -171,20 +164,12 @@ public abstract class AbstractVect implements Vect {
@Override
public VectMutable mutable()
{
return VectMutable.make(this);
}
@Override
public VectView view()
public VectView getView()
{
if (proxy == null) proxy = new VectProxy(this);
return proxy;
}
@Override

@ -1,33 +1,33 @@
package mightypork.utils.math.vect;
import mightypork.utils.math.constraints.NumberConstraint;
import mightypork.utils.math.constraints.NumberBound;
/**
* Coord view composed of given {@link NumberConstraint}s, using their current
* Coord view composed of given {@link NumberBound}s, using their current
* values.
*
* @author MightyPork
*/
class NumConstrVect extends VectView {
private final NumberConstraint constrX;
private final NumberConstraint constrY;
private final NumberConstraint constrZ;
private final NumberBound constrX;
private final NumberBound constrY;
private final NumberBound constrZ;
public NumConstrVect(NumberConstraint x, NumberConstraint y, NumberConstraint z) {
public NumConstrVect(NumberBound x, NumberBound y, NumberBound z) {
this.constrX = x;
this.constrY = y;
this.constrZ = z;
}
public NumConstrVect(NumberConstraint x, NumberConstraint y) {
public NumConstrVect(NumberBound x, NumberBound y) {
this.constrX = x;
this.constrY = y;
this.constrZ = NumberConstraint.ZERO;
this.constrZ = NumberBound.ZERO;
}

@ -1,8 +1,7 @@
package mightypork.utils.math.vect;
import mightypork.utils.math.constraints.NumberConstraint;
import mightypork.utils.math.constraints.VectConstraint;
import mightypork.utils.math.constraints.NumberBound;
/**
@ -10,7 +9,7 @@ import mightypork.utils.math.constraints.VectConstraint;
*
* @author MightyPork
*/
public interface Vect extends VectConstraint {
public interface Vect {
public static final VectVal ZERO = new VectVal(0, 0, 0);
public static final VectVal ONE = new VectVal(0, 0, 0);
@ -55,19 +54,19 @@ public interface Vect extends VectConstraint {
/**
* @return X constraint
*/
NumberConstraint xc();
NumberBound xc();
/**
* @return Y constraint
*/
NumberConstraint yc();
NumberBound yc();
/**
* @return Z constraint
*/
NumberConstraint zc();
NumberBound zc();
/**
@ -134,7 +133,7 @@ public interface Vect extends VectConstraint {
*
* @return a immutable copy
*/
VectVal value();
VectVal getValue();
/**
@ -142,13 +141,5 @@ public interface Vect extends VectConstraint {
*
* @return immutable view
*/
VectView view();
/**
* Get a mutable copy of current values.
*
* @return mutable copy
*/
VectMutable mutable();
VectView getView();
}

@ -7,7 +7,7 @@ public abstract class VectAdapter extends VectView {
* @return the proxied coord
*/
protected abstract Vect getSource();
@Override
public double x()

@ -86,7 +86,7 @@ public class VectMutableAnim extends VectMutable implements Pauseable, Updateabl
public VectMutableAnim add(Vect offset, double speed)
{
animate(view().add(offset), speed);
animate(getView().add(offset), speed);
return this;
}

@ -18,7 +18,7 @@ public final class VectVal extends VectView {
*/
public static VectVal make(Vect value)
{
return value.value();
return value.getValue();
}
@ -89,7 +89,7 @@ public final class VectVal extends VectView {
*/
@Override
@Deprecated
public VectVal value()
public VectVal getValue()
{
return this; // it's constant already
}

@ -2,7 +2,7 @@ package mightypork.utils.math.vect;
import mightypork.gamecore.control.interf.DefaultImpl;
import mightypork.utils.math.constraints.NumberConstraint;
import mightypork.utils.math.constraints.NumberBound;
/**
@ -11,7 +11,7 @@ import mightypork.utils.math.constraints.NumberConstraint;
* @author MightyPork
*/
public abstract class VectView extends VectMath<VectVal> { // returns constant value on edit
/**
* Make a proxy view at a vector.
*
@ -20,7 +20,7 @@ public abstract class VectView extends VectMath<VectVal> { // returns constant v
*/
public static VectView make(Vect observed)
{
return observed.view();
return observed.getView();
}
@ -31,7 +31,7 @@ public abstract class VectView extends VectMath<VectVal> { // returns constant v
* @param yc Y value
* @return view at the values
*/
public static VectView make(NumberConstraint xc, NumberConstraint yc)
public static VectView make(NumberBound xc, NumberBound yc)
{
return new NumConstrVect(xc, yc);
}
@ -45,7 +45,7 @@ public abstract class VectView extends VectMath<VectVal> { // returns constant v
* @param zc Z value
* @return view at the values
*/
public static VectView make(NumberConstraint xc, NumberConstraint yc, NumberConstraint zc)
public static VectView make(NumberBound xc, NumberBound yc, NumberBound zc)
{
return new NumConstrVect(xc, yc, zc);
}
@ -63,7 +63,7 @@ public abstract class VectView extends VectMath<VectVal> { // returns constant v
*/
@Override
@Deprecated
public VectView view()
public VectView getView()
{
return this; // already not mutable
}
@ -75,5 +75,5 @@ public abstract class VectView extends VectMath<VectVal> { // returns constant v
{
return 0; // implemented for ease with 2D anonymous subtypes
}
}

@ -154,8 +154,8 @@ public class Convert {
public static VectVal toVect(Object o, Vect def)
{
try {
if (o == null) return def.value();
if (o instanceof Vect) return ((Vect) o).value();
if (o == null) return def.getValue();
if (o instanceof Vect) return ((Vect) o).getValue();
if (o instanceof String) {
String s = ((String) o).trim().toUpperCase();
@ -183,7 +183,7 @@ public class Convert {
// ignore
}
return def.value();
return def.getValue();
}

Loading…
Cancel
Save