def METHOD_NAME(self, bbox):
    """ Return the costs of bbox nodes after merging the given bbox. """
    # Find the new areas for all possible cases
    self_merge = bbox.merge(self.bbox)
    left_merge = bbox.merge(self.left.bbox)
    right_merge = bbox.merge(self.right.bbox)
    # Add the change in areas as cost
    self_cost = self_merge.area()
    left_cost = self_merge.area() - self.bbox.area()
    left_cost += left_merge.area() - self.left.bbox.area()
    right_cost = self_merge.area() - self.bbox.area()
    right_cost += right_merge.area() - self.right.bbox.area()
    # Add the overlaps in areas as cost
    self_overlap = self.bbox.overlap(bbox)
    left_overlap = left_merge.overlap(self.right.bbox)
    right_overlap = right_merge.overlap(self.left.bbox)
    if self_overlap:
        self_cost += self_overlap.area()
    if left_overlap:
        left_cost += left_overlap.area()
    if right_overlap:
        right_cost += right_overlap.area()
    return self_cost, left_cost, right_cost