code: function indexCurve(start, minX, minY, size) {
          var p = start;
          do {
              if (p.z === null)
                  p.z = zOrder(p.x, p.y, minX, minY, size);
              p.prevZ = p.prev;
              p.nextZ = p.next;
              p = p.next;
          } while (p !== start);
          p.prevZ.nextZ = null;
          p.prevZ = null;
          sortLinked(p);
      }
docs: interlink polygon nodes in z-order