def size(self, value):
        """Move rects from/to center so 'size == value'.

        If possible.
        """
        self._sample_rect.size = value

        ### get an union rect
        union = self.union_rect

        ### store current topleft
        topleft = union.topleft

        ### inflate the group in place using the size
        ### difference

        ## calculate size difference
        size_difference = self._sample_rect.size - Vector2(union.size)

        ## use inflate_ip with size difference
        self.inflate_ip(size_difference)

        ### restore the inflated group to its original
        ### topleft position
        self.topleft = topleft
Move rects from/to center so 'size == value'.

        If possible.
        
nodezator/rectsman/spatial.py