Rect shiftYToFitInside(Rect container, {double force = 1}) { assert(0 <= force && force <= 1); return translate(0, (getLimitedCenterYInside(container) - center.dy) * force); }