def no_intersections(nodes1, degree1, nodes2, degree2):
    """Determine if one triangle is in the other.

    Helper for :func:`combine_intersections` that handles the case
    of no points of intersection. In this case, either the triangles
    are disjoint or one is fully contained in the other.

    To check containment, it's enough to check if one of the corners
    is contained in the other triangle.

    Args:
        nodes1 (numpy.ndarray): The nodes defining the first triangle in
            the intersection (assumed in :math:\\mathbf{R}^2`).
        degree1 (int): The degree of the triangle given by ``nodes1``.
        nodes2 (numpy.ndarray): The nodes defining the second triangle in
            the intersection (assumed in :math:\\mathbf{R}^2`).
        degree2 (int): The degree of the triangle given by ``nodes2``.

    Returns:
        Tuple[Optional[list], Optional[bool]]: Pair (2-tuple) of

        * Edges info list; will be empty or :data:`None`
        * "Contained" boolean. If not :data:`None`, indicates
          that one of the triangles is contained in the other.
    """
    from bezier import _py_triangle_intersection
    located = _py_triangle_intersection.locate_point(nodes2, degree2,
        nodes1[0, 0], nodes1[1, 0])
    if located is not None:
        return None, True
    located = _py_triangle_intersection.locate_point(nodes1, degree1,
        nodes2[0, 0], nodes2[1, 0])
    if located is not None:
        return None, False
    return [], None
