def isect_segments__naive(segments):
    """
    Brute force O(n2) version of ``isect_segments`` for test validation.
    """
    isect = []

    # order points left -> right
    if Real is float:
        segments = [
            (s[0], s[1]) if s[0][X] <= s[1][X] else
            (s[1], s[0])
            for s in segments]
    else:
        segments = [
            (
                (Real(s[0][0]), Real(s[0][1])),
                (Real(s[1][0]), Real(s[1][1])),
            ) if (s[0] <= s[1]) else
            (
                (Real(s[1][0]), Real(s[1][1])),
                (Real(s[0][0]), Real(s[0][1])),
            )
            for s in segments]

    n = len(segments)

    for i in range(n):
        a0, a1 = segments[i]
        for j in range(i + 1, n):
            b0, b1 = segments[j]
            if a0 not in (b0, b1) and a1 not in (b0, b1):
                ix = isect_seg_seg_v2_point(a0, a1, b0, b1)
                if ix is not None:
                    # USE_IGNORE_SEGMENT_ENDINGS handled already
                    isect.append(ix)

    return isect
def isect_segments__naive(segments):
    """
    Brute force O(n2) version of ``isect_segments`` for test validation.
    """
    isect = []

    # order points left -> right
    if Real is float:
        segments = [
            (s[0], s[1]) if s[0][X] <= s[1][X] else
            (s[1], s[0])
            for s in segments]
    else:
        segments = [
            (
                (Real(s[0][0]), Real(s[0][1])),
                (Real(s[1][0]), Real(s[1][1])),
            ) if (s[0] <= s[1]) else
            (
                (Real(s[1][0]), Real(s[1][1])),
                (Real(s[0][0]), Real(s[0][1])),
            )
            for s in segments]

    n = len(segments)

    for i in range(n):
        a0, a1 = segments[i]
        for j in range(i + 1, n):
            b0, b1 = segments[j]
            if a0 not in (b0, b1) and a1 not in (b0, b1):
                ix = isect_seg_seg_v2_point(a0, a1, b0, b1)
                if ix is not None:
                    # USE_IGNORE_SEGMENT_ENDINGS handled already
                    isect.append(ix)

    return isect
def isect_segments__naive ( segments ) : isect = [ ] # order points left -> right if Real is float : segments = [ ( s [ 0 ] , s [ 1 ] ) if s [ 0 ] [ X ] <= s [ 1 ] [ X ] else ( s [ 1 ] , s [ 0 ] ) for s in segments ] else : segments = [ ( ( Real ( s [ 0 ] [ 0 ] ) , Real ( s [ 0 ] [ 1 ] ) ) , ( Real ( s [ 1 ] [ 0 ] ) , Real ( s [ 1 ] [ 1 ] ) ) , ) if ( s [ 0 ] <= s [ 1 ] ) else ( ( Real ( s [ 1 ] [ 0 ] ) , Real ( s [ 1 ] [ 1 ] ) ) , ( Real ( s [ 0 ] [ 0 ] ) , Real ( s [ 0 ] [ 1 ] ) ) , ) for s in segments ] n = len ( segments ) for i in range ( n ) : a0 , a1 = segments [ i ] for j in range ( i + 1 , n ) : b0 , b1 = segments [ j ] if a0 not in ( b0 , b1 ) and a1 not in ( b0 , b1 ) : ix = isect_seg_seg_v2_point ( a0 , a1 , b0 , b1 ) if ix is not None : # USE_IGNORE_SEGMENT_ENDINGS handled already isect . append ( ix ) return isect
Brute force O(n2) version of ``isect_segments`` for test validation.
Brute force O ( n2 ) version of isect_segments for test validation .