code: def _isCompatible(self, other, reporter):
          
          contour1 = self
          contour2 = other
          # open/closed
          if contour1.open != contour2.open:
              reporter.openDifference = True
          # direction
          if contour1.clockwise != contour2.clockwise:
              reporter.directionDifference = True
          # segment count
          if len(contour1) != len(contour2.segments):
              reporter.segmentCountDifference = True
              reporter.fatal = True
          # segment pairs
          for i in range(min(len(contour1), len(contour2))):
              segment1 = contour1[i]
              segment2 = contour2[i]
              segmentCompatibility = segment1.isCompatible(segment2)[1]
              if segmentCompatibility.fatal or segmentCompatibility.warning:
                  if segmentCompatibility.fatal:
                      reporter.fatal = True
                  if segmentCompatibility.warning:
                      reporter.warning = True
                  reporter.segments.append(segmentCompatibility)
docs: This is the environment implementation of
          :meth:`BaseContour.isCompatible`.
  
          Subclasses may override this method.