the float variant was always shadowed by the int version as Rect2d is implicitly convertible to Rect. This swaps things which is fine, as the vector of boxes was always copied and the computation was done in double.