Added shiftToContain().

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1856 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2002-10-29 06:07:22 +00:00
parent 5c189fbb14
commit e94ff3de5e
+29 -1
View File
@@ -1,9 +1,11 @@
//
// $Id: GeomUtil.java,v 1.2 2002/06/28 01:29:08 mdb Exp $
// $Id: GeomUtil.java,v 1.3 2002/10/29 06:07:22 mdb Exp $
package com.threerings.geom;
import java.awt.Point;
import java.awt.Rectangle;
import com.samskivert.util.StringUtil;
/**
@@ -112,4 +114,30 @@ public class GeomUtil
// we're on the left hand side and if it's zero, we're on the line
return dot(p1.x, p1.y, p2.x, p2.y, x, y);
}
/**
* Shifts the position of the <code>tainer</code> rectangle to ensure
* that it contains the <code>tained</code> rectangle. The
* <code>tainer</code> rectangle must be larger than or equal to the
* size of the <code>tained</code> rectangle.
*/
public static void shiftToContain (Rectangle tainer, Rectangle tained)
{
if (tainer.width < tained.width || tainer.height < tained.height) {
throw new IllegalArgumentException(
tainer + " cannot contain " + tained);
}
if (tained.x < tainer.x) {
tainer.x = tained.x;
}
if (tained.y < tainer.y) {
tainer.y = tained.y;
}
if (tained.x + tained.width > tainer.x + tainer.width) {
tainer.x = tained.x - (tainer.width - tained.width);
}
if (tained.y + tained.height > tainer.y + tainer.height) {
tainer.y = tained.y - (tainer.height - tained.height);
}
}
}