static Rect randomRect_enclosing_in(int w, int h, Rect inner, Rect outer) { if (inner.w > w || inner.h > h) null; if (outer.w < w || outer.h < h) null; IntRange x1range = intersectIntRanges( intRange_incl(inner.x2()-w, inner.x), intRange_incl(outer.x1(), outer.x2()-w)); if (x1range.isEmpty()) null; IntRange y1range = intersectIntRanges( intRange_incl(inner.y2()-h, inner.y), intRange_incl(outer.y1(), outer.y2()-h)); if (y1range.isEmpty()) null; ret rect(random(x1range), random(y1range), w, h); }