diff --git a/Polygon_repair/doc/Polygon_repair/fig/WindingNonZero.ipe b/Polygon_repair/doc/Polygon_repair/fig/WindingNonZero.ipe
new file mode 100644
index 000000000000..131a5919dcc4
--- /dev/null
+++ b/Polygon_repair/doc/Polygon_repair/fig/WindingNonZero.ipe
@@ -0,0 +1,515 @@
+
+
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+0.6 0 0 0.6 0 0 e
+
+
+
+
+
+0.5 0 0 0.5 0 0 e
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+
+
+
+
+
+-0.5 -0.5 m
+0.5 -0.5 l
+0.5 0.5 l
+-0.5 0.5 l
+h
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+
+
+-0.43 -0.57 m
+0.57 0.43 l
+0.43 0.57 l
+-0.57 -0.43 l
+h
+
+
+-0.43 0.57 m
+0.57 -0.43 l
+0.43 -0.57 l
+-0.57 0.43 l
+h
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+-1 0.333 m
+0 0 l
+-1 -0.333 l
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+64 704 m
+192 704 l
+192 768 l
+64 768 l
+h
+32 752 m
+128 752 l
+128 720 l
+32 720 l
+h
+
+
+64 704 m
+192 704 l
+
+
+192 704 m
+192 768 l
+
+
+192 768 m
+64 768 l
+
+
+64 768 m
+64 704 l
+
+
+128 720 m
+32 720 l
+
+
+32 720 m
+32 752 l
+
+
+32 752 m
+128 752 l
+
+
+128 752 m
+128 720 l
+
+
+384 640 m
+256 640 l
+256 592 l
+320 592 l
+320 576 l
+304 576 l
+304 608 l
+384 608 l
+h
+
+
+384 528 m
+256 528 l
+
+
+256 528 m
+256 480 l
+
+
+256 480 m
+320 480 l
+
+
+320 480 m
+320 464 l
+
+
+320 464 m
+304 464 l
+
+
+304 464 m
+304 496 l
+
+
+304 496 m
+384 496 l
+
+
+384 496 m
+384 528 l
+
+
+384 640 m
+256 640 l
+256 592 l
+320 592 l
+320 576 l
+304 576 l
+304 608 l
+384 608 l
+h
+
+
+384 528 m
+256 528 l
+
+
+256 528 m
+256 480 l
+
+
+304 496 m
+384 496 l
+
+
+384 496 m
+384 528 l
+
+
+64 704 m
+192 704 l
+192 768 l
+64 768 l
+h
+32 752 m
+128 752 l
+128 720 l
+32 720 l
+h
+
+
+64 704 m
+192 704 l
+
+
+192 704 m
+192 768 l
+
+
+192 768 m
+64 768 l
+
+
+256 592 m
+304 592 l
+
+
+304 592 m
+304 608 l
+
+
+304 576 m
+320 576 l
+
+
+320 576 m
+320 592 l
+
+
+320 592 m
+304 592 l
+
+
+304 592 m
+304 576 l
+
+
+256 768 m
+256 752 l
+
+
+256 752 m
+320 752 l
+
+
+320 752 m
+320 720 l
+
+
+320 720 m
+256 720 l
+
+
+256 720 m
+256 704 l
+
+
+224 720 m
+256 720 l
+
+
+256 720 m
+256 752 l
+
+
+256 752 m
+224 752 l
+
+
+224 752 m
+224 720 l
+
+
+
diff --git a/Polygon_repair/doc/Polygon_repair/fig/WindingNonZero.svg b/Polygon_repair/doc/Polygon_repair/fig/WindingNonZero.svg
new file mode 100644
index 000000000000..75d37586db80
--- /dev/null
+++ b/Polygon_repair/doc/Polygon_repair/fig/WindingNonZero.svg
@@ -0,0 +1,83 @@
+
+
diff --git a/Polygon_repair/doc/Polygon_repair/fig/WindingNonZeroDifferent.ipe b/Polygon_repair/doc/Polygon_repair/fig/WindingNonZeroDifferent.ipe
new file mode 100644
index 000000000000..7756c8405b84
--- /dev/null
+++ b/Polygon_repair/doc/Polygon_repair/fig/WindingNonZeroDifferent.ipe
@@ -0,0 +1,763 @@
+
+
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+0.6 0 0 0.6 0 0 e
+
+
+
+
+
+0.5 0 0 0.5 0 0 e
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+
+
+
+
+
+-0.5 -0.5 m
+0.5 -0.5 l
+0.5 0.5 l
+-0.5 0.5 l
+h
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+
+
+-0.43 -0.57 m
+0.57 0.43 l
+0.43 0.57 l
+-0.57 -0.43 l
+h
+
+
+-0.43 0.57 m
+0.57 -0.43 l
+0.43 -0.57 l
+-0.57 0.43 l
+h
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+-1 0.333 m
+0 0 l
+-1 -0.333 l
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+64 528 m
+64 464 l
+192 464 l
+192 528 l
+h
+96 512 m
+96 480 l
+160 480 l
+160 512 l
+h
+
+
+304 576 m
+384 576 l
+384 640 l
+256 640 l
+256 592 l
+304 592 l
+h
+
+
+256 688 m
+384 688 l
+384 768 l
+304 768 l
+304 752 l
+256 752 l
+h
+272 736 m
+304 736 l
+304 720 l
+368 720 l
+368 704 l
+272 704 l
+h
+
+
+256 688 m
+384 688 l
+
+
+384 688 m
+384 768 l
+
+
+368 720 m
+368 704 l
+
+
+368 704 m
+272 704 l
+
+
+272 704 m
+272 736 l
+
+
+256 752 m
+256 688 l
+
+
+336 752 m
+256 752 l
+256 688 l
+384 688 l
+384 768 l
+304 768 l
+304 720 l
+368 720 l
+368 704 l
+272 704 l
+272 736 l
+336 736 l
+h
+
+
+256 688 m
+384 688 l
+
+
+384 688 m
+384 768 l
+
+
+384 768 m
+304 768 l
+
+
+304 768 m
+304 720 l
+
+
+304 720 m
+368 720 l
+
+
+368 720 m
+368 704 l
+
+
+368 704 m
+272 704 l
+
+
+272 704 m
+272 736 l
+
+
+256 752 m
+256 688 l
+
+
+384 640 m
+256 640 l
+
+
+256 640 m
+256 592 l
+
+
+304 576 m
+384 576 l
+
+
+384 576 m
+384 640 l
+
+
+192 640 m
+64 640 l
+64 592 l
+128 592 l
+128 608 l
+112 608 l
+112 576 l
+192 576 l
+h
+
+
+384 640 m
+256 640 l
+
+
+256 640 m
+256 592 l
+
+
+304 608 m
+304 576 l
+
+
+304 576 m
+384 576 l
+
+
+384 576 m
+384 640 l
+
+
+336 752 m
+256 752 l
+256 688 l
+384 688 l
+384 768 l
+304 768 l
+304 720 l
+368 720 l
+368 704 l
+272 704 l
+272 736 l
+336 736 l
+h
+
+
+256 688 m
+384 688 l
+
+
+384 688 m
+384 768 l
+
+
+384 768 m
+304 768 l
+
+
+304 768 m
+304 720 l
+
+
+304 720 m
+368 720 l
+
+
+368 720 m
+368 704 l
+
+
+368 704 m
+272 704 l
+
+
+272 704 m
+272 736 l
+
+
+272 736 m
+336 736 l
+
+
+336 736 m
+336 752 l
+
+
+336 752 m
+256 752 l
+
+
+256 752 m
+256 688 l
+
+
+384 768 m
+304 768 l
+
+
+272 736 m
+304 736 l
+
+
+304 736 m
+304 720 l
+
+
+304 720 m
+368 720 l
+
+
+304 768 m
+304 752 l
+
+
+304 752 m
+256 752 l
+
+
+496 768 m
+496 752 l
+
+
+496 752 m
+528 752 l
+
+
+528 752 m
+528 736 l
+
+
+528 736 m
+496 736 l
+
+
+464 736 m
+496 736 l
+
+
+496 736 m
+496 752 l
+
+
+496 752 m
+448 752 l
+
+
+192 640 m
+64 640 l
+64 592 l
+128 592 l
+128 608 l
+112 608 l
+112 576 l
+192 576 l
+h
+
+
+384 640 m
+256 640 l
+
+
+256 640 m
+256 592 l
+
+
+256 592 m
+320 592 l
+
+
+320 592 m
+320 608 l
+
+
+320 608 m
+304 608 l
+
+
+304 608 m
+304 576 l
+
+
+304 576 m
+384 576 l
+
+
+384 576 m
+384 640 l
+
+
+512 592 m
+496 592 l
+
+
+496 592 m
+496 608 l
+
+
+496 608 m
+512 608 l
+
+
+512 608 m
+512 592 l
+
+
+448 592 m
+496 592 l
+
+
+256 592 m
+304 592 l
+
+
+304 592 m
+304 576 l
+
+
+64 528 m
+64 464 l
+192 464 l
+192 528 l
+h
+
+
+96 512 m
+96 480 l
+160 480 l
+160 512 l
+h
+
+
+64 464 m
+192 464 l
+
+
+192 464 m
+192 528 l
+
+
+192 528 m
+64 528 l
+
+
+64 528 m
+64 464 l
+
+
+96 480 m
+160 480 l
+
+
+160 480 m
+160 512 l
+
+
+160 512 m
+96 512 l
+
+
+96 512 m
+96 480 l
+
+
+64 528 m
+64 464 l
+192 464 l
+192 528 l
+h
+
+
+192 464 m
+192 528 l
+
+
+192 528 m
+64 528 l
+
+
+64 528 m
+64 464 l
+
+
+64 464 m
+192 464 l
+
+
+192 464 m
+192 528 l
+
+
+192 528 m
+64 528 l
+
+
+480 512 m
+544 512 l
+
+
+544 512 m
+544 480 l
+
+
+544 480 m
+480 480 l
+
+
+448 528 m
+448 464 l
+
+
+480 480 m
+480 512 l
+
+
+256 464 m
+384 464 l
+
+
+
diff --git a/Polygon_repair/doc/Polygon_repair/fig/WindingNonZeroDifferent.svg b/Polygon_repair/doc/Polygon_repair/fig/WindingNonZeroDifferent.svg
new file mode 100644
index 000000000000..9f6b94ab1b65
--- /dev/null
+++ b/Polygon_repair/doc/Polygon_repair/fig/WindingNonZeroDifferent.svg
@@ -0,0 +1,181 @@
+
+