def __init__(self, size=DEFAULT_BIN_SIZE, origin=Point(), bin_parameters=None):
        Bin.__init__(self, size=size, origin=origin, bin_parameters=bin_parameters)

        self.select_variant = self.bin_parameters['selection_variant']
        self.select_heuristic = self.bin_parameters['selection_heuristic']
        self.split_rule = self.bin_parameters['split_rule']

        self.free_rects = [Rect(size=self.size)]
    def __init__(self, size=DEFAULT_BIN_SIZE, origin=Point(), bin_parameters=None):
        Bin.__init__(self, size=size, origin=origin, bin_parameters=bin_parameters)

        self.free_rect = [Rect(size=self.size)]
    def __init__(self, size=DEFAULT_BIN_SIZE, origin=Point(0, 0), bin_parameters=None):
        Bin.__init__(self, size=size, origin=origin, bin_parameters=bin_parameters)

        self.shelfs = [Shelf(self.size)]