Just happened to noticed this. The operators *, *=, /, and /= don’t scale around origin when they’re documented as doing so, for instance:
...
/** Scales this rectangle by the given amount, centred around the origin.
Note that if the rectangle has int coordinates and it's scaled by a
floating-point amount, then the result will be converted back to integer
coordinates using getSmallestIntegerContainer().
*/
template <typename FloatType>
Rectangle operator*= (FloatType scaleFactor) noexcept
{
Rectangle<FloatType> (pos.x * scaleFactor,
pos.y * scaleFactor,
w * scaleFactor,
h * scaleFactor).copyWithRounding (*this);
return *this;
}
...
