diff options
author | Ida Massow <massow@informatik.uni-luebeck.de> | 2011-06-06 19:53:45 +0200 |
---|---|---|
committer | Ida Massow <massow@informatik.uni-luebeck.de> | 2011-06-06 19:53:45 +0200 |
commit | 682357b5841f7853212e354199d1a46589663364 (patch) | |
tree | 7a383625543dbfdedf297a97c927a518a38b30d3 /src/jrummikub/model/StoneTray.java | |
parent | 41786cb8423167fe5488931c695404f2b38b19f9 (diff) | |
download | JRummikub-682357b5841f7853212e354199d1a46589663364.tar JRummikub-682357b5841f7853212e354199d1a46589663364.zip |
Double ist das neue float
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@377 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/model/StoneTray.java')
-rw-r--r-- | src/jrummikub/model/StoneTray.java | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/src/jrummikub/model/StoneTray.java b/src/jrummikub/model/StoneTray.java index c4230f2..1f59afa 100644 --- a/src/jrummikub/model/StoneTray.java +++ b/src/jrummikub/model/StoneTray.java @@ -100,17 +100,17 @@ public class StoneTray<E extends Sizeable> implements IStoneTray<E> { return null; } - private static boolean lessOrEqual(float x, float y) { - if (-0.000001f < y && y < 0.000001f) { - return (x < y + 0.000001f); + private static boolean lessOrEqual(double d, double e) { + if (-0.000001 < e && e < 0.000001) { + return (d < e + 0.000001); } - float q = x / y; - if (0.999999f < q && q < 1.000001f) { + double q = d / e; + if (0.999999 < q && q < 1.000001) { return true; } - return x < y; + return d < e; } /** Tests whether two objects overlap **/ @@ -137,11 +137,11 @@ public class StoneTray<E extends Sizeable> implements IStoneTray<E> { private Direction getMoveDirection(E object, Position position, Pair<E, Position> blocking) { boolean isVertical = getMoveOrientation(object, position, blocking); - float objectMidpointX = position.getX() + object.getWidth() / 2; - float objectMidpointY = position.getY() + object.getHeight() / 2; - float blockingMidpointX = blocking.getSecond().getX() + double objectMidpointX = position.getX() + object.getWidth() / 2; + double objectMidpointY = position.getY() + object.getHeight() / 2; + double blockingMidpointX = blocking.getSecond().getX() + blocking.getFirst().getWidth() / 2; - float blockingMidpointY = blocking.getSecond().getY() + double blockingMidpointY = blocking.getSecond().getY() + blocking.getFirst().getHeight() / 2; if (isVertical) { if (objectMidpointY < blockingMidpointY) { @@ -165,20 +165,20 @@ public class StoneTray<E extends Sizeable> implements IStoneTray<E> { */ private boolean getMoveOrientation(E object, Position position, Pair<E, Position> blocking) { - float objectRight = position.getX() + object.getWidth(); - float blockingRight = blocking.getSecond().getX() + double objectRight = position.getX() + object.getWidth(); + double blockingRight = blocking.getSecond().getX() + blocking.getFirst().getWidth(); - float overlapRight = Math.min(objectRight, blockingRight); - float overlapLeft = Math.max(position.getX(), blocking.getSecond() + double overlapRight = Math.min(objectRight, blockingRight); + double overlapLeft = Math.max(position.getX(), blocking.getSecond() .getX()); - float overlapX = overlapRight - overlapLeft; - float objectBottom = position.getY() + object.getHeight(); - float blockingBottom = blocking.getSecond().getY() + double overlapX = overlapRight - overlapLeft; + double objectBottom = position.getY() + object.getHeight(); + double blockingBottom = blocking.getSecond().getY() + blocking.getFirst().getHeight(); - float overlapBottom = Math.min(objectBottom, blockingBottom); - float overlapTop = Math.max(position.getY(), blocking.getSecond() + double overlapBottom = Math.min(objectBottom, blockingBottom); + double overlapTop = Math.max(position.getY(), blocking.getSecond() .getY()); - float overlapY = overlapBottom - overlapTop; + double overlapY = overlapBottom - overlapTop; // vertical or horizontal Shift // TODO magic factor return overlapX > overlapY; |