code: def isect_polygon__naive(points):
      
      isect = []
  
      n = len(points)
  
      if Real is float:
          pass
      else:
          points = [(Real(p[0]), Real(p[1])) for p in points]
  
  
      for i in range(n):
          a0, a1 = points[i], points[(i + 1) % n]
          for j in range(i + 1, n):
              b0, b1 = points[j], points[(j + 1) % n]
              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:
  
                      if USE_IGNORE_SEGMENT_ENDINGS:
                          if ((len_squared_v2v2(ix, a0) < NUM_EPS_SQ or
                               len_squared_v2v2(ix, a1) < NUM_EPS_SQ) and
                              (len_squared_v2v2(ix, b0) < NUM_EPS_SQ or
                               len_squared_v2v2(ix, b1) < NUM_EPS_SQ)):
                              continue
  
                      isect.append(ix)
  
      return isect
docs: Brute force O(n2) version of ``isect_polygon`` for test validation.