def should_use(intersection):
    """Check if an intersection can be used as part of a curved polygon.

    Will return :data:`True` if the intersection is classified as
    :attr:`~.IntersectionClassification.FIRST`,
    :attr:`~.IntersectionClassification.SECOND` or
    :attr:`~.IntersectionClassification.COINCIDENT` or if the intersection
    is classified is a corner / edge end which is classified as
    :attr:`~.IntersectionClassification.TANGENT_FIRST` or
    :attr:`~.IntersectionClassification.TANGENT_SECOND`.

    Args:
        intersection (.Intersection): An intersection to be added.

    Returns:
        bool: Indicating if the intersection will be used.
    """
    if intersection.interior_curve in ACCEPTABLE_CLASSIFICATIONS:
        return True

    if intersection.interior_curve in TANGENT_CLASSIFICATIONS:
        return intersection.s == 0.0 or intersection.t == 0.0

    return False
Check if an intersection can be used as part of a curved polygon.

    Will return :data:`True` if the intersection is classified as
    :attr:`~.IntersectionClassification.FIRST`,
    :attr:`~.IntersectionClassification.SECOND` or
    :attr:`~.IntersectionClassification.COINCIDENT` or if the intersection
    is classified is a corner / edge end which is classified as
    :attr:`~.IntersectionClassification.TANGENT_FIRST` or
    :attr:`~.IntersectionClassification.TANGENT_SECOND`.

    Args:
        intersection (.Intersection): An intersection to be added.

    Returns:
        bool: Indicating if the intersection will be used.