diff --git a/src/mightypork/rogue/display/ScreenSplash.java b/src/mightypork/rogue/display/ScreenSplash.java
index c93f1b5..67c9952 100644
--- a/src/mightypork/rogue/display/ScreenSplash.java
+++ b/src/mightypork/rogue/display/ScreenSplash.java
@@ -2,7 +2,6 @@ package mightypork.rogue.display;
import org.lwjgl.input.Keyboard;
-import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.Display;
import mightypork.rogue.App;
diff --git a/src/mightypork/rogue/display/constraints/Constraint.java b/src/mightypork/rogue/display/constraints/Constraint.java
new file mode 100644
index 0000000..12bbf1f
--- /dev/null
+++ b/src/mightypork/rogue/display/constraints/Constraint.java
@@ -0,0 +1,34 @@
+package mightypork.rogue.display.constraints;
+
+import mightypork.utils.math.coord.Coord;
+
+
+public abstract class Constraint implements ConstraintContext {
+
+ protected ConstraintContext context;
+
+
+ public Constraint(ConstraintContext context) {
+ this.context = context;
+ }
+
+
+ public void setContext(ConstraintContext context) {
+ this.context = context;
+ }
+
+
+ public ConstraintContext getContext()
+ {
+ return context;
+ }
+
+ protected Coord origin() {
+ return context.getRect().getOrigin();
+ }
+
+ protected Coord size() {
+ return context.getRect().getSize();
+ }
+
+}
diff --git a/src/mightypork/rogue/display/constraints/ConstraintContext.java b/src/mightypork/rogue/display/constraints/ConstraintContext.java
new file mode 100644
index 0000000..4395a02
--- /dev/null
+++ b/src/mightypork/rogue/display/constraints/ConstraintContext.java
@@ -0,0 +1,9 @@
+package mightypork.rogue.display.constraints;
+
+import mightypork.utils.math.coord.Coord;
+import mightypork.utils.math.coord.Rect;
+
+
+public interface ConstraintContext {
+ public Rect getRect();
+}
diff --git a/src/mightypork/rogue/testing/TestConstraints.java b/src/mightypork/rogue/testing/TestConstraints.java
new file mode 100644
index 0000000..5823d28
--- /dev/null
+++ b/src/mightypork/rogue/testing/TestConstraints.java
@@ -0,0 +1,84 @@
+package mightypork.rogue.testing;
+
+
+import mightypork.rogue.display.constraints.Constraint;
+import mightypork.rogue.display.constraints.ConstraintContext;
+import mightypork.utils.math.coord.Coord;
+import mightypork.utils.math.coord.Rect;
+
+
+public class TestConstraints {
+
+ public static void main(String[] args)
+ {
+ ConstraintContext context = new ConstraintContext() {
+
+ @Override
+ public Rect getRect()
+ {
+ return Rect.fromSize(new Coord(0, 0), new Coord(400, 300));
+ }
+ };
+
+ class Navbar extends Constraint {
+
+ private double height;
+
+
+ public Navbar(ConstraintContext context, double height) {
+ super(context);
+ this.height = height;
+ }
+
+
+ @Override
+ public Rect getRect()
+ {
+ return Rect.fromSize(origin().setY(size().y - height), size().setY(height));
+ }
+ }
+
+ class TileHorizontal extends Constraint {
+
+ private int count;
+ private int tile;
+
+
+ public TileHorizontal(ConstraintContext context, int tileCount, int aTile) {
+ super(context);
+ this.count = tileCount;
+ setTile(aTile);
+ }
+
+
+ public void setTile(int aTile)
+ {
+ if (aTile > count) throw new IndexOutOfBoundsException("Tile count exceeded: " + aTile + " max: " + count);
+ this.tile = aTile;
+ }
+
+
+ @Override
+ public Rect getRect()
+ {
+ Coord size = size().mul(1D / count, 1);
+ return Rect.fromSize(origin().add(size.x * tile, 0), size);
+ }
+ }
+
+ Navbar nb = new Navbar(context, 100);
+
+ TileHorizontal tile = new TileHorizontal(nb, 5, 0);
+
+ for (int i = 0; i < 5; i++) {
+ tile.setTile(i);
+
+ System.out.println(tile.getRect());
+ }
+
+ System.out.println("nb:" + nb.getRect());
+
+ System.out.println("ctx:" + context.getRect());
+ }
+
+}
diff --git a/src/mightypork/rogue/util/RenderUtils.java b/src/mightypork/rogue/util/RenderUtils.java
index 0643515..6fa2844 100644
--- a/src/mightypork/rogue/util/RenderUtils.java
+++ b/src/mightypork/rogue/util/RenderUtils.java
@@ -19,11 +19,12 @@ import org.newdawn.slick.opengl.Texture;
* @author MightyPork
*/
public class RenderUtils {
-
+
private static final Coord AXIS_X = new Coord(1, 0, 0);
private static final Coord AXIS_Y = new Coord(0, 1, 0);
private static final Coord AXIS_Z = new Coord(0, 0, 1);
+
/**
* Render quad 2D
*
@@ -371,7 +372,7 @@ public class RenderUtils {
*/
public static void quadRect(Rect rect)
{
- quadCoord(rect.getMin(), rect.getMax());
+ quadCoord(rect.getOrigin(), rect.getMax());
}
@@ -384,7 +385,7 @@ public class RenderUtils {
public static void quadRect(Rect rect, RGB color)
{
setColor(color);
- quadCoord(rect.getMin(), rect.getMax());
+ quadCoord(rect.getOrigin(), rect.getMax());
}
@@ -398,7 +399,7 @@ public class RenderUtils {
*/
public static void quadBorder(Rect rect, double border, RGB borderColor, RGB insideColor)
{
- quadCoordBorder(rect.getMin(), rect.getMax(), border, borderColor, insideColor);
+ quadCoordBorder(rect.getOrigin(), rect.getMax(), border, borderColor, insideColor);
}
@@ -411,7 +412,7 @@ public class RenderUtils {
*/
public static void quadGradH(Rect rect, RGB colorLeft, RGB colorRight)
{
- quadCoordGradH(rect.getMin(), rect.getMax(), colorLeft, colorRight);
+ quadCoordGradH(rect.getOrigin(), rect.getMax(), colorLeft, colorRight);
}
@@ -424,7 +425,7 @@ public class RenderUtils {
*/
public static void quadGradHBilinear(Rect rect, RGB colorOuter, RGB colorMiddle)
{
- quadCoordGradHBilinear(rect.getMin(), rect.getMax(), colorOuter, colorMiddle);
+ quadCoordGradHBilinear(rect.getOrigin(), rect.getMax(), colorOuter, colorMiddle);
}
@@ -437,7 +438,7 @@ public class RenderUtils {
*/
public static void quadGradV(Rect rect, RGB colorTop, RGB colorBottom)
{
- quadCoordGradV(rect.getMin(), rect.getMax(), colorTop, colorBottom);
+ quadCoordGradV(rect.getOrigin(), rect.getMax(), colorTop, colorBottom);
}
@@ -450,7 +451,7 @@ public class RenderUtils {
*/
public static void quadGradVBilinear(Rect rect, RGB colorOuter, RGB colorMiddle)
{
- quadCoordGradVBilinear(rect.getMin(), rect.getMax(), colorOuter, colorMiddle);
+ quadCoordGradVBilinear(rect.getOrigin(), rect.getMax(), colorOuter, colorMiddle);
}
@@ -464,7 +465,7 @@ public class RenderUtils {
*/
public static void quadRectOutset(Rect rect, double border, RGB fill, boolean inset)
{
- quadCoordOutset(rect.getMin(), rect.getMax(), border, fill, inset);
+ quadCoordOutset(rect.getOrigin(), rect.getMax(), border, fill, inset);
}
@@ -526,7 +527,7 @@ public class RenderUtils {
setColor(tint);
TextureManager.bind(texture);
- quadTexturedAbs(quad, txCoords.div(texture.getImageHeight()));
+ quadTexturedAbs(quad, txCoords.mul(1 / texture.getImageHeight()));
TextureManager.unbind();
glDisable(GL_TEXTURE_2D);
diff --git a/src/mightypork/utils/math/coord/Coord.java b/src/mightypork/utils/math/coord/Coord.java
index 7e40402..6cc9365 100644
--- a/src/mightypork/utils/math/coord/Coord.java
+++ b/src/mightypork/utils/math/coord/Coord.java
@@ -7,13 +7,12 @@ import mightypork.utils.math.Calc;
/**
- * Coordinate class, object with three or two double coordinates.
+ * Coordinate in 3D space, or a vector of three {@link Double}s
*
* @author MightyPork
*/
public class Coord {
- /** RNG */
protected static Random rand = new Random();
@@ -29,33 +28,6 @@ public class Coord {
return a.distTo(b);
}
-
- /**
- * Generate random coord (gaussian)
- *
- * @param max max distance from 0
- * @return new coord
- */
- public static Coord random(double max)
- {
- return new Coord(Calc.clampd(rand.nextGaussian() * max, -max * 2, max * 2), Calc.clampd(rand.nextGaussian() * max, -max * 2, max * 2),
- Calc.clampd(rand.nextGaussian() * max, -max * 2, max * 2));
- }
-
-
- /**
- * Generate random coord (min-max)
- *
- * @param min min offset
- * @param max max offset
- * @return new coord
- */
- public static Coord random(double min, double max)
- {
- return new Coord((rand.nextBoolean() ? -1 : 1) * (min + rand.nextDouble() * (max - min)), (rand.nextBoolean() ? -1 : 1) * (min + rand.nextDouble() * (max - min)),
- (rand.nextBoolean() ? -1 : 1) * (min + rand.nextDouble() * (max - min)));
- }
-
/** X coordinate */
public double x = 0;
@@ -78,9 +50,7 @@ public class Coord {
* @param copied copied coord
*/
public Coord(Coord copied) {
- this.x = copied.x;
- this.y = copied.y;
- this.z = copied.z;
+ setTo(copied);
}
@@ -108,76 +78,73 @@ public class Coord {
/**
- * Get a copy offset by vector
+ * Add a vector, in a copy
*
* @param vec offset
- * @return the offset copy
+ * @return changed copy
*/
public Coord add(Coord vec)
{
- return getCopy().add_ip(vec);
+ return copy().add_ip(vec);
}
/**
- * Get a copy offset by 2D coordinate
+ * Add a vector, in place
*
- * @param x x offset
- * @param y y offset
- * @return the offset copy
+ * @param vec offset
+ * @return this
*/
- public Coord add(Number x, Number y)
+ public Coord add_ip(Coord vec)
{
- return getCopy().add_ip(x, y);
+ return add_ip(vec.x, vec.y, vec.z);
}
/**
- * Get a copy offset by 3D coordinate
+ * Add to each component, in a copy.
+ * Z is unchanged.
*
* @param x x offset
* @param y y offset
- * @param z z offset
- * @return the offset copy
+ * @return changed copy
*/
- public Coord add(Number x, Number y, Number z)
+ public Coord add(Number x, Number y)
{
- return getCopy().add_ip(x, y, z);
+ return copy().add_ip(x, y);
}
/**
- * Offset by vector in place
+ * Add to each component, in place.
+ * Z is unchanged.
*
- * @param vec offset
+ * @param x x offset
+ * @param y y offset
* @return this
*/
- public Coord add_ip(Coord vec)
+ public Coord add_ip(Number x, Number y)
{
- this.x += vec.x;
- this.y += vec.y;
- this.z += vec.z;
- return this;
+ return add_ip(x, y, 0);
}
/**
- * Offset by 2D coordinate in place
+ * Add to each component, in a copy.
*
* @param x x offset
* @param y y offset
- * @return this
+ * @param z z offset
+ * @return changed copy
*/
- public Coord add_ip(Number x, Number y)
+ public Coord add(Number x, Number y, Number z)
{
- this.x += x.doubleValue();
- this.y += y.doubleValue();
- return this;
+ return copy().add_ip(x, y, z);
}
/**
- * Offset by 3D coordinate in place
+ * Add to each component, in place.
*
* @param x x offset
* @param y y offset
@@ -194,9 +161,11 @@ public class Coord {
/**
- * @return copy of this vector
+ * Make a copy
+ *
+ * @return a copy
*/
- public Coord getCopy()
+ public Coord copy()
{
return new Coord(x, y, z);
}
@@ -215,30 +184,14 @@ public class Coord {
/**
- * Get copy divided by number
- *
- * @param d number to divide by
- * @return divided copy
- */
- public Coord div(double d)
- {
- return getCopy().div_ip(d);
- }
-
-
- /**
- * Divide by number in place
+ * Check if this rectangle in inside a rectangular zone
*
- * @param d number to divide by
- * @return this
+ * @param rect checked rect.
+ * @return is inside
*/
- public Coord div_ip(double d)
+ public boolean isInRect(Rect rect)
{
- if (d == 0) return this;
- x /= d;
- y /= d;
- z /= d;
- return this;
+ return isInRect(rect.min, rect.max);
}
@@ -256,111 +209,150 @@ public class Coord {
/**
- * Check if this rectangle in inside a rectangular zone
+ * Get middle of line to other point
*
- * @param rect checked rect.
- * @return is inside
+ * @param other other point
+ * @return middle
*/
- public boolean isInRect(Rect rect)
+ public Coord midTo(Coord other)
{
- return isInRect(rect.min, rect.max);
+ return add(vecTo(other).half_ip());
}
/**
- * Get middle of line to other point
+ * Get copy divided by two
*
- * @param other other point
- * @return middle
+ * @return copy halved
*/
- public Coord midTo(Coord other)
+ public Coord half()
{
- return add(vecTo(other).mul_ip(0.5));
+ return copy().half_ip();
}
/**
- * Multiply by number
+ * Divide in place by two
*
- * @param d number
- * @return multiplied copy
+ * @return this
*/
- public Coord mul(double d)
+ public Coord half_ip()
{
- return getCopy().mul_ip(d);
+ mul_ip(0.5);
+ return this;
}
/**
- * Multiply coords by number
+ * Multiply each component, in a copy.
*
- * @param xd x multiplier
- * @param yd y multiplier
- * @param zd z multiplier
- * @return multiplied copy
+ * @param d multiplier
+ * @return changed copy
*/
- public Coord mul(double xd, double yd, double zd)
+ public Coord mul(double d)
{
- return getCopy().mul_ip(xd, yd, zd);
+ return copy().mul_ip(d);
}
/**
- * Multiply by number in place
+ * Multiply each component, in place.
*
* @param d multiplier
* @return this
*/
public Coord mul_ip(double d)
{
- x *= d;
- y *= d;
- z *= d;
- return this;
+ return mul_ip(d, d, d);
}
/**
- * Multiply coords by number in place
+ * Multiply each component, in a copy.
*
- * @param xd x multiplier
- * @param yd y multiplier
- * @param zd z multiplier
+ * @param vec vector of multipliers
+ * @return changed copy
+ */
+ public Coord mul(Coord vec)
+ {
+ return copy().mul_ip(vec);
+ }
+
+
+ /**
+ * Multiply each component, in a copy.
+ * Z is unchanged.
+ *
+ * @param x x multiplier
+ * @param y y multiplier
+ * @return changed copy
+ */
+ public Coord mul(double x, int y)
+ {
+ return copy().mul_ip(x, y);
+ }
+
+
+ /**
+ * Multiply each component, in place.
+ * Z is unchanged.
+ *
+ * @param x x multiplier
+ * @param y y multiplier
* @return this
*/
- public Coord mul_ip(double xd, double yd, double zd)
+ public Coord mul_ip(double x, double y)
{
- x *= xd;
- y *= yd;
- z *= zd;
- return this;
+ return mul_ip(x, y, 1);
}
/**
- * offset randomly
+ * Multiply each component, in a copy.
*
- * @param max max +- offset
- * @return offset coord
+ * @param x x multiplier
+ * @param y y multiplier
+ * @param z z multiplier
+ * @return changed copy
*/
- public Coord random_offset(double max)
+ public Coord mul(double x, double y, double z)
{
- Coord v = random(1).norm_ip(0.00001 + rand.nextDouble() * max);
+ return copy().mul_ip(x, y, z);
+ }
- return getCopy().add_ip(v);
+
+ /**
+ * Multiply each component, in place.
+ *
+ * @param vec vector of multipliers
+ * @return this
+ */
+ public Coord mul_ip(Coord vec)
+ {
+ return mul_ip(vec.x, vec.y, vec.z);
}
/**
- * offset randomly
+ * Multiply each component, in place.
*
- * @param min min offset
- * @param max max offset
- * @return offset coord
+ * @param x x multiplier
+ * @param y y multiplier
+ * @param z z multiplier
+ * @return this
*/
- public Coord random_offset(double min, double max)
+ public Coord mul_ip(double x, double y, double z)
+ {
+ this.x *= x;
+ this.y *= y;
+ this.z *= z;
+ return this;
+ }
+
+
+ public Coord random_offset(double max)
{
- return getCopy().add_ip(random(min, max));
+ return copy().random_offset_ip(max);
}
@@ -372,7 +364,20 @@ public class Coord {
*/
public Coord random_offset_ip(double max)
{
- return add(random(max));
+ return add(random(1).norm_ip(rand.nextDouble() * max));
+ }
+
+
+ /**
+ * offset randomly
+ *
+ * @param min min offset
+ * @param max max offset
+ * @return offset coord
+ */
+ public Coord random_offset(double min, double max)
+ {
+ return copy().random_offset_ip(min, max);
}
@@ -385,7 +390,7 @@ public class Coord {
*/
public Coord random_offset_ip(double min, double max)
{
- add(random(min, max));
+ add_ip(random(min, max));
return this;
}
@@ -397,7 +402,7 @@ public class Coord {
*/
public Coord round()
{
- return getCopy().round_ip();
+ return copy().round_ip();
}
@@ -420,7 +425,7 @@ public class Coord {
*
* @param other other coord
*/
- public void setMax(Coord other)
+ public void setToMax(Coord other)
{
x = Math.max(x, other.x);
y = Math.max(y, other.y);
@@ -433,7 +438,7 @@ public class Coord {
*
* @param other other coord
*/
- public void setMin(Coord other)
+ public void setToMin(Coord other)
{
x = Math.min(x, other.x);
y = Math.min(y, other.y);
@@ -449,8 +454,7 @@ public class Coord {
*/
public Coord setTo(Coord copied)
{
- setTo(copied.x, copied.y, copied.z);
- return this;
+ return setTo(copied.x, copied.y, copied.z);
}
@@ -463,8 +467,7 @@ public class Coord {
*/
public Coord setTo(Number x, Number y)
{
- setTo(x, y, 0);
- return this;
+ return setTo(x, y, 0);
}
@@ -493,7 +496,7 @@ public class Coord {
*/
public Coord setX(Number x)
{
- return getCopy().setX_ip(x);
+ return copy().setX_ip(x);
}
@@ -518,7 +521,7 @@ public class Coord {
*/
public Coord setY(Number y)
{
- return getCopy().setY_ip(y);
+ return copy().setY_ip(y);
}
@@ -543,7 +546,7 @@ public class Coord {
*/
public Coord setZ(Number z)
{
- return getCopy().setZ_ip(z);
+ return copy().setZ_ip(z);
}
@@ -568,7 +571,7 @@ public class Coord {
*/
public Coord sub(Coord vec)
{
- return getCopy().sub_ip(vec);
+ return copy().sub_ip(vec);
}
@@ -581,7 +584,7 @@ public class Coord {
*/
public Coord sub(Number x, Number y)
{
- return getCopy().sub_ip(x, y);
+ return copy().sub_ip(x, y);
}
@@ -595,7 +598,7 @@ public class Coord {
*/
public Coord sub(Number x, Number y, Number z)
{
- return getCopy().sub_ip(x, y, z);
+ return copy().sub_ip(x, y, z);
}
@@ -607,10 +610,7 @@ public class Coord {
*/
public Coord sub_ip(Coord vec)
{
- this.x -= vec.x;
- this.y -= vec.y;
- this.z -= vec.z;
- return this;
+ return sub_ip(vec.x, vec.y, vec.z);
}
@@ -623,9 +623,7 @@ public class Coord {
*/
public Coord sub_ip(Number x, Number y)
{
- this.x -= x.doubleValue();
- this.y -= y.doubleValue();
- return this;
+ return sub_ip(x, y, 0);
}
@@ -667,24 +665,6 @@ public class Coord {
}
- /**
- * @return X as double
- */
- public double xd()
- {
- return x;
- }
-
-
- /**
- * @return X as float
- */
- public float xf()
- {
- return (float) x;
- }
-
-
/**
* @return X as int
*/
@@ -703,24 +683,6 @@ public class Coord {
}
- /**
- * @return Y as double
- */
- public double yd()
- {
- return y;
- }
-
-
- /**
- * @return Y as float
- */
- public float yf()
- {
- return (float) y;
- }
-
-
/**
* @return Y as int
*/
@@ -739,24 +701,6 @@ public class Coord {
}
- /**
- * @return Z as double
- */
- public double zd()
- {
- return z;
- }
-
-
- /**
- * @return Z as float
- */
- public float zf()
- {
- return (float) z;
- }
-
-
/**
* @return Z as int
*/
@@ -796,11 +740,11 @@ public class Coord {
* Multiply by other vector, vector multiplication
*
* @param vec other vector
- * @return copy multiplied
+ * @return changed copy
*/
public Coord cross(Coord vec)
{
- return getCopy().cross_ip(vec);
+ return copy().cross_ip(vec);
}
@@ -812,7 +756,13 @@ public class Coord {
*/
public Coord cross_ip(Coord vec)
{
- setTo(y * vec.z - z * vec.y, z * vec.x - x * vec.z, x * vec.y - y * vec.x);
+ //@formatter:off
+ setTo(
+ y * vec.z - z * vec.y,
+ z * vec.x - x * vec.z,
+ x * vec.y - y * vec.x
+ );
+ //@formatter:on
return this;
}
@@ -832,11 +782,11 @@ public class Coord {
/**
* Negate all coordinates (* -1)
*
- * @return negated coordinate
+ * @return negated copy
*/
public Coord neg()
{
- return getCopy().neg_ip();
+ return copy().neg_ip();
}
@@ -860,60 +810,45 @@ public class Coord {
*/
public Coord norm(double size)
{
- return getCopy().norm_ip(size);
+ return copy().norm_ip(size);
}
/**
- * Scale vector to given size, in place
+ * Scale vector to given size, in place.
+ * Zero vector remains zero.
*
* @param size size we need
* @return scaled vector
*/
public Coord norm_ip(double size)
{
- if (size() == 0) {
- z = -1;
- }
- if (size == 0) {
- setTo(0, 0, 0);
- return this;
- }
+ if (isZero()) return this;
+
double k = size / size();
- mul_ip(k);
- return this;
+ return mul_ip(k);
}
/**
* Get vector size
*
- * @return vector size in units
+ * @return size in units
*/
public double size()
{
- return Math.sqrt(x * x + y * y + z * z);
- }
+ if (isZero()) return 0;
-
- /**
- * Get copy divided by two
- * @return copy halved
- */
- public Coord half()
- {
- return getCopy().half_ip();
+ return Math.sqrt(x * x + y * y + z * z);
}
/**
- * Divide in place by two
- * @return this
+ * @return true if this coord is a zero coord
*/
- public Coord half_ip()
+ public boolean isZero()
{
- mul_ip(0.5);
- return this;
+ return x == 0 && y == 0 && z == 0;
}
@@ -955,22 +890,60 @@ public class Coord {
/**
- * @return true if this coord is a zero coord
+ * Generate a zero coordinate
+ *
+ * @return coord of all zeros
*/
- public boolean isZero()
- {
- return x == 0 && y == 0 && z == 0;
- }
-
-
public static Coord zero()
{
return new Coord(0, 0, 0);
}
+ /**
+ * Generate a unit coordinate
+ *
+ * @return coord of all ones
+ */
public static Coord one()
{
return new Coord(1, 1, 1);
}
+
+
+ /**
+ * Generate random coord (gaussian)
+ *
+ * @param max max distance from 0
+ * @return new coord
+ */
+ public static Coord random(double max)
+ {
+ //@formatter:off
+ return new Coord(
+ Calc.clampd(rand.nextGaussian() * max, -max * 2, max * 2),
+ Calc.clampd(rand.nextGaussian() * max, -max * 2, max * 2),
+ Calc.clampd(rand.nextGaussian() * max, -max * 2, max * 2)
+ );
+ //@formatter:on
+ }
+
+
+ /**
+ * Generate random coord (min-max)
+ *
+ * @param min min offset
+ * @param max max offset
+ * @return new coord
+ */
+ public static Coord random(double min, double max)
+ {
+ //@formatter:off
+ return new Coord(
+ (rand.nextBoolean() ? -1 : 1) * (min + rand.nextDouble() * (max - min)),
+ (rand.nextBoolean() ? -1 : 1) * (min + rand.nextDouble() * (max - min)),
+ (rand.nextBoolean() ? -1 : 1) * (min + rand.nextDouble() * (max - min))
+ );
+ //@formatter:on
+ }
}
diff --git a/src/mightypork/utils/math/coord/CoordAnimated.java b/src/mightypork/utils/math/coord/CoordAnimated.java
index 5605fad..71be196 100644
--- a/src/mightypork/utils/math/coord/CoordAnimated.java
+++ b/src/mightypork/utils/math/coord/CoordAnimated.java
@@ -4,6 +4,11 @@ import mightypork.utils.math.Calc;
import mightypork.utils.time.Updateable;
+/**
+ * TODO revise
+ *
+ * @author MightyPork
+ */
public class CoordAnimated extends Coord implements Updateable {
private double animTime = 0;
@@ -81,7 +86,7 @@ public class CoordAnimated extends Coord implements Updateable {
*/
public Coord animGetCurrent()
{
- if (time == 0) return getCopy(); // avoid zero division
+ if (time == 0) return copy(); // avoid zero division
if (start == null) start = new Coord();
if (offs == null) offs = new Coord();
diff --git a/src/mightypork/utils/math/coord/Rect.java b/src/mightypork/utils/math/coord/Rect.java
index cabfe9a..ba6bf50 100644
--- a/src/mightypork/utils/math/coord/Rect.java
+++ b/src/mightypork/utils/math/coord/Rect.java
@@ -205,32 +205,6 @@ public class Rect {
}
- /**
- * Divide in copy
- *
- * @param factor divisor
- * @return offset copy
- */
- public Rect div(double factor)
- {
- return copy().div_ip(factor);
- }
-
-
- /**
- * Divide coord in place
- *
- * @param factor divisor
- * @return this
- */
- public Rect div_ip(double factor)
- {
- min.div_ip(factor);
- max.div_ip(factor);
- return this;
- }
-
-
/**
* Get copy with the same center and height=0
*
@@ -375,7 +349,7 @@ public class Rect {
/**
- * @return highjest coordinates xy
+ * @return highest coordinates xy
*/
public Coord getMax()
{
@@ -386,7 +360,7 @@ public class Rect {
/**
* @return lowest coordinates xy
*/
- public Coord getMin()
+ public Coord getOrigin()
{
return min;
}
@@ -764,7 +738,7 @@ public class Rect {
@Override
public String toString()
{
- return "rect{ " + min + " - " + max + " }";
+ return String.format("[( %4d, %4d )-( %4d, %4d )]", (int) min.x, (int) min.y, (int) max.x, (int) max.y);
}