@classmethod
def findOutsideBox2D(cls, b1, b2):
    """Compares bounding boxes

        Compares bounding boxes. Returns none if neither is inside the other.
        Returns the outer one if either is outside the other.

        BoundBox.isInside works in 3d, but this is a 2d bounding box, so it
        doesn't work correctly plus, there was all kinds of rounding error in
        the built-in implementation i do not understand.
        """
    fc_bb1 = b1.wrapped
    fc_bb2 = b2.wrapped
    if (fc_bb1.XMin < fc_bb2.XMin and fc_bb1.XMax > fc_bb2.XMax and fc_bb1.
        YMin < fc_bb2.YMin and fc_bb1.YMax > fc_bb2.YMax):
        return b1
    if (fc_bb2.XMin < fc_bb1.XMin and fc_bb2.XMax > fc_bb1.XMax and fc_bb2.
        YMin < fc_bb1.YMin and fc_bb2.YMax > fc_bb1.YMax):
        return b2
    return None
