diff --git a/Examples/Animations/genusTwo3d/genusTwo1.vtk b/Examples/Animations/genusTwo3d/genusTwo1.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo1.vtk
@@ -0,0 +1,184 @@
+# vtk DataFile Version 2.0
+genusTwo1
+ASCII
+DATASET POLYDATA
+POINTS 48 float
+3 4 1
+3 5 1
+3 4 2
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 5 2
+3 3 1
+3 3 2
+2 6 1
+1 6 2
+2 6 2
+2 3 1
+1 4 1
+3 6 1
+3 6 2
+2 2 2
+1 5 1
+1 6 1
+1 5 2
+2 5 1
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 6 1
+4 3 1
+4 2 2
+4 5 1
+3 2 1
+2 5 2
+1 3 1
+1 1 2
+1 2 2
+4 5 2
+4 6 2
+1 1 1
+1 2 1
+1 3 2
+4 1 1
+4 2 1
+
+POLYGONS 128 512
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 9 6 8
+3 1 2 10
+3 11 6 12
+3 13 14 15
+3 16 17 9
+3 18 10 19
+3 11 0 12
+3 4 16 20
+3 21 22 23
+3 9 0 8
+3 16 20 6
+3 16 11 6
+3 17 9 7
+3 9 7 8
+3 9 21 24
+3 1 13 18
+3 25 26 27
+3 16 9 6
+3 28 5 29
+3 3 28 4
+3 29 30 31
+3 18 32 19
+3 33 34 26
+3 33 0 25
+3 1 35 18
+3 29 20 31
+3 4 36 20
+3 24 23 37
+3 9 24 8
+3 37 10 15
+3 38 16 17
+3 24 13 37
+3 39 5 40
+3 4 38 16
+3 4 40 20
+3 11 9 0
+3 41 19 42
+3 16 11 9
+3 36 29 31
+3 43 3 44
+3 25 35 27
+3 20 45 6
+3 17 45 7
+3 43 44 39
+3 35 27 41
+3 35 18 32
+3 16 45 6
+3 46 47 30
+3 1 37 10
+3 26 2 27
+3 10 41 19
+3 11 31 12
+3 45 6 7
+3 10 15 19
+3 38 17 45
+3 24 8 37
+3 24 22 13
+3 3 39 5
+3 11 33 12
+3 31 34 12
+3 5 29 20
+3 1 18 10
+3 43 3 39
+3 25 2 27
+3 25 1 35
+3 44 4 38
+3 24 1 37
+3 30 31 34
+3 12 26 2
+3 47 30 34
+3 44 4 40
+3 23 37 14
+3 27 10 41
+3 28 46 29
+3 36 20 31
+3 40 20 45
+3 38 16 45
+3 35 10 41
+3 46 36 47
+3 11 33 0
+3 21 24 22
+3 35 32 41
+3 36 11 31
+3 37 14 15
+3 32 19 42
+3 36 47 11
+3 4 5 20
+3 21 7 23
+3 3 44 4
+3 34 12 26
+3 22 23 14
+3 28 36 29
+3 21 24 23
+3 7 8 23
+3 3 28 5
+3 0 25 2
+3 38 40 45
+3 32 41 42
+3 33 25 26
+3 22 13 14
+3 0 25 1
+3 44 38 40
+3 46 29 30
+3 12 8 2
+3 1 35 10
+3 2 27 10
+3 6 12 8
+3 18 15 19
+3 36 47 31
+3 5 40 20
+3 47 11 33
+3 47 31 34
+3 13 37 15
+3 28 4 36
+3 17 9 21
+3 17 21 7
+3 24 1 13
+3 44 39 40
+3 8 23 37
+3 0 12 2
+3 0 8 2
+3 33 12 26
+3 28 46 36
+3 13 18 15
+3 47 33 34
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo10.vtk b/Examples/Animations/genusTwo3d/genusTwo10.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo10.vtk
@@ -0,0 +1,133 @@
+# vtk DataFile Version 2.0
+genusTwo10
+ASCII
+DATASET POLYDATA
+POINTS 39 float
+3 4 1
+3 5 1
+3 4 2
+2 1 1
+2 2 1
+2 1 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+2 6 1
+1 3 1
+1 2 2
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+1 3 2
+4 1 1
+4 2 1
+
+POLYGONS 86 344
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 1 2 9
+3 10 7 11
+3 10 0 11
+3 4 12 13
+3 6 0 8
+3 12 13 7
+3 12 10 7
+3 14 15 16
+3 12 6 7
+3 17 5 18
+3 3 17 4
+3 18 19 20
+3 21 22 15
+3 21 0 14
+3 18 13 20
+3 4 23 13
+3 6 24 8
+3 25 9 26
+3 24 27 25
+3 4 28 12
+3 4 29 13
+3 10 6 0
+3 30 31 32
+3 12 10 6
+3 23 18 20
+3 33 3 34
+3 14 35 16
+3 13 36 7
+3 35 16 30
+3 12 36 7
+3 37 38 19
+3 1 25 9
+3 15 2 16
+3 9 30 31
+3 10 20 11
+3 9 26 31
+3 24 8 25
+3 10 21 11
+3 20 22 11
+3 5 18 13
+3 14 2 16
+3 14 1 35
+3 34 4 28
+3 24 1 25
+3 19 20 22
+3 11 15 2
+3 38 19 22
+3 34 4 29
+3 16 9 30
+3 17 37 18
+3 23 13 20
+3 29 13 36
+3 28 12 36
+3 35 9 30
+3 37 23 38
+3 10 21 0
+3 23 10 20
+3 23 38 10
+3 4 5 13
+3 3 34 4
+3 22 11 15
+3 17 23 18
+3 3 17 5
+3 0 14 2
+3 28 29 36
+3 21 14 15
+3 0 14 1
+3 34 28 29
+3 37 18 19
+3 11 8 2
+3 1 35 9
+3 2 16 9
+3 7 11 8
+3 23 38 20
+3 38 10 21
+3 38 20 22
+3 27 25 26
+3 17 4 23
+3 0 11 2
+3 0 8 2
+3 21 11 15
+3 17 37 23
+3 38 21 22
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo11.vtk b/Examples/Animations/genusTwo3d/genusTwo11.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo11.vtk
@@ -0,0 +1,126 @@
+# vtk DataFile Version 2.0
+genusTwo11
+ASCII
+DATASET POLYDATA
+POINTS 38 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+2 6 1
+1 3 1
+1 2 2
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+1 3 2
+4 1 1
+4 2 1
+
+POLYGONS 80 320
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 12 13 14
+3 10 3 4
+3 15 16 9
+3 17 18 19
+3 20 21 13
+3 20 0 12
+3 9 22 11
+3 3 23 5
+3 24 6 25
+3 23 26 24
+3 9 27 10
+3 9 28 11
+3 7 3 0
+3 29 30 31
+3 10 7 3
+3 22 17 19
+3 32 15 33
+3 12 34 14
+3 11 35 4
+3 34 14 29
+3 10 35 4
+3 36 37 18
+3 1 24 6
+3 13 2 14
+3 6 29 30
+3 7 19 8
+3 6 25 30
+3 23 5 24
+3 7 20 8
+3 19 21 8
+3 12 2 14
+3 12 1 34
+3 33 9 27
+3 23 1 24
+3 18 19 21
+3 8 13 2
+3 37 18 21
+3 33 9 28
+3 14 6 29
+3 16 36 17
+3 22 11 19
+3 28 11 35
+3 27 10 35
+3 34 6 29
+3 36 22 37
+3 7 20 0
+3 22 7 19
+3 22 37 7
+3 15 33 9
+3 21 8 13
+3 16 22 17
+3 0 12 2
+3 27 28 35
+3 20 12 13
+3 0 12 1
+3 33 27 28
+3 36 17 18
+3 8 5 2
+3 1 34 6
+3 2 14 6
+3 4 8 5
+3 22 37 19
+3 37 7 20
+3 37 19 21
+3 26 24 25
+3 16 9 22
+3 0 8 2
+3 0 5 2
+3 20 8 13
+3 16 36 22
+3 37 20 21
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo12.vtk b/Examples/Animations/genusTwo3d/genusTwo12.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo12.vtk
@@ -0,0 +1,119 @@
+# vtk DataFile Version 2.0
+genusTwo12
+ASCII
+DATASET POLYDATA
+POINTS 37 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+2 6 1
+1 3 1
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+1 3 2
+4 1 1
+4 2 1
+
+POLYGONS 74 296
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 12 13 14
+3 10 3 4
+3 15 16 9
+3 17 18 19
+3 20 21 13
+3 20 0 12
+3 9 22 11
+3 3 23 5
+3 24 6 25
+3 23 26 24
+3 9 27 10
+3 7 3 0
+3 28 29 30
+3 10 7 3
+3 22 17 19
+3 31 15 32
+3 12 33 14
+3 33 14 28
+3 10 34 4
+3 35 36 18
+3 1 24 6
+3 13 2 14
+3 6 28 29
+3 7 19 8
+3 6 25 29
+3 23 5 24
+3 7 20 8
+3 19 21 8
+3 12 2 14
+3 12 1 33
+3 32 9 27
+3 23 1 24
+3 18 19 21
+3 8 13 2
+3 36 18 21
+3 14 6 28
+3 16 35 17
+3 22 11 19
+3 27 10 34
+3 33 6 28
+3 35 22 36
+3 7 20 0
+3 22 7 19
+3 22 36 7
+3 15 32 9
+3 21 8 13
+3 16 22 17
+3 0 12 2
+3 20 12 13
+3 0 12 1
+3 35 17 18
+3 8 5 2
+3 1 33 6
+3 2 14 6
+3 4 8 5
+3 22 36 19
+3 36 7 20
+3 36 19 21
+3 26 24 25
+3 16 9 22
+3 0 8 2
+3 0 5 2
+3 20 8 13
+3 16 35 22
+3 36 20 21
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo13.vtk b/Examples/Animations/genusTwo3d/genusTwo13.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo13.vtk
@@ -0,0 +1,116 @@
+# vtk DataFile Version 2.0
+genusTwo13
+ASCII
+DATASET POLYDATA
+POINTS 36 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+2 6 1
+1 3 1
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+4 1 1
+4 2 1
+
+POLYGONS 72 288
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 12 13 14
+3 10 3 4
+3 15 16 9
+3 17 18 19
+3 20 21 13
+3 20 0 12
+3 9 22 11
+3 3 23 5
+3 24 6 25
+3 23 26 24
+3 9 27 10
+3 7 3 0
+3 28 29 30
+3 10 7 3
+3 22 17 19
+3 31 15 32
+3 12 33 14
+3 33 14 28
+3 34 35 18
+3 1 24 6
+3 13 2 14
+3 6 28 29
+3 7 19 8
+3 6 25 29
+3 23 5 24
+3 7 20 8
+3 19 21 8
+3 12 2 14
+3 12 1 33
+3 32 9 27
+3 23 1 24
+3 18 19 21
+3 8 13 2
+3 35 18 21
+3 14 6 28
+3 16 34 17
+3 22 11 19
+3 33 6 28
+3 34 22 35
+3 7 20 0
+3 22 7 19
+3 22 35 7
+3 15 32 9
+3 21 8 13
+3 16 22 17
+3 0 12 2
+3 20 12 13
+3 0 12 1
+3 34 17 18
+3 8 5 2
+3 1 33 6
+3 2 14 6
+3 4 8 5
+3 22 35 19
+3 35 7 20
+3 35 19 21
+3 26 24 25
+3 16 9 22
+3 0 8 2
+3 0 5 2
+3 20 8 13
+3 16 34 22
+3 35 20 21
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo14.vtk b/Examples/Animations/genusTwo3d/genusTwo14.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo14.vtk
@@ -0,0 +1,109 @@
+# vtk DataFile Version 2.0
+genusTwo14
+ASCII
+DATASET POLYDATA
+POINTS 35 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+2 6 1
+1 3 1
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 1 1
+4 2 1
+
+POLYGONS 66 264
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 12 13 14
+3 10 3 4
+3 15 16 9
+3 17 18 19
+3 20 21 13
+3 20 0 12
+3 9 22 11
+3 3 23 5
+3 24 6 25
+3 23 26 24
+3 9 27 10
+3 7 3 0
+3 28 29 30
+3 10 7 3
+3 22 17 19
+3 31 15 32
+3 33 34 18
+3 1 24 6
+3 13 2 14
+3 6 28 29
+3 7 19 8
+3 6 25 29
+3 23 5 24
+3 7 20 8
+3 19 21 8
+3 12 2 14
+3 32 9 27
+3 23 1 24
+3 18 19 21
+3 8 13 2
+3 34 18 21
+3 14 6 28
+3 16 33 17
+3 22 11 19
+3 33 22 34
+3 7 20 0
+3 22 7 19
+3 22 34 7
+3 15 32 9
+3 21 8 13
+3 16 22 17
+3 0 12 2
+3 20 12 13
+3 33 17 18
+3 8 5 2
+3 2 14 6
+3 4 8 5
+3 22 34 19
+3 34 7 20
+3 34 19 21
+3 26 24 25
+3 16 9 22
+3 0 8 2
+3 0 5 2
+3 20 8 13
+3 16 33 22
+3 34 20 21
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo15.vtk b/Examples/Animations/genusTwo3d/genusTwo15.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo15.vtk
@@ -0,0 +1,106 @@
+# vtk DataFile Version 2.0
+genusTwo15
+ASCII
+DATASET POLYDATA
+POINTS 34 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+2 6 1
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 1 1
+4 2 1
+
+POLYGONS 64 256
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 12 13 14
+3 10 3 4
+3 15 16 9
+3 17 18 19
+3 20 21 13
+3 20 0 12
+3 9 22 11
+3 3 23 5
+3 24 6 25
+3 23 26 24
+3 7 3 0
+3 27 28 29
+3 10 7 3
+3 22 17 19
+3 30 15 31
+3 32 33 18
+3 1 24 6
+3 13 2 14
+3 6 27 28
+3 7 19 8
+3 6 25 28
+3 23 5 24
+3 7 20 8
+3 19 21 8
+3 12 2 14
+3 23 1 24
+3 18 19 21
+3 8 13 2
+3 33 18 21
+3 14 6 27
+3 16 32 17
+3 22 11 19
+3 32 22 33
+3 7 20 0
+3 22 7 19
+3 22 33 7
+3 15 31 9
+3 21 8 13
+3 16 22 17
+3 0 12 2
+3 20 12 13
+3 32 17 18
+3 8 5 2
+3 2 14 6
+3 4 8 5
+3 22 33 19
+3 33 7 20
+3 33 19 21
+3 26 24 25
+3 16 9 22
+3 0 8 2
+3 0 5 2
+3 20 8 13
+3 16 32 22
+3 33 20 21
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo16.vtk b/Examples/Animations/genusTwo3d/genusTwo16.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo16.vtk
@@ -0,0 +1,99 @@
+# vtk DataFile Version 2.0
+genusTwo16
+ASCII
+DATASET POLYDATA
+POINTS 33 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+4 3 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+2 6 1
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 1 1
+4 2 1
+4 4 2
+
+POLYGONS 58 232
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 12 13 9
+3 14 15 16
+3 17 18 19
+3 9 20 11
+3 3 21 5
+3 22 6 23
+3 21 24 22
+3 7 3 0
+3 25 26 27
+3 10 7 3
+3 20 14 16
+3 28 12 29
+3 30 31 15
+3 1 22 6
+3 19 2 32
+3 6 25 26
+3 7 16 8
+3 6 23 26
+3 21 5 22
+3 7 17 8
+3 16 18 8
+3 21 1 22
+3 15 16 18
+3 8 19 2
+3 31 15 18
+3 32 6 25
+3 13 30 14
+3 20 11 16
+3 30 20 31
+3 20 7 16
+3 20 31 7
+3 12 29 9
+3 18 8 19
+3 13 20 14
+3 30 14 15
+3 8 5 2
+3 2 32 6
+3 4 8 5
+3 20 31 16
+3 31 7 17
+3 31 16 18
+3 24 22 23
+3 13 9 20
+3 0 8 2
+3 0 5 2
+3 17 8 19
+3 13 30 20
+3 31 17 18
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo17.vtk b/Examples/Animations/genusTwo3d/genusTwo17.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo17.vtk
@@ -0,0 +1,92 @@
+# vtk DataFile Version 2.0
+genusTwo17
+ASCII
+DATASET POLYDATA
+POINTS 32 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+2 6 1
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 1 1
+4 2 1
+4 3 2
+4 4 2
+4 2 2
+
+POLYGONS 52 208
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 12 13 9
+3 14 15 16
+3 9 17 11
+3 3 18 5
+3 19 6 20
+3 18 21 19
+3 7 3 0
+3 22 23 24
+3 10 7 3
+3 17 14 16
+3 25 12 26
+3 27 28 15
+3 1 19 6
+3 29 2 30
+3 6 22 23
+3 7 16 8
+3 6 20 23
+3 18 5 19
+3 16 31 8
+3 18 1 19
+3 15 16 31
+3 8 29 2
+3 28 15 31
+3 30 6 22
+3 13 27 14
+3 17 11 16
+3 27 17 28
+3 17 7 16
+3 12 26 9
+3 31 8 29
+3 13 17 14
+3 27 14 15
+3 8 5 2
+3 2 30 6
+3 4 8 5
+3 17 28 16
+3 28 16 31
+3 21 19 20
+3 13 9 17
+3 0 8 2
+3 0 5 2
+3 13 27 17
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo18.vtk b/Examples/Animations/genusTwo3d/genusTwo18.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo18.vtk
@@ -0,0 +1,85 @@
+# vtk DataFile Version 2.0
+genusTwo18
+ASCII
+DATASET POLYDATA
+POINTS 31 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+2 6 1
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 3 2
+4 4 2
+4 2 2
+4 1 1
+
+POLYGONS 46 184
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 12 13 9
+3 14 15 16
+3 9 17 11
+3 3 18 5
+3 19 6 20
+3 18 21 19
+3 7 3 0
+3 22 23 24
+3 10 7 3
+3 17 14 16
+3 25 12 26
+3 1 19 6
+3 27 2 28
+3 6 22 23
+3 7 16 8
+3 6 20 23
+3 18 5 19
+3 16 29 8
+3 18 1 19
+3 15 16 29
+3 8 27 2
+3 28 6 22
+3 13 30 14
+3 17 11 16
+3 17 7 16
+3 12 26 9
+3 29 8 27
+3 13 17 14
+3 30 14 15
+3 8 5 2
+3 2 28 6
+3 4 8 5
+3 21 19 20
+3 13 9 17
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo19.vtk b/Examples/Animations/genusTwo3d/genusTwo19.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo19.vtk
@@ -0,0 +1,82 @@
+# vtk DataFile Version 2.0
+genusTwo19
+ASCII
+DATASET POLYDATA
+POINTS 30 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 3 2
+4 4 2
+4 2 2
+4 1 1
+
+POLYGONS 44 176
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 12 13 9
+3 14 15 16
+3 9 17 11
+3 3 18 5
+3 19 6 20
+3 7 3 0
+3 21 22 23
+3 10 7 3
+3 17 14 16
+3 24 12 25
+3 1 19 6
+3 26 2 27
+3 6 21 22
+3 7 16 8
+3 6 20 22
+3 18 5 19
+3 16 28 8
+3 18 1 19
+3 15 16 28
+3 8 26 2
+3 27 6 21
+3 13 29 14
+3 17 11 16
+3 17 7 16
+3 12 25 9
+3 28 8 26
+3 13 17 14
+3 29 14 15
+3 8 5 2
+3 2 27 6
+3 4 8 5
+3 13 9 17
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo2.vtk b/Examples/Animations/genusTwo3d/genusTwo2.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo2.vtk
@@ -0,0 +1,177 @@
+# vtk DataFile Version 2.0
+genusTwo2
+ASCII
+DATASET POLYDATA
+POINTS 47 float
+3 4 1
+3 5 1
+3 4 2
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 5 2
+3 3 1
+3 3 2
+2 6 1
+1 6 2
+2 6 2
+2 3 1
+1 4 1
+3 6 1
+3 6 2
+2 2 2
+1 5 1
+1 6 1
+1 5 2
+2 5 1
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 2
+1 3 1
+1 1 2
+1 2 2
+4 5 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+1 3 2
+4 1 1
+4 2 1
+
+POLYGONS 122 488
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 9 6 8
+3 1 2 10
+3 11 6 12
+3 13 14 15
+3 16 17 9
+3 18 10 19
+3 11 0 12
+3 4 16 20
+3 21 22 23
+3 9 0 8
+3 16 20 6
+3 16 11 6
+3 17 9 7
+3 9 7 8
+3 9 21 24
+3 1 13 18
+3 25 26 27
+3 16 9 6
+3 28 5 29
+3 3 28 4
+3 29 30 31
+3 32 33 26
+3 32 0 25
+3 29 20 31
+3 4 34 20
+3 24 23 35
+3 9 24 8
+3 35 10 15
+3 36 16 17
+3 24 13 35
+3 37 5 38
+3 4 36 16
+3 4 38 20
+3 11 9 0
+3 39 19 40
+3 16 11 9
+3 34 29 31
+3 41 3 42
+3 25 43 27
+3 20 44 6
+3 17 44 7
+3 41 42 37
+3 43 27 39
+3 16 44 6
+3 45 46 30
+3 1 35 10
+3 26 2 27
+3 10 39 19
+3 11 31 12
+3 44 6 7
+3 10 15 19
+3 36 17 44
+3 24 8 35
+3 24 22 13
+3 3 37 5
+3 11 32 12
+3 31 33 12
+3 5 29 20
+3 1 18 10
+3 41 3 37
+3 25 2 27
+3 25 1 43
+3 42 4 36
+3 24 1 35
+3 30 31 33
+3 12 26 2
+3 46 30 33
+3 42 4 38
+3 23 35 14
+3 27 10 39
+3 28 45 29
+3 34 20 31
+3 38 20 44
+3 36 16 44
+3 43 10 39
+3 45 34 46
+3 11 32 0
+3 21 24 22
+3 34 11 31
+3 35 14 15
+3 34 46 11
+3 4 5 20
+3 21 7 23
+3 3 42 4
+3 33 12 26
+3 22 23 14
+3 28 34 29
+3 21 24 23
+3 7 8 23
+3 3 28 5
+3 0 25 2
+3 36 38 44
+3 32 25 26
+3 22 13 14
+3 0 25 1
+3 42 36 38
+3 45 29 30
+3 12 8 2
+3 1 43 10
+3 2 27 10
+3 6 12 8
+3 18 15 19
+3 34 46 31
+3 5 38 20
+3 46 11 32
+3 46 31 33
+3 13 35 15
+3 28 4 34
+3 17 9 21
+3 17 21 7
+3 24 1 13
+3 42 37 38
+3 8 23 35
+3 0 12 2
+3 0 8 2
+3 32 12 26
+3 28 45 34
+3 13 18 15
+3 46 32 33
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo20.vtk b/Examples/Animations/genusTwo3d/genusTwo20.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo20.vtk
@@ -0,0 +1,79 @@
+# vtk DataFile Version 2.0
+genusTwo20
+ASCII
+DATASET POLYDATA
+POINTS 29 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 3 2
+4 4 2
+4 2 2
+
+POLYGONS 42 168
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 12 13 9
+3 14 15 16
+3 9 17 11
+3 3 18 5
+3 19 6 20
+3 7 3 0
+3 21 22 23
+3 10 7 3
+3 17 14 16
+3 24 12 25
+3 1 19 6
+3 26 2 27
+3 6 21 22
+3 7 16 8
+3 6 20 22
+3 18 5 19
+3 16 28 8
+3 18 1 19
+3 15 16 28
+3 8 26 2
+3 27 6 21
+3 17 11 16
+3 17 7 16
+3 12 25 9
+3 28 8 26
+3 13 17 14
+3 8 5 2
+3 2 27 6
+3 4 8 5
+3 13 9 17
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo21.vtk b/Examples/Animations/genusTwo3d/genusTwo21.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo21.vtk
@@ -0,0 +1,76 @@
+# vtk DataFile Version 2.0
+genusTwo21
+ASCII
+DATASET POLYDATA
+POINTS 28 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+2 5 1
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+2 5 2
+4 3 2
+4 4 2
+4 2 2
+
+POLYGONS 40 160
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 12 13 9
+3 14 15 16
+3 9 17 11
+3 3 18 5
+3 7 3 0
+3 19 20 21
+3 10 7 3
+3 17 14 16
+3 22 12 23
+3 1 24 6
+3 25 2 26
+3 6 19 20
+3 7 16 8
+3 18 5 24
+3 16 27 8
+3 18 1 24
+3 15 16 27
+3 8 25 2
+3 26 6 19
+3 17 11 16
+3 17 7 16
+3 12 23 9
+3 27 8 25
+3 13 17 14
+3 8 5 2
+3 2 26 6
+3 4 8 5
+3 13 9 17
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo22.vtk b/Examples/Animations/genusTwo3d/genusTwo22.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo22.vtk
@@ -0,0 +1,76 @@
+# vtk DataFile Version 2.0
+genusTwo22
+ASCII
+DATASET POLYDATA
+POINTS 27 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 5 2
+4 6 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+2 5 1
+1 1 1
+1 2 1
+2 5 2
+4 3 2
+4 4 2
+4 2 2
+
+LINES 1 3
+2 12 13
+
+POLYGONS 38 152
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 14 15 9
+3 16 17 18
+3 9 19 11
+3 3 20 5
+3 7 3 0
+3 10 7 3
+3 19 16 18
+3 21 14 22
+3 1 23 6
+3 24 2 25
+3 7 18 8
+3 20 5 23
+3 18 26 8
+3 20 1 23
+3 17 18 26
+3 8 24 2
+3 25 6 12
+3 19 11 18
+3 19 7 18
+3 14 22 9
+3 26 8 24
+3 15 19 16
+3 8 5 2
+3 2 25 6
+3 4 8 5
+3 15 9 19
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo23.vtk b/Examples/Animations/genusTwo3d/genusTwo23.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo23.vtk
@@ -0,0 +1,74 @@
+# vtk DataFile Version 2.0
+genusTwo23
+ASCII
+DATASET POLYDATA
+POINTS 26 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 5 2
+4 6 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+2 5 1
+2 5 2
+4 3 2
+4 4 2
+4 2 2
+1 1 1
+
+LINES 2 6
+2 12 13
+2 25 14
+
+POLYGONS 36 144
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 14 15 9
+3 16 17 18
+3 9 19 11
+3 3 20 5
+3 7 3 0
+3 10 7 3
+3 19 16 18
+3 1 21 6
+3 22 2 23
+3 7 18 8
+3 20 5 21
+3 18 24 8
+3 20 1 21
+3 17 18 24
+3 8 22 2
+3 23 6 12
+3 19 11 18
+3 19 7 18
+3 24 8 22
+3 15 19 16
+3 8 5 2
+3 2 23 6
+3 4 8 5
+3 15 9 19
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo24.vtk b/Examples/Animations/genusTwo3d/genusTwo24.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo24.vtk
@@ -0,0 +1,71 @@
+# vtk DataFile Version 2.0
+genusTwo24
+ASCII
+DATASET POLYDATA
+POINTS 25 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 5 2
+4 6 2
+2 1 1
+3 1 1
+3 2 1
+2 5 1
+3 1 2
+3 2 2
+2 5 2
+4 3 2
+4 4 2
+4 2 2
+1 1 1
+
+LINES 2 6
+2 12 13
+2 24 14
+
+POLYGONS 34 136
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 14 15 9
+3 9 16 11
+3 3 17 5
+3 7 3 0
+3 10 7 3
+3 16 18 19
+3 1 20 6
+3 21 2 22
+3 7 19 8
+3 17 5 20
+3 19 23 8
+3 17 1 20
+3 8 21 2
+3 22 6 12
+3 16 11 19
+3 16 7 19
+3 23 8 21
+3 15 16 18
+3 8 5 2
+3 2 22 6
+3 4 8 5
+3 15 9 16
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo25.vtk b/Examples/Animations/genusTwo3d/genusTwo25.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo25.vtk
@@ -0,0 +1,68 @@
+# vtk DataFile Version 2.0
+genusTwo25
+ASCII
+DATASET POLYDATA
+POINTS 24 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 5 2
+4 6 2
+2 1 1
+3 1 1
+3 2 1
+2 5 1
+3 1 2
+3 2 2
+2 5 2
+4 3 2
+4 4 2
+1 1 1
+
+LINES 2 6
+2 12 13
+2 23 14
+
+POLYGONS 32 128
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 14 15 9
+3 9 16 11
+3 3 17 5
+3 7 3 0
+3 10 7 3
+3 16 18 19
+3 1 20 6
+3 21 2 22
+3 7 19 8
+3 17 5 20
+3 17 1 20
+3 8 21 2
+3 22 6 12
+3 16 11 19
+3 16 7 19
+3 15 16 18
+3 8 5 2
+3 2 22 6
+3 4 8 5
+3 15 9 16
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo26.vtk b/Examples/Animations/genusTwo3d/genusTwo26.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo26.vtk
@@ -0,0 +1,65 @@
+# vtk DataFile Version 2.0
+genusTwo26
+ASCII
+DATASET POLYDATA
+POINTS 23 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 5 2
+4 6 2
+2 1 1
+3 1 1
+3 2 1
+2 5 1
+3 1 2
+3 2 2
+2 5 2
+1 1 1
+4 4 2
+
+LINES 2 6
+2 12 13
+2 21 14
+
+POLYGONS 30 120
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 14 15 9
+3 9 16 11
+3 3 17 5
+3 7 3 0
+3 10 7 3
+3 16 18 19
+3 1 20 6
+3 7 19 8
+3 17 5 20
+3 17 1 20
+3 22 6 12
+3 16 11 19
+3 16 7 19
+3 15 16 18
+3 8 5 2
+3 2 22 6
+3 4 8 5
+3 15 9 16
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo27.vtk b/Examples/Animations/genusTwo3d/genusTwo27.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo27.vtk
@@ -0,0 +1,63 @@
+# vtk DataFile Version 2.0
+genusTwo27
+ASCII
+DATASET POLYDATA
+POINTS 22 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 5 2
+4 6 2
+2 1 1
+3 1 1
+3 2 1
+2 5 1
+3 1 2
+3 2 2
+2 5 2
+1 1 1
+
+LINES 3 9
+2 12 13
+2 6 12
+2 21 14
+
+POLYGONS 28 112
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 14 15 9
+3 9 16 11
+3 3 17 5
+3 7 3 0
+3 10 7 3
+3 16 18 19
+3 1 20 6
+3 7 19 8
+3 17 5 20
+3 17 1 20
+3 16 11 19
+3 16 7 19
+3 15 16 18
+3 8 5 2
+3 4 8 5
+3 15 9 16
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo28.vtk b/Examples/Animations/genusTwo3d/genusTwo28.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo28.vtk
@@ -0,0 +1,60 @@
+# vtk DataFile Version 2.0
+genusTwo28
+ASCII
+DATASET POLYDATA
+POINTS 21 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 5 2
+4 6 2
+2 1 1
+3 1 1
+3 2 1
+2 5 1
+2 5 2
+3 2 2
+1 1 1
+
+LINES 3 9
+2 12 13
+2 6 12
+2 20 14
+
+POLYGONS 26 104
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 14 15 9
+3 9 16 11
+3 3 17 5
+3 7 3 0
+3 10 7 3
+3 1 18 6
+3 7 19 8
+3 17 5 18
+3 17 1 18
+3 16 11 19
+3 16 7 19
+3 8 5 2
+3 4 8 5
+3 15 9 16
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo29.vtk b/Examples/Animations/genusTwo3d/genusTwo29.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo29.vtk
@@ -0,0 +1,58 @@
+# vtk DataFile Version 2.0
+genusTwo29
+ASCII
+DATASET POLYDATA
+POINTS 20 float
+3 4 1
+3 5 1
+3 4 2
+2 4 1
+2 3 2
+2 4 2
+3 5 2
+3 3 1
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+4 5 2
+4 6 2
+3 2 1
+2 5 1
+2 5 2
+3 2 2
+1 1 1
+2 1 1
+
+LINES 4 12
+2 12 13
+2 6 12
+2 18 19
+2 19 9
+
+POLYGONS 24 96
+3 0 1 2
+3 3 4 5
+3 1 2 6
+3 7 4 8
+3 7 0 8
+3 9 10 11
+3 3 0 5
+3 10 11 4
+3 10 7 4
+3 10 3 4
+3 9 14 11
+3 3 15 5
+3 7 3 0
+3 10 7 3
+3 1 16 6
+3 7 17 8
+3 15 5 16
+3 15 1 16
+3 14 11 17
+3 14 7 17
+3 8 5 2
+3 4 8 5
+3 0 8 2
+3 0 5 2
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo3.vtk b/Examples/Animations/genusTwo3d/genusTwo3.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo3.vtk
@@ -0,0 +1,170 @@
+# vtk DataFile Version 2.0
+genusTwo3
+ASCII
+DATASET POLYDATA
+POINTS 46 float
+3 4 1
+3 5 1
+3 4 2
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 5 2
+3 3 1
+3 3 2
+2 6 1
+1 6 2
+2 6 2
+2 3 1
+1 4 1
+3 6 1
+3 6 2
+2 2 2
+1 5 1
+1 6 1
+1 5 2
+2 5 1
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 2
+1 3 1
+1 2 2
+4 5 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+1 3 2
+4 1 1
+4 2 1
+
+POLYGONS 116 464
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 9 6 8
+3 1 2 10
+3 11 6 12
+3 13 14 15
+3 16 17 9
+3 18 10 19
+3 11 0 12
+3 4 16 20
+3 21 22 23
+3 9 0 8
+3 16 20 6
+3 16 11 6
+3 17 9 7
+3 9 7 8
+3 9 21 24
+3 1 13 18
+3 25 26 27
+3 16 9 6
+3 28 5 29
+3 3 28 4
+3 29 30 31
+3 32 33 26
+3 32 0 25
+3 29 20 31
+3 4 34 20
+3 24 23 35
+3 9 24 8
+3 35 10 15
+3 36 16 17
+3 24 13 35
+3 4 36 16
+3 4 37 20
+3 11 9 0
+3 38 19 39
+3 16 11 9
+3 34 29 31
+3 40 3 41
+3 25 42 27
+3 20 43 6
+3 17 43 7
+3 42 27 38
+3 16 43 6
+3 44 45 30
+3 1 35 10
+3 26 2 27
+3 10 38 19
+3 11 31 12
+3 43 6 7
+3 10 15 19
+3 36 17 43
+3 24 8 35
+3 24 22 13
+3 11 32 12
+3 31 33 12
+3 5 29 20
+3 1 18 10
+3 25 2 27
+3 25 1 42
+3 41 4 36
+3 24 1 35
+3 30 31 33
+3 12 26 2
+3 45 30 33
+3 41 4 37
+3 23 35 14
+3 27 10 38
+3 28 44 29
+3 34 20 31
+3 37 20 43
+3 36 16 43
+3 42 10 38
+3 44 34 45
+3 11 32 0
+3 21 24 22
+3 34 11 31
+3 35 14 15
+3 34 45 11
+3 4 5 20
+3 21 7 23
+3 3 41 4
+3 33 12 26
+3 22 23 14
+3 28 34 29
+3 21 24 23
+3 7 8 23
+3 3 28 5
+3 0 25 2
+3 36 37 43
+3 32 25 26
+3 22 13 14
+3 0 25 1
+3 41 36 37
+3 44 29 30
+3 12 8 2
+3 1 42 10
+3 2 27 10
+3 6 12 8
+3 18 15 19
+3 34 45 31
+3 45 11 32
+3 45 31 33
+3 13 35 15
+3 28 4 34
+3 17 9 21
+3 17 21 7
+3 24 1 13
+3 8 23 35
+3 0 12 2
+3 0 8 2
+3 32 12 26
+3 28 44 34
+3 13 18 15
+3 45 32 33
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo4.vtk b/Examples/Animations/genusTwo3d/genusTwo4.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo4.vtk
@@ -0,0 +1,163 @@
+# vtk DataFile Version 2.0
+genusTwo4
+ASCII
+DATASET POLYDATA
+POINTS 45 float
+3 4 1
+3 5 1
+3 4 2
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 5 2
+3 3 1
+3 3 2
+2 3 1
+1 4 1
+3 6 1
+3 6 2
+2 2 2
+1 5 1
+2 5 1
+2 6 1
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+1 5 2
+2 5 2
+2 6 2
+1 3 1
+1 2 2
+4 5 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+1 3 2
+4 1 1
+4 2 1
+1 6 1
+
+POLYGONS 110 440
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 9 6 8
+3 1 2 10
+3 11 6 12
+3 13 14 9
+3 15 10 16
+3 11 0 12
+3 4 13 17
+3 9 0 8
+3 13 17 6
+3 13 11 6
+3 14 9 7
+3 9 7 8
+3 9 18 19
+3 1 20 15
+3 21 22 23
+3 13 9 6
+3 24 5 25
+3 3 24 4
+3 25 26 27
+3 28 29 22
+3 28 0 21
+3 25 17 27
+3 4 30 17
+3 19 31 32
+3 9 19 8
+3 32 10 33
+3 34 13 14
+3 19 20 32
+3 4 34 13
+3 4 35 17
+3 11 9 0
+3 36 16 37
+3 13 11 9
+3 30 25 27
+3 38 3 39
+3 21 40 23
+3 17 41 6
+3 14 41 7
+3 40 23 36
+3 13 41 6
+3 42 43 26
+3 1 32 10
+3 22 2 23
+3 10 36 16
+3 11 27 12
+3 41 6 7
+3 10 33 16
+3 34 14 41
+3 19 8 32
+3 19 44 20
+3 11 28 12
+3 27 29 12
+3 5 25 17
+3 1 15 10
+3 21 2 23
+3 21 1 40
+3 39 4 34
+3 19 1 32
+3 26 27 29
+3 12 22 2
+3 43 26 29
+3 39 4 35
+3 23 10 36
+3 24 42 25
+3 30 17 27
+3 35 17 41
+3 34 13 41
+3 40 10 36
+3 42 30 43
+3 11 28 0
+3 18 19 44
+3 30 11 27
+3 30 43 11
+3 4 5 17
+3 18 7 31
+3 3 39 4
+3 29 12 22
+3 24 30 25
+3 18 19 31
+3 7 8 31
+3 3 24 5
+3 0 21 2
+3 34 35 41
+3 28 21 22
+3 0 21 1
+3 39 34 35
+3 42 25 26
+3 12 8 2
+3 1 40 10
+3 2 23 10
+3 6 12 8
+3 15 33 16
+3 30 43 27
+3 43 11 28
+3 43 27 29
+3 20 32 33
+3 24 4 30
+3 14 9 18
+3 14 18 7
+3 19 1 20
+3 8 31 32
+3 0 12 2
+3 0 8 2
+3 28 12 22
+3 24 42 30
+3 20 15 33
+3 43 28 29
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo5.vtk b/Examples/Animations/genusTwo3d/genusTwo5.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo5.vtk
@@ -0,0 +1,160 @@
+# vtk DataFile Version 2.0
+genusTwo5
+ASCII
+DATASET POLYDATA
+POINTS 44 float
+3 4 1
+3 5 1
+3 4 2
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 5 2
+3 3 1
+3 3 2
+2 3 1
+1 4 1
+3 6 1
+3 6 2
+2 2 2
+1 5 1
+2 5 1
+2 6 1
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+1 5 2
+2 5 2
+2 6 2
+1 3 1
+1 2 2
+4 5 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+1 3 2
+4 1 1
+4 2 1
+
+POLYGONS 108 432
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 9 6 8
+3 1 2 10
+3 11 6 12
+3 13 14 9
+3 15 10 16
+3 11 0 12
+3 4 13 17
+3 9 0 8
+3 13 17 6
+3 13 11 6
+3 14 9 7
+3 9 7 8
+3 9 18 19
+3 1 20 15
+3 21 22 23
+3 13 9 6
+3 24 5 25
+3 3 24 4
+3 25 26 27
+3 28 29 22
+3 28 0 21
+3 25 17 27
+3 4 30 17
+3 19 31 32
+3 9 19 8
+3 32 10 33
+3 34 13 14
+3 19 20 32
+3 4 34 13
+3 4 35 17
+3 11 9 0
+3 36 16 37
+3 13 11 9
+3 30 25 27
+3 38 3 39
+3 21 40 23
+3 17 41 6
+3 14 41 7
+3 40 23 36
+3 13 41 6
+3 42 43 26
+3 1 32 10
+3 22 2 23
+3 10 36 16
+3 11 27 12
+3 41 6 7
+3 10 33 16
+3 34 14 41
+3 19 8 32
+3 11 28 12
+3 27 29 12
+3 5 25 17
+3 1 15 10
+3 21 2 23
+3 21 1 40
+3 39 4 34
+3 19 1 32
+3 26 27 29
+3 12 22 2
+3 43 26 29
+3 39 4 35
+3 23 10 36
+3 24 42 25
+3 30 17 27
+3 35 17 41
+3 34 13 41
+3 40 10 36
+3 42 30 43
+3 11 28 0
+3 30 11 27
+3 30 43 11
+3 4 5 17
+3 18 7 31
+3 3 39 4
+3 29 12 22
+3 24 30 25
+3 18 19 31
+3 7 8 31
+3 3 24 5
+3 0 21 2
+3 34 35 41
+3 28 21 22
+3 0 21 1
+3 39 34 35
+3 42 25 26
+3 12 8 2
+3 1 40 10
+3 2 23 10
+3 6 12 8
+3 15 33 16
+3 30 43 27
+3 43 11 28
+3 43 27 29
+3 20 32 33
+3 24 4 30
+3 14 9 18
+3 14 18 7
+3 19 1 20
+3 8 31 32
+3 0 12 2
+3 0 8 2
+3 28 12 22
+3 24 42 30
+3 20 15 33
+3 43 28 29
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo6.vtk b/Examples/Animations/genusTwo3d/genusTwo6.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo6.vtk
@@ -0,0 +1,153 @@
+# vtk DataFile Version 2.0
+genusTwo6
+ASCII
+DATASET POLYDATA
+POINTS 43 float
+3 4 1
+3 5 1
+3 4 2
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 5 2
+3 3 1
+3 3 2
+2 3 1
+1 4 1
+3 6 1
+3 6 2
+2 2 2
+2 6 1
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+1 3 1
+1 2 2
+4 5 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+1 3 2
+4 1 1
+4 2 1
+1 5 2
+
+POLYGONS 102 408
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 9 6 8
+3 1 2 10
+3 11 6 12
+3 13 14 9
+3 15 10 16
+3 11 0 12
+3 4 13 17
+3 9 0 8
+3 13 17 6
+3 13 11 6
+3 14 9 7
+3 9 7 8
+3 1 18 15
+3 19 20 21
+3 13 9 6
+3 22 5 23
+3 3 22 4
+3 23 24 25
+3 26 27 20
+3 26 0 19
+3 23 17 25
+3 4 28 17
+3 9 29 8
+3 30 10 31
+3 32 13 14
+3 29 18 30
+3 4 32 13
+3 4 33 17
+3 11 9 0
+3 34 16 35
+3 13 11 9
+3 28 23 25
+3 36 3 37
+3 19 38 21
+3 17 39 6
+3 14 39 7
+3 38 21 34
+3 13 39 6
+3 40 41 24
+3 1 30 10
+3 20 2 21
+3 10 34 16
+3 11 25 12
+3 39 6 7
+3 10 31 16
+3 32 14 39
+3 29 8 30
+3 11 26 12
+3 25 27 12
+3 5 23 17
+3 1 15 10
+3 19 2 21
+3 19 1 38
+3 37 4 32
+3 29 1 30
+3 24 25 27
+3 12 20 2
+3 41 24 27
+3 37 4 33
+3 21 10 34
+3 22 40 23
+3 28 17 25
+3 33 17 39
+3 32 13 39
+3 38 10 34
+3 40 28 41
+3 11 26 0
+3 28 11 25
+3 28 41 11
+3 4 5 17
+3 3 37 4
+3 27 12 20
+3 22 28 23
+3 7 8 42
+3 3 22 5
+3 0 19 2
+3 32 33 39
+3 26 19 20
+3 0 19 1
+3 37 32 33
+3 40 23 24
+3 12 8 2
+3 1 38 10
+3 2 21 10
+3 6 12 8
+3 15 31 16
+3 28 41 25
+3 41 11 26
+3 41 25 27
+3 18 30 31
+3 22 4 28
+3 29 1 18
+3 8 42 30
+3 0 12 2
+3 0 8 2
+3 26 12 20
+3 22 40 28
+3 18 15 31
+3 41 26 27
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo7.vtk b/Examples/Animations/genusTwo3d/genusTwo7.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo7.vtk
@@ -0,0 +1,146 @@
+# vtk DataFile Version 2.0
+genusTwo7
+ASCII
+DATASET POLYDATA
+POINTS 42 float
+3 4 1
+3 5 1
+3 4 2
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 5 2
+3 3 1
+3 3 2
+3 6 1
+3 6 2
+2 3 1
+2 2 2
+2 6 1
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+1 3 1
+1 2 2
+4 5 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+1 3 2
+4 1 1
+4 2 1
+1 5 2
+
+POLYGONS 96 384
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 9 6 8
+3 1 2 10
+3 11 6 12
+3 13 10 14
+3 11 0 12
+3 4 15 16
+3 9 0 8
+3 15 16 6
+3 15 11 6
+3 1 17 13
+3 18 19 20
+3 15 9 6
+3 21 5 22
+3 3 21 4
+3 22 23 24
+3 25 26 19
+3 25 0 18
+3 22 16 24
+3 4 27 16
+3 9 28 8
+3 29 10 30
+3 28 17 29
+3 4 31 15
+3 4 32 16
+3 11 9 0
+3 33 14 34
+3 15 11 9
+3 27 22 24
+3 35 3 36
+3 18 37 20
+3 16 38 6
+3 37 20 33
+3 15 38 6
+3 39 40 23
+3 1 29 10
+3 19 2 20
+3 10 33 14
+3 11 24 12
+3 38 6 7
+3 10 30 14
+3 28 8 29
+3 11 25 12
+3 24 26 12
+3 5 22 16
+3 1 13 10
+3 18 2 20
+3 18 1 37
+3 36 4 31
+3 28 1 29
+3 23 24 26
+3 12 19 2
+3 40 23 26
+3 36 4 32
+3 20 10 33
+3 21 39 22
+3 27 16 24
+3 32 16 38
+3 31 15 38
+3 37 10 33
+3 39 27 40
+3 11 25 0
+3 27 11 24
+3 27 40 11
+3 4 5 16
+3 3 36 4
+3 26 12 19
+3 21 27 22
+3 7 8 41
+3 3 21 5
+3 0 18 2
+3 31 32 38
+3 25 18 19
+3 0 18 1
+3 36 31 32
+3 39 22 23
+3 12 8 2
+3 1 37 10
+3 2 20 10
+3 6 12 8
+3 13 30 14
+3 27 40 24
+3 40 11 25
+3 40 24 26
+3 17 29 30
+3 21 4 27
+3 28 1 17
+3 8 41 29
+3 0 12 2
+3 0 8 2
+3 25 12 19
+3 21 39 27
+3 17 13 30
+3 40 25 26
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo8.vtk b/Examples/Animations/genusTwo3d/genusTwo8.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo8.vtk
@@ -0,0 +1,143 @@
+# vtk DataFile Version 2.0
+genusTwo8
+ASCII
+DATASET POLYDATA
+POINTS 41 float
+3 4 1
+3 5 1
+3 4 2
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 5 2
+3 3 1
+3 3 2
+3 6 1
+3 6 2
+2 3 1
+2 2 2
+2 6 1
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+1 3 1
+1 2 2
+4 5 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+1 3 2
+4 1 1
+4 2 1
+
+POLYGONS 94 376
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 9 6 8
+3 1 2 10
+3 11 6 12
+3 13 10 14
+3 11 0 12
+3 4 15 16
+3 9 0 8
+3 15 16 6
+3 15 11 6
+3 1 17 13
+3 18 19 20
+3 15 9 6
+3 21 5 22
+3 3 21 4
+3 22 23 24
+3 25 26 19
+3 25 0 18
+3 22 16 24
+3 4 27 16
+3 9 28 8
+3 29 10 30
+3 28 17 29
+3 4 31 15
+3 4 32 16
+3 11 9 0
+3 33 14 34
+3 15 11 9
+3 27 22 24
+3 35 3 36
+3 18 37 20
+3 16 38 6
+3 37 20 33
+3 15 38 6
+3 39 40 23
+3 1 29 10
+3 19 2 20
+3 10 33 14
+3 11 24 12
+3 38 6 7
+3 10 30 14
+3 28 8 29
+3 11 25 12
+3 24 26 12
+3 5 22 16
+3 1 13 10
+3 18 2 20
+3 18 1 37
+3 36 4 31
+3 28 1 29
+3 23 24 26
+3 12 19 2
+3 40 23 26
+3 36 4 32
+3 20 10 33
+3 21 39 22
+3 27 16 24
+3 32 16 38
+3 31 15 38
+3 37 10 33
+3 39 27 40
+3 11 25 0
+3 27 11 24
+3 27 40 11
+3 4 5 16
+3 3 36 4
+3 26 12 19
+3 21 27 22
+3 3 21 5
+3 0 18 2
+3 31 32 38
+3 25 18 19
+3 0 18 1
+3 36 31 32
+3 39 22 23
+3 12 8 2
+3 1 37 10
+3 2 20 10
+3 6 12 8
+3 13 30 14
+3 27 40 24
+3 40 11 25
+3 40 24 26
+3 17 29 30
+3 21 4 27
+3 28 1 17
+3 0 12 2
+3 0 8 2
+3 25 12 19
+3 21 39 27
+3 17 13 30
+3 40 25 26
+
diff --git a/Examples/Animations/genusTwo3d/genusTwo9.vtk b/Examples/Animations/genusTwo3d/genusTwo9.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/genusTwo3d/genusTwo9.vtk
@@ -0,0 +1,136 @@
+# vtk DataFile Version 2.0
+genusTwo9
+ASCII
+DATASET POLYDATA
+POINTS 40 float
+3 4 1
+3 5 1
+3 4 2
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 5 2
+3 3 1
+3 3 2
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+2 5 1
+2 5 2
+2 6 2
+2 6 1
+1 3 1
+1 2 2
+4 5 2
+3 6 2
+4 6 2
+1 1 1
+1 2 1
+4 5 1
+1 3 2
+4 1 1
+4 2 1
+
+POLYGONS 88 352
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 9 6 8
+3 1 2 10
+3 11 6 12
+3 11 0 12
+3 4 13 14
+3 9 0 8
+3 13 14 6
+3 13 11 6
+3 15 16 17
+3 13 9 6
+3 18 5 19
+3 3 18 4
+3 19 20 21
+3 22 23 16
+3 22 0 15
+3 19 14 21
+3 4 24 14
+3 9 25 8
+3 26 10 27
+3 25 28 26
+3 4 29 13
+3 4 30 14
+3 11 9 0
+3 31 32 33
+3 13 11 9
+3 24 19 21
+3 34 3 35
+3 15 36 17
+3 14 37 6
+3 36 17 31
+3 13 37 6
+3 38 39 20
+3 1 26 10
+3 16 2 17
+3 10 31 32
+3 11 21 12
+3 37 6 7
+3 10 27 32
+3 25 8 26
+3 11 22 12
+3 21 23 12
+3 5 19 14
+3 15 2 17
+3 15 1 36
+3 35 4 29
+3 25 1 26
+3 20 21 23
+3 12 16 2
+3 39 20 23
+3 35 4 30
+3 17 10 31
+3 18 38 19
+3 24 14 21
+3 30 14 37
+3 29 13 37
+3 36 10 31
+3 38 24 39
+3 11 22 0
+3 24 11 21
+3 24 39 11
+3 4 5 14
+3 3 35 4
+3 23 12 16
+3 18 24 19
+3 3 18 5
+3 0 15 2
+3 29 30 37
+3 22 15 16
+3 0 15 1
+3 35 29 30
+3 38 19 20
+3 12 8 2
+3 1 36 10
+3 2 17 10
+3 6 12 8
+3 24 39 21
+3 39 11 22
+3 39 21 23
+3 28 26 27
+3 18 4 24
+3 0 12 2
+3 0 8 2
+3 22 12 16
+3 18 38 24
+3 39 22 23
+
diff --git a/Examples/Animations/sqPairBack/sqPairBack1.vtk b/Examples/Animations/sqPairBack/sqPairBack1.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairBack/sqPairBack1.vtk
@@ -0,0 +1,90 @@
+# vtk DataFile Version 2.0
+sqPairBack1
+ASCII
+DATASET POLYDATA
+POINTS 36 float
+0 2 5
+0 1 6
+0 2 6
+0 4 1
+0 5 1
+0 4 2
+0 3 4
+0 4 4
+0 3 5
+0 5 2
+0 6 2
+0 5 3
+0 3 6
+0 4 3
+0 2 4
+0 1 5
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 3 2
+0 2 3
+0 4 5
+0 1 3
+0 1 4
+0 6 3
+0 1 2
+0 3 3
+0 6 1
+0 6 4
+0 5 5
+0 5 4
+0 4 6
+0 1 1
+
+POLYGONS 46 184
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 4 5 9
+3 9 10 11
+3 8 2 12
+3 13 11 7
+3 14 15 0
+3 16 17 18
+3 19 20 21
+3 18 22 23
+3 8 24 12
+3 13 6 7
+3 25 23 26
+3 10 11 27
+3 7 8 24
+3 28 18 25
+3 29 13 6
+3 3 22 5
+3 15 0 1
+3 4 30 9
+3 17 18 22
+3 31 32 19
+3 0 8 2
+3 5 29 13
+3 11 7 33
+3 26 14 15
+3 30 9 10
+3 17 3 22
+3 11 27 33
+3 29 14 6
+3 18 25 23
+3 23 29 14
+3 22 23 29
+3 27 33 31
+3 24 12 34
+3 35 16 28
+3 32 19 20
+3 22 5 29
+3 33 31 32
+3 7 33 24
+3 16 28 18
+3 24 32 34
+3 32 34 20
+3 23 26 14
+3 33 24 32
+
diff --git a/Examples/Animations/sqPairBack/sqPairBack2.vtk b/Examples/Animations/sqPairBack/sqPairBack2.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairBack/sqPairBack2.vtk
@@ -0,0 +1,75 @@
+# vtk DataFile Version 2.0
+sqPairBack2
+ASCII
+DATASET POLYDATA
+POINTS 29 float
+0 2 4
+0 2 5
+0 3 4
+0 4 4
+0 3 5
+0 4 3
+0 5 3
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 3 2
+0 2 3
+0 4 5
+0 3 6
+0 1 3
+0 1 4
+0 1 2
+0 5 2
+0 3 3
+0 4 1
+0 4 2
+0 6 4
+0 5 5
+0 5 4
+0 4 6
+0 1 1
+
+LINES 4 12
+2 0 1
+2 20 6
+2 23 20
+2 1 4
+
+POLYGONS 32 128
+3 2 3 4
+3 5 6 3
+3 7 8 9
+3 10 11 12
+3 9 13 14
+3 4 15 16
+3 5 2 3
+3 17 14 18
+3 3 4 15
+3 19 9 17
+3 21 5 2
+3 22 13 23
+3 8 9 13
+3 24 25 10
+3 23 21 5
+3 6 3 26
+3 8 22 13
+3 21 0 2
+3 9 17 14
+3 14 21 0
+3 13 14 21
+3 15 16 27
+3 28 7 19
+3 25 10 11
+3 13 23 21
+3 26 24 25
+3 3 26 15
+3 7 19 9
+3 15 25 27
+3 25 27 11
+3 14 18 0
+3 26 15 25
+
diff --git a/Examples/Animations/sqPairBack/sqPairBack3.vtk b/Examples/Animations/sqPairBack/sqPairBack3.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairBack/sqPairBack3.vtk
@@ -0,0 +1,72 @@
+# vtk DataFile Version 2.0
+sqPairBack3
+ASCII
+DATASET POLYDATA
+POINTS 28 float
+0 2 4
+0 2 5
+0 3 4
+0 4 4
+0 3 5
+0 4 3
+0 5 3
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 3 2
+0 2 3
+0 4 5
+0 3 6
+0 1 3
+0 1 4
+0 1 2
+0 5 2
+0 3 3
+0 4 2
+0 6 4
+0 5 5
+0 5 4
+0 4 6
+0 1 1
+
+LINES 4 12
+2 0 1
+2 20 6
+2 22 20
+2 1 4
+
+POLYGONS 30 120
+3 2 3 4
+3 5 6 3
+3 7 8 9
+3 10 11 12
+3 9 13 14
+3 4 15 16
+3 5 2 3
+3 17 14 18
+3 3 4 15
+3 19 9 17
+3 21 5 2
+3 8 9 13
+3 23 24 10
+3 22 21 5
+3 6 3 25
+3 21 0 2
+3 9 17 14
+3 14 21 0
+3 13 14 21
+3 15 16 26
+3 27 7 19
+3 24 10 11
+3 13 22 21
+3 25 23 24
+3 3 25 15
+3 7 19 9
+3 15 24 26
+3 24 26 11
+3 14 18 0
+3 25 15 24
+
diff --git a/Examples/Animations/sqPairBack/sqPairBack4.vtk b/Examples/Animations/sqPairBack/sqPairBack4.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairBack/sqPairBack4.vtk
@@ -0,0 +1,69 @@
+# vtk DataFile Version 2.0
+sqPairBack4
+ASCII
+DATASET POLYDATA
+POINTS 27 float
+0 2 4
+0 2 5
+0 3 4
+0 4 4
+0 3 5
+0 4 3
+0 5 3
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 3 2
+0 2 3
+0 1 3
+0 1 4
+0 4 5
+0 1 2
+0 5 2
+0 3 3
+0 4 2
+0 6 4
+0 5 5
+0 5 4
+0 1 1
+0 4 6
+
+LINES 4 12
+2 0 1
+2 19 6
+2 21 19
+2 1 4
+
+POLYGONS 28 112
+3 2 3 4
+3 5 6 3
+3 7 8 9
+3 10 11 12
+3 9 13 14
+3 5 2 3
+3 15 14 16
+3 3 4 17
+3 18 9 15
+3 20 5 2
+3 8 9 13
+3 22 23 10
+3 21 20 5
+3 6 3 24
+3 20 0 2
+3 9 15 14
+3 14 20 0
+3 13 14 20
+3 25 7 18
+3 23 10 11
+3 13 21 20
+3 24 22 23
+3 3 24 17
+3 7 18 9
+3 17 23 26
+3 23 26 11
+3 14 16 0
+3 24 17 23
+
diff --git a/Examples/Animations/sqPairBack/sqPairBack5.vtk b/Examples/Animations/sqPairBack/sqPairBack5.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairBack/sqPairBack5.vtk
@@ -0,0 +1,66 @@
+# vtk DataFile Version 2.0
+sqPairBack5
+ASCII
+DATASET POLYDATA
+POINTS 26 float
+0 2 4
+0 2 5
+0 3 4
+0 4 4
+0 3 5
+0 4 3
+0 5 3
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 3 2
+0 2 3
+0 1 3
+0 1 4
+0 4 5
+0 1 2
+0 5 2
+0 3 3
+0 4 2
+0 5 4
+0 1 1
+0 5 5
+0 4 6
+
+LINES 4 12
+2 0 1
+2 19 6
+2 21 19
+2 1 4
+
+POLYGONS 26 104
+3 2 3 4
+3 5 6 3
+3 7 8 9
+3 10 11 12
+3 9 13 14
+3 5 2 3
+3 15 14 16
+3 3 4 17
+3 18 9 15
+3 20 5 2
+3 8 9 13
+3 21 20 5
+3 6 3 22
+3 20 0 2
+3 9 15 14
+3 14 20 0
+3 13 14 20
+3 23 7 18
+3 24 10 11
+3 13 21 20
+3 3 22 17
+3 7 18 9
+3 17 24 25
+3 24 25 11
+3 14 16 0
+3 22 17 24
+
diff --git a/Examples/Animations/sqPairBack/sqPairBack6.vtk b/Examples/Animations/sqPairBack/sqPairBack6.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairBack/sqPairBack6.vtk
@@ -0,0 +1,61 @@
+# vtk DataFile Version 2.0
+sqPairBack6
+ASCII
+DATASET POLYDATA
+POINTS 24 float
+0 2 4
+0 2 5
+0 3 4
+0 4 4
+0 3 5
+0 4 3
+0 5 3
+0 2 1
+0 3 1
+0 2 2
+0 3 2
+0 2 3
+0 4 5
+0 1 2
+0 1 3
+0 5 2
+0 3 3
+0 4 2
+0 5 4
+0 5 6
+0 6 6
+0 1 1
+0 5 5
+0 4 6
+
+LINES 5 15
+2 0 1
+2 15 6
+2 17 15
+2 19 20
+2 1 4
+
+POLYGONS 22 88
+3 2 3 4
+3 5 6 3
+3 7 8 9
+3 9 10 11
+3 5 2 3
+3 3 4 12
+3 13 9 14
+3 16 5 2
+3 8 9 10
+3 17 16 5
+3 6 3 18
+3 16 0 2
+3 9 14 11
+3 11 16 0
+3 10 11 16
+3 21 7 13
+3 10 17 16
+3 3 18 12
+3 7 13 9
+3 12 22 23
+3 22 23 19
+3 18 12 22
+
diff --git a/Examples/Animations/sqPairBack/sqPairBack7.vtk b/Examples/Animations/sqPairBack/sqPairBack7.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairBack/sqPairBack7.vtk
@@ -0,0 +1,58 @@
+# vtk DataFile Version 2.0
+sqPairBack7
+ASCII
+DATASET POLYDATA
+POINTS 23 float
+0 2 4
+0 2 5
+0 3 4
+0 4 4
+0 3 5
+0 4 3
+0 5 3
+0 2 1
+0 3 1
+0 2 2
+0 3 2
+0 2 3
+0 4 5
+0 5 2
+0 3 3
+0 4 2
+0 5 4
+0 5 6
+0 6 6
+0 1 1
+0 1 2
+0 5 5
+0 4 6
+
+LINES 5 15
+2 0 1
+2 13 6
+2 15 13
+2 17 18
+2 1 4
+
+POLYGONS 20 80
+3 2 3 4
+3 5 6 3
+3 7 8 9
+3 9 10 11
+3 5 2 3
+3 3 4 12
+3 14 5 2
+3 8 9 10
+3 15 14 5
+3 6 3 16
+3 14 0 2
+3 11 14 0
+3 10 11 14
+3 19 7 20
+3 10 15 14
+3 3 16 12
+3 7 20 9
+3 12 21 22
+3 21 22 17
+3 16 12 21
+
diff --git a/Examples/Animations/sqPairBack/sqPairBack8.vtk b/Examples/Animations/sqPairBack/sqPairBack8.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairBack/sqPairBack8.vtk
@@ -0,0 +1,54 @@
+# vtk DataFile Version 2.0
+sqPairBack8
+ASCII
+DATASET POLYDATA
+POINTS 21 float
+0 2 4
+0 2 5
+0 3 4
+0 4 4
+0 3 5
+0 4 3
+0 5 3
+0 2 2
+0 3 2
+0 2 3
+0 4 5
+0 5 2
+0 1 1
+0 2 1
+0 3 3
+0 4 2
+0 5 4
+0 5 6
+0 6 6
+0 5 5
+0 4 6
+
+LINES 7 21
+2 0 1
+2 11 6
+2 12 13
+2 15 11
+2 13 7
+2 17 18
+2 1 4
+
+POLYGONS 16 64
+3 2 3 4
+3 5 6 3
+3 7 8 9
+3 5 2 3
+3 3 4 10
+3 14 5 2
+3 15 14 5
+3 6 3 16
+3 14 0 2
+3 9 14 0
+3 8 9 14
+3 8 15 14
+3 3 16 10
+3 10 19 20
+3 19 20 17
+3 16 10 19
+
diff --git a/Examples/Animations/sqPairBack/sqPairBack9.vtk b/Examples/Animations/sqPairBack/sqPairBack9.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairBack/sqPairBack9.vtk
@@ -0,0 +1,52 @@
+# vtk DataFile Version 2.0
+sqPairBack9
+ASCII
+DATASET POLYDATA
+POINTS 20 float
+0 2 4
+0 2 5
+0 3 4
+0 4 4
+0 3 5
+0 4 3
+0 5 3
+0 2 2
+0 3 2
+0 2 3
+0 4 5
+0 5 2
+0 1 1
+0 2 1
+0 3 3
+0 4 2
+0 5 4
+0 5 6
+0 6 6
+0 5 5
+
+LINES 8 24
+2 0 1
+2 11 6
+2 12 13
+2 15 11
+2 13 7
+2 17 18
+2 1 4
+2 19 17
+
+POLYGONS 14 56
+3 2 3 4
+3 5 6 3
+3 7 8 9
+3 5 2 3
+3 3 4 10
+3 14 5 2
+3 15 14 5
+3 6 3 16
+3 14 0 2
+3 9 14 0
+3 8 9 14
+3 8 15 14
+3 3 16 10
+3 16 10 19
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd1.vtk b/Examples/Animations/sqPairFwd/sqPairFwd1.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd1.vtk
@@ -0,0 +1,90 @@
+# vtk DataFile Version 2.0
+sqPairFwd1
+ASCII
+DATASET POLYDATA
+POINTS 36 float
+0 2 5
+0 1 6
+0 2 6
+0 5 2
+0 4 3
+0 5 3
+0 4 1
+0 5 1
+0 4 2
+0 3 4
+0 4 4
+0 3 5
+0 6 2
+0 3 6
+0 2 4
+0 1 5
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 4 5
+0 1 3
+0 2 3
+0 1 4
+0 6 3
+0 1 2
+0 3 3
+0 3 2
+0 6 1
+0 6 4
+0 5 5
+0 5 4
+0 4 6
+0 1 1
+
+POLYGONS 46 184
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 9 10 11
+3 7 8 3
+3 3 12 5
+3 8 3 4
+3 11 2 13
+3 4 5 10
+3 14 15 0
+3 16 17 18
+3 9 0 11
+3 19 20 21
+3 11 22 13
+3 4 9 10
+3 23 24 25
+3 12 5 26
+3 10 11 22
+3 27 18 23
+3 28 4 9
+3 6 29 8
+3 15 0 1
+3 7 30 3
+3 17 18 29
+3 31 32 19
+3 0 11 2
+3 8 28 4
+3 5 10 33
+3 25 14 15
+3 30 3 12
+3 17 6 29
+3 5 26 33
+3 28 14 9
+3 18 23 24
+3 24 28 14
+3 26 33 31
+3 14 9 0
+3 22 13 34
+3 35 16 27
+3 32 19 20
+3 29 8 28
+3 33 31 32
+3 16 27 18
+3 22 32 34
+3 32 34 20
+3 24 25 14
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd10.vtk b/Examples/Animations/sqPairFwd/sqPairFwd10.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd10.vtk
@@ -0,0 +1,44 @@
+# vtk DataFile Version 2.0
+sqPairFwd10
+ASCII
+DATASET POLYDATA
+POINTS 18 float
+0 3 2
+0 3 3
+0 5 4
+0 5 5
+0 2 1
+0 3 1
+0 2 2
+0 1 2
+0 1 3
+0 2 4
+0 3 4
+0 2 3
+0 5 6
+0 6 6
+0 4 4
+0 1 1
+0 4 5
+0 4 6
+
+LINES 6 18
+2 0 1
+2 2 3
+2 12 13
+2 10 14
+2 14 16
+2 14 2
+
+POLYGONS 10 40
+3 4 5 6
+3 7 6 8
+3 5 6 0
+3 1 9 10
+3 6 8 11
+3 11 1 9
+3 15 4 7
+3 4 7 6
+3 16 3 17
+3 3 17 12
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd11.vtk b/Examples/Animations/sqPairFwd/sqPairFwd11.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd11.vtk
@@ -0,0 +1,43 @@
+# vtk DataFile Version 2.0
+sqPairFwd11
+ASCII
+DATASET POLYDATA
+POINTS 17 float
+0 3 2
+0 3 3
+0 5 4
+0 5 5
+0 2 1
+0 3 1
+0 2 2
+0 1 2
+0 1 3
+0 2 3
+0 5 6
+0 6 6
+0 3 4
+0 4 4
+0 1 1
+0 4 5
+0 4 6
+
+LINES 8 24
+2 0 1
+2 2 3
+2 10 11
+2 12 13
+2 9 1
+2 1 12
+2 13 15
+2 13 2
+
+POLYGONS 8 32
+3 4 5 6
+3 7 6 8
+3 5 6 0
+3 6 8 9
+3 14 4 7
+3 4 7 6
+3 15 3 16
+3 3 16 10
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd12.vtk b/Examples/Animations/sqPairFwd/sqPairFwd12.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd12.vtk
@@ -0,0 +1,41 @@
+# vtk DataFile Version 2.0
+sqPairFwd12
+ASCII
+DATASET POLYDATA
+POINTS 16 float
+0 3 2
+0 3 3
+0 5 4
+0 5 5
+0 2 1
+0 3 1
+0 2 2
+0 2 3
+0 5 6
+0 6 6
+0 3 4
+0 4 4
+0 1 1
+0 1 2
+0 4 5
+0 4 6
+
+LINES 9 27
+2 0 1
+2 2 3
+2 6 7
+2 8 9
+2 10 11
+2 7 1
+2 1 10
+2 11 14
+2 11 2
+
+POLYGONS 6 24
+3 4 5 6
+3 5 6 0
+3 12 4 13
+3 4 13 6
+3 14 3 15
+3 3 15 8
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd13.vtk b/Examples/Animations/sqPairFwd/sqPairFwd13.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd13.vtk
@@ -0,0 +1,38 @@
+# vtk DataFile Version 2.0
+sqPairFwd13
+ASCII
+DATASET POLYDATA
+POINTS 14 float
+0 3 2
+0 3 3
+0 5 4
+0 5 5
+0 2 2
+0 2 3
+0 1 1
+0 2 1
+0 5 6
+0 6 6
+0 3 4
+0 4 4
+0 4 5
+0 4 6
+
+LINES 12 36
+2 0 1
+2 2 3
+2 4 5
+2 6 7
+2 7 4
+2 8 9
+2 10 11
+2 4 0
+2 5 1
+2 1 10
+2 11 12
+2 11 2
+
+POLYGONS 2 8
+3 12 3 13
+3 3 13 8
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd14.vtk b/Examples/Animations/sqPairFwd/sqPairFwd14.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd14.vtk
@@ -0,0 +1,35 @@
+# vtk DataFile Version 2.0
+sqPairFwd14
+ASCII
+DATASET POLYDATA
+POINTS 13 float
+0 3 2
+0 3 3
+0 5 4
+0 5 5
+0 2 2
+0 2 3
+0 1 1
+0 2 1
+0 5 6
+0 6 6
+0 3 4
+0 4 4
+0 4 5
+
+LINES 14 42
+2 0 1
+2 2 3
+2 4 5
+2 6 7
+2 7 4
+2 8 9
+2 10 11
+2 4 0
+2 5 1
+2 1 10
+2 11 12
+2 12 3
+2 11 2
+2 3 8
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd2.vtk b/Examples/Animations/sqPairFwd/sqPairFwd2.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd2.vtk
@@ -0,0 +1,63 @@
+# vtk DataFile Version 2.0
+sqPairFwd2
+ASCII
+DATASET POLYDATA
+POINTS 27 float
+0 3 4
+0 4 4
+0 3 5
+0 4 3
+0 5 3
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 4 5
+0 3 6
+0 1 3
+0 2 3
+0 1 4
+0 1 2
+0 3 3
+0 4 1
+0 3 2
+0 4 2
+0 6 4
+0 5 5
+0 5 4
+0 2 4
+0 4 6
+0 1 1
+
+POLYGONS 28 112
+3 0 1 2
+3 3 4 1
+3 5 6 7
+3 8 9 10
+3 2 11 12
+3 3 0 1
+3 13 14 15
+3 1 2 11
+3 16 7 13
+3 17 3 0
+3 18 19 20
+3 6 7 19
+3 21 22 8
+3 20 17 3
+3 4 1 23
+3 6 18 19
+3 17 24 0
+3 7 13 14
+3 14 17 24
+3 11 12 25
+3 26 5 16
+3 22 8 9
+3 19 20 17
+3 23 21 22
+3 5 16 7
+3 11 22 25
+3 22 25 9
+3 14 15 24
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd3.vtk b/Examples/Animations/sqPairFwd/sqPairFwd3.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd3.vtk
@@ -0,0 +1,60 @@
+# vtk DataFile Version 2.0
+sqPairFwd3
+ASCII
+DATASET POLYDATA
+POINTS 26 float
+0 3 4
+0 4 4
+0 3 5
+0 4 3
+0 5 3
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 4 5
+0 3 6
+0 1 3
+0 2 3
+0 1 4
+0 1 2
+0 3 3
+0 3 2
+0 6 4
+0 5 5
+0 4 2
+0 5 4
+0 2 4
+0 4 6
+0 1 1
+
+POLYGONS 26 104
+3 0 1 2
+3 3 4 1
+3 5 6 7
+3 8 9 10
+3 2 11 12
+3 3 0 1
+3 13 14 15
+3 1 2 11
+3 16 7 13
+3 17 3 0
+3 6 7 18
+3 19 20 8
+3 21 17 3
+3 4 1 22
+3 17 23 0
+3 7 13 14
+3 14 17 23
+3 11 12 24
+3 25 5 16
+3 20 8 9
+3 18 21 17
+3 22 19 20
+3 5 16 7
+3 11 20 24
+3 20 24 9
+3 14 15 23
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd4.vtk b/Examples/Animations/sqPairFwd/sqPairFwd4.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd4.vtk
@@ -0,0 +1,57 @@
+# vtk DataFile Version 2.0
+sqPairFwd4
+ASCII
+DATASET POLYDATA
+POINTS 25 float
+0 3 4
+0 4 4
+0 3 5
+0 4 3
+0 5 3
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 1 3
+0 2 3
+0 1 4
+0 4 5
+0 1 2
+0 3 3
+0 3 2
+0 6 4
+0 5 5
+0 4 2
+0 5 4
+0 2 4
+0 1 1
+0 4 6
+
+POLYGONS 24 96
+3 0 1 2
+3 3 4 1
+3 5 6 7
+3 8 9 10
+3 3 0 1
+3 11 12 13
+3 1 2 14
+3 15 7 11
+3 16 3 0
+3 6 7 17
+3 18 19 8
+3 20 16 3
+3 4 1 21
+3 16 22 0
+3 7 11 12
+3 12 16 22
+3 23 5 15
+3 19 8 9
+3 17 20 16
+3 21 18 19
+3 5 15 7
+3 14 19 24
+3 19 24 9
+3 12 13 22
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd5.vtk b/Examples/Animations/sqPairFwd/sqPairFwd5.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd5.vtk
@@ -0,0 +1,57 @@
+# vtk DataFile Version 2.0
+sqPairFwd5
+ASCII
+DATASET POLYDATA
+POINTS 24 float
+0 4 3
+0 5 3
+0 4 4
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 3 4
+0 1 3
+0 2 3
+0 1 4
+0 1 2
+0 3 3
+0 3 2
+0 6 4
+0 5 5
+0 4 2
+0 5 4
+0 2 4
+0 1 1
+0 4 5
+0 4 6
+
+LINES 1 3
+2 2 22
+
+POLYGONS 22 88
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 0 9 2
+3 10 11 12
+3 13 5 10
+3 14 0 9
+3 4 5 15
+3 16 17 6
+3 18 14 0
+3 1 2 19
+3 14 20 9
+3 5 10 11
+3 11 14 20
+3 21 3 13
+3 17 6 7
+3 15 18 14
+3 19 16 17
+3 3 13 5
+3 22 17 23
+3 17 23 7
+3 11 12 20
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd6.vtk b/Examples/Animations/sqPairFwd/sqPairFwd6.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd6.vtk
@@ -0,0 +1,55 @@
+# vtk DataFile Version 2.0
+sqPairFwd6
+ASCII
+DATASET POLYDATA
+POINTS 23 float
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 4 3
+0 3 4
+0 4 4
+0 1 3
+0 2 3
+0 1 4
+0 1 2
+0 3 3
+0 3 2
+0 6 4
+0 5 5
+0 4 2
+0 2 4
+0 1 1
+0 5 4
+0 4 5
+0 4 6
+
+LINES 2 6
+2 8 21
+2 8 20
+
+POLYGONS 20 80
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 9 10 11
+3 12 2 9
+3 13 6 7
+3 1 2 14
+3 15 16 3
+3 17 13 6
+3 13 18 7
+3 2 9 10
+3 10 13 18
+3 19 0 12
+3 16 3 4
+3 14 17 13
+3 20 15 16
+3 0 12 2
+3 21 16 22
+3 16 22 4
+3 10 11 18
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd7.vtk b/Examples/Animations/sqPairFwd/sqPairFwd7.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd7.vtk
@@ -0,0 +1,53 @@
+# vtk DataFile Version 2.0
+sqPairFwd7
+ASCII
+DATASET POLYDATA
+POINTS 22 float
+0 5 4
+0 5 5
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 4 3
+0 3 4
+0 4 4
+0 1 3
+0 2 3
+0 1 4
+0 1 2
+0 3 3
+0 3 2
+0 4 2
+0 2 4
+0 1 1
+0 4 5
+0 4 6
+
+LINES 3 9
+2 0 1
+2 10 20
+2 10 0
+
+POLYGONS 18 72
+3 2 3 4
+3 5 6 7
+3 8 9 10
+3 11 12 13
+3 14 4 11
+3 15 8 9
+3 3 4 16
+3 17 15 8
+3 15 18 9
+3 4 11 12
+3 12 15 18
+3 19 2 14
+3 1 5 6
+3 16 17 15
+3 2 14 4
+3 20 1 21
+3 1 21 6
+3 12 13 18
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd8.vtk b/Examples/Animations/sqPairFwd/sqPairFwd8.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd8.vtk
@@ -0,0 +1,49 @@
+# vtk DataFile Version 2.0
+sqPairFwd8
+ASCII
+DATASET POLYDATA
+POINTS 20 float
+0 3 2
+0 3 3
+0 5 4
+0 5 5
+0 2 1
+0 3 1
+0 2 2
+0 4 3
+0 3 4
+0 4 4
+0 1 3
+0 2 3
+0 1 4
+0 1 2
+0 2 4
+0 5 6
+0 6 6
+0 1 1
+0 4 5
+0 4 6
+
+LINES 5 15
+2 0 1
+2 2 3
+2 15 16
+2 9 18
+2 9 2
+
+POLYGONS 14 56
+3 4 5 6
+3 7 8 9
+3 10 11 12
+3 13 6 10
+3 1 7 8
+3 5 6 0
+3 1 14 8
+3 6 10 11
+3 11 1 14
+3 17 4 13
+3 4 13 6
+3 18 3 19
+3 3 19 15
+3 11 12 14
+
diff --git a/Examples/Animations/sqPairFwd/sqPairFwd9.vtk b/Examples/Animations/sqPairFwd/sqPairFwd9.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/sqPairFwd/sqPairFwd9.vtk
@@ -0,0 +1,47 @@
+# vtk DataFile Version 2.0
+sqPairFwd9
+ASCII
+DATASET POLYDATA
+POINTS 19 float
+0 3 2
+0 3 3
+0 5 4
+0 5 5
+0 2 1
+0 3 1
+0 2 2
+0 1 3
+0 2 3
+0 1 4
+0 1 2
+0 2 4
+0 3 4
+0 5 6
+0 6 6
+0 4 4
+0 1 1
+0 4 5
+0 4 6
+
+LINES 6 18
+2 0 1
+2 2 3
+2 13 14
+2 12 15
+2 15 17
+2 15 2
+
+POLYGONS 12 48
+3 4 5 6
+3 7 8 9
+3 10 6 7
+3 5 6 0
+3 1 11 12
+3 6 7 8
+3 8 1 11
+3 16 4 10
+3 4 10 6
+3 17 3 18
+3 3 18 13
+3 8 9 11
+
diff --git a/Examples/Animations/swissFlag/swissFlag1.vtk b/Examples/Animations/swissFlag/swissFlag1.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/swissFlag/swissFlag1.vtk
@@ -0,0 +1,84 @@
+# vtk DataFile Version 2.0
+swissFlag1
+ASCII
+DATASET POLYDATA
+POINTS 36 float
+0 2 5
+0 1 6
+0 2 6
+0 5 2
+0 4 3
+0 5 3
+0 4 1
+0 5 1
+0 4 2
+0 6 2
+0 3 5
+0 3 6
+0 2 4
+0 1 5
+0 2 1
+0 3 1
+0 2 2
+0 3 4
+0 6 5
+0 5 6
+0 6 6
+0 3 2
+0 2 3
+0 4 5
+0 1 3
+0 1 4
+0 6 3
+0 1 2
+0 6 1
+0 6 4
+0 5 5
+0 5 4
+0 3 3
+0 4 6
+0 1 1
+0 4 4
+
+POLYGONS 40 160
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 7 8 3
+3 3 9 5
+3 8 3 4
+3 10 2 11
+3 12 13 0
+3 14 15 16
+3 17 0 10
+3 18 19 20
+3 16 21 22
+3 10 23 11
+3 24 22 25
+3 9 5 26
+3 27 16 24
+3 6 21 8
+3 13 0 1
+3 7 28 3
+3 15 16 21
+3 29 30 18
+3 0 10 2
+3 25 12 13
+3 28 3 9
+3 15 6 21
+3 5 26 31
+3 16 24 22
+3 21 22 32
+3 26 31 29
+3 12 17 0
+3 23 11 33
+3 34 14 27
+3 30 18 19
+3 31 29 30
+3 35 31 23
+3 14 27 16
+3 23 30 33
+3 30 33 19
+3 22 25 12
+3 31 23 30
+
diff --git a/Examples/Animations/swissFlag/swissFlag10.vtk b/Examples/Animations/swissFlag/swissFlag10.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/swissFlag/swissFlag10.vtk
@@ -0,0 +1,43 @@
+# vtk DataFile Version 2.0
+swissFlag10
+ASCII
+DATASET POLYDATA
+POINTS 17 float
+0 5 4
+0 5 5
+0 2 2
+0 2 3
+0 3 4
+0 3 5
+0 1 1
+0 2 1
+0 4 3
+0 5 3
+0 5 6
+0 6 6
+0 4 5
+0 4 2
+0 3 2
+0 2 4
+0 4 6
+
+LINES 14 42
+2 0 1
+2 2 3
+2 4 5
+2 6 7
+2 8 9
+2 7 2
+2 10 11
+2 5 12
+2 13 8
+2 2 14
+2 15 4
+2 3 15
+2 9 0
+2 14 13
+
+POLYGONS 2 8
+3 12 1 16
+3 1 16 10
+
diff --git a/Examples/Animations/swissFlag/swissFlag11.vtk b/Examples/Animations/swissFlag/swissFlag11.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/swissFlag/swissFlag11.vtk
@@ -0,0 +1,40 @@
+# vtk DataFile Version 2.0
+swissFlag11
+ASCII
+DATASET POLYDATA
+POINTS 16 float
+0 5 4
+0 5 5
+0 2 2
+0 2 3
+0 3 4
+0 3 5
+0 1 1
+0 2 1
+0 4 3
+0 5 3
+0 5 6
+0 6 6
+0 4 5
+0 4 2
+0 3 2
+0 2 4
+
+LINES 16 48
+2 0 1
+2 2 3
+2 4 5
+2 6 7
+2 8 9
+2 7 2
+2 10 11
+2 5 12
+2 13 8
+2 2 14
+2 15 4
+2 3 15
+2 9 0
+2 14 13
+2 12 1
+2 1 10
+
diff --git a/Examples/Animations/swissFlag/swissFlag2.vtk b/Examples/Animations/swissFlag/swissFlag2.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/swissFlag/swissFlag2.vtk
@@ -0,0 +1,64 @@
+# vtk DataFile Version 2.0
+swissFlag2
+ASCII
+DATASET POLYDATA
+POINTS 27 float
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 3 2
+0 2 3
+0 3 5
+0 4 5
+0 3 6
+0 1 3
+0 1 4
+0 3 4
+0 1 2
+0 4 1
+0 4 2
+0 4 3
+0 5 3
+0 6 4
+0 5 5
+0 3 3
+0 4 6
+0 1 1
+0 2 4
+0 5 4
+0 4 4
+
+LINES 5 15
+2 13 8
+2 17 18
+2 16 17
+2 24 13
+2 18 25
+
+POLYGONS 22 88
+3 0 1 2
+3 3 4 5
+3 2 6 7
+3 8 9 10
+3 11 7 12
+3 14 2 11
+3 15 6 16
+3 1 2 6
+3 19 20 3
+3 1 15 6
+3 2 11 7
+3 6 7 21
+3 9 10 22
+3 23 0 14
+3 20 3 4
+3 25 19 20
+3 26 25 9
+3 0 14 2
+3 9 20 22
+3 20 22 4
+3 7 12 24
+3 25 9 20
+
diff --git a/Examples/Animations/swissFlag/swissFlag3.vtk b/Examples/Animations/swissFlag/swissFlag3.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/swissFlag/swissFlag3.vtk
@@ -0,0 +1,62 @@
+# vtk DataFile Version 2.0
+swissFlag3
+ASCII
+DATASET POLYDATA
+POINTS 26 float
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 3 2
+0 2 3
+0 3 5
+0 4 5
+0 3 6
+0 1 3
+0 1 4
+0 3 4
+0 1 2
+0 4 3
+0 5 3
+0 6 4
+0 5 5
+0 4 2
+0 3 3
+0 4 6
+0 1 1
+0 2 4
+0 5 4
+0 4 4
+
+LINES 6 18
+2 13 8
+2 15 16
+2 19 15
+2 23 13
+2 16 24
+2 6 19
+
+POLYGONS 20 80
+3 0 1 2
+3 3 4 5
+3 2 6 7
+3 8 9 10
+3 11 7 12
+3 14 2 11
+3 1 2 6
+3 17 18 3
+3 2 11 7
+3 6 7 20
+3 9 10 21
+3 22 0 14
+3 18 3 4
+3 24 17 18
+3 25 24 9
+3 0 14 2
+3 9 18 21
+3 18 21 4
+3 7 12 23
+3 24 9 18
+
diff --git a/Examples/Animations/swissFlag/swissFlag4.vtk b/Examples/Animations/swissFlag/swissFlag4.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/swissFlag/swissFlag4.vtk
@@ -0,0 +1,60 @@
+# vtk DataFile Version 2.0
+swissFlag4
+ASCII
+DATASET POLYDATA
+POINTS 25 float
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 3 2
+0 2 3
+0 1 3
+0 1 4
+0 3 4
+0 3 5
+0 1 2
+0 4 3
+0 5 3
+0 6 4
+0 5 5
+0 4 5
+0 4 2
+0 3 3
+0 1 1
+0 2 4
+0 5 4
+0 4 4
+0 4 6
+
+LINES 7 21
+2 10 11
+2 13 14
+2 11 17
+2 18 13
+2 21 10
+2 14 22
+2 6 18
+
+POLYGONS 18 72
+3 0 1 2
+3 3 4 5
+3 2 6 7
+3 8 7 9
+3 12 2 8
+3 1 2 6
+3 15 16 3
+3 2 8 7
+3 6 7 19
+3 20 0 12
+3 16 3 4
+3 22 15 16
+3 23 22 17
+3 0 12 2
+3 17 16 24
+3 16 24 4
+3 7 9 21
+3 22 17 16
+
diff --git a/Examples/Animations/swissFlag/swissFlag5.vtk b/Examples/Animations/swissFlag/swissFlag5.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/swissFlag/swissFlag5.vtk
@@ -0,0 +1,57 @@
+# vtk DataFile Version 2.0
+swissFlag5
+ASCII
+DATASET POLYDATA
+POINTS 24 float
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 1 3
+0 2 3
+0 1 4
+0 3 4
+0 3 5
+0 1 2
+0 3 2
+0 4 3
+0 5 3
+0 6 4
+0 5 5
+0 4 5
+0 4 2
+0 1 1
+0 2 4
+0 5 4
+0 4 4
+0 4 6
+
+LINES 7 21
+2 9 10
+2 13 14
+2 10 17
+2 18 13
+2 20 9
+2 14 21
+2 12 18
+
+POLYGONS 16 64
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 11 2 6
+3 1 2 12
+3 15 16 3
+3 2 6 7
+3 19 0 11
+3 16 3 4
+3 21 15 16
+3 22 21 17
+3 0 11 2
+3 17 16 23
+3 16 23 4
+3 7 8 20
+3 21 17 16
+
diff --git a/Examples/Animations/swissFlag/swissFlag6.vtk b/Examples/Animations/swissFlag/swissFlag6.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/swissFlag/swissFlag6.vtk
@@ -0,0 +1,54 @@
+# vtk DataFile Version 2.0
+swissFlag6
+ASCII
+DATASET POLYDATA
+POINTS 23 float
+0 2 1
+0 3 1
+0 2 2
+0 6 5
+0 5 6
+0 6 6
+0 1 3
+0 2 3
+0 1 4
+0 3 4
+0 3 5
+0 1 2
+0 3 2
+0 4 3
+0 5 3
+0 4 5
+0 4 2
+0 1 1
+0 5 5
+0 2 4
+0 5 4
+0 4 4
+0 4 6
+
+LINES 7 21
+2 9 10
+2 13 14
+2 10 15
+2 16 13
+2 19 9
+2 14 20
+2 12 16
+
+POLYGONS 14 56
+3 0 1 2
+3 3 4 5
+3 6 7 8
+3 11 2 6
+3 1 2 12
+3 2 6 7
+3 17 0 11
+3 18 3 4
+3 21 20 15
+3 0 11 2
+3 15 18 22
+3 18 22 4
+3 7 8 19
+3 20 15 18
+
diff --git a/Examples/Animations/swissFlag/swissFlag7.vtk b/Examples/Animations/swissFlag/swissFlag7.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/swissFlag/swissFlag7.vtk
@@ -0,0 +1,50 @@
+# vtk DataFile Version 2.0
+swissFlag7
+ASCII
+DATASET POLYDATA
+POINTS 21 float
+0 2 1
+0 3 1
+0 2 2
+0 3 4
+0 3 5
+0 1 2
+0 1 3
+0 3 2
+0 4 3
+0 5 3
+0 2 3
+0 5 6
+0 6 6
+0 4 5
+0 4 2
+0 1 1
+0 2 4
+0 5 4
+0 4 4
+0 5 5
+0 4 6
+
+LINES 9 27
+2 3 4
+2 8 9
+2 11 12
+2 4 13
+2 14 8
+2 16 3
+2 10 16
+2 9 17
+2 7 14
+
+POLYGONS 10 40
+3 0 1 2
+3 5 2 6
+3 1 2 7
+3 2 6 10
+3 15 0 5
+3 18 17 13
+3 0 5 2
+3 13 19 20
+3 19 20 11
+3 17 13 19
+
diff --git a/Examples/Animations/swissFlag/swissFlag8.vtk b/Examples/Animations/swissFlag/swissFlag8.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/swissFlag/swissFlag8.vtk
@@ -0,0 +1,48 @@
+# vtk DataFile Version 2.0
+swissFlag8
+ASCII
+DATASET POLYDATA
+POINTS 20 float
+0 2 1
+0 3 1
+0 2 2
+0 2 3
+0 3 4
+0 3 5
+0 3 2
+0 4 3
+0 5 3
+0 5 6
+0 6 6
+0 4 5
+0 4 2
+0 1 1
+0 1 2
+0 2 4
+0 5 4
+0 4 4
+0 5 5
+0 4 6
+
+LINES 10 30
+2 2 3
+2 4 5
+2 7 8
+2 9 10
+2 5 11
+2 12 7
+2 15 4
+2 3 15
+2 8 16
+2 6 12
+
+POLYGONS 8 32
+3 0 1 2
+3 1 2 6
+3 13 0 14
+3 17 16 11
+3 0 14 2
+3 11 18 19
+3 18 19 9
+3 16 11 18
+
diff --git a/Examples/Animations/swissFlag/swissFlag9.vtk b/Examples/Animations/swissFlag/swissFlag9.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/swissFlag/swissFlag9.vtk
@@ -0,0 +1,45 @@
+# vtk DataFile Version 2.0
+swissFlag9
+ASCII
+DATASET POLYDATA
+POINTS 18 float
+0 2 2
+0 2 3
+0 3 4
+0 3 5
+0 1 1
+0 2 1
+0 4 3
+0 5 3
+0 5 6
+0 6 6
+0 4 5
+0 4 2
+0 3 2
+0 2 4
+0 5 4
+0 4 4
+0 5 5
+0 4 6
+
+LINES 13 39
+2 0 1
+2 2 3
+2 4 5
+2 6 7
+2 5 0
+2 8 9
+2 3 10
+2 11 6
+2 0 12
+2 13 2
+2 1 13
+2 7 14
+2 12 11
+
+POLYGONS 4 16
+3 15 14 10
+3 10 16 17
+3 16 17 8
+3 14 10 16
+
diff --git a/Examples/Animations/torus3d/torus3d1.vtk b/Examples/Animations/torus3d/torus3d1.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d1.vtk
@@ -0,0 +1,120 @@
+# vtk DataFile Version 2.0
+torus3d1
+ASCII
+DATASET POLYDATA
+POINTS 32 float
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 3 1
+3 3 2
+2 3 1
+1 4 1
+3 4 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+1 3 1
+1 1 2
+1 2 2
+1 1 1
+1 2 1
+1 3 2
+4 1 1
+4 2 1
+3 4 2
+
+POLYGONS 80 320
+3 0 1 2
+3 3 4 5
+3 6 3 5
+3 7 3 8
+3 9 10 6
+3 7 11 8
+3 1 9 12
+3 6 11 5
+3 9 12 3
+3 9 7 3
+3 10 6 4
+3 6 4 5
+3 13 14 15
+3 9 6 3
+3 16 2 17
+3 0 16 1
+3 17 18 19
+3 20 21 14
+3 20 11 13
+3 17 12 19
+3 1 22 12
+3 23 9 10
+3 24 2 25
+3 1 23 9
+3 1 25 12
+3 7 6 11
+3 9 7 6
+3 22 17 19
+3 26 0 27
+3 12 28 3
+3 10 28 4
+3 26 27 24
+3 9 28 3
+3 29 30 18
+3 14 31 15
+3 7 19 8
+3 28 3 4
+3 23 10 28
+3 0 24 2
+3 7 20 8
+3 19 21 8
+3 2 17 12
+3 26 0 24
+3 13 31 15
+3 27 1 23
+3 18 19 21
+3 8 14 31
+3 30 18 21
+3 27 1 25
+3 16 29 17
+3 22 12 19
+3 25 12 28
+3 23 9 28
+3 29 22 30
+3 7 20 11
+3 22 7 19
+3 22 30 7
+3 1 2 12
+3 0 27 1
+3 21 8 14
+3 16 22 17
+3 0 16 2
+3 11 13 31
+3 23 25 28
+3 20 13 14
+3 27 23 25
+3 29 17 18
+3 8 5 31
+3 3 8 5
+3 22 30 19
+3 2 25 12
+3 30 7 20
+3 30 19 21
+3 16 1 22
+3 27 24 25
+3 11 8 31
+3 11 5 31
+3 20 8 14
+3 16 29 22
+3 30 20 21
+
diff --git a/Examples/Animations/torus3d/torus3d10.vtk b/Examples/Animations/torus3d/torus3d10.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d10.vtk
@@ -0,0 +1,69 @@
+# vtk DataFile Version 2.0
+torus3d10
+ASCII
+DATASET POLYDATA
+POINTS 23 float
+3 3 1
+2 3 2
+3 3 2
+3 4 1
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+4 3 2
+3 2 1
+1 1 1
+1 2 1
+4 1 1
+4 2 1
+3 4 2
+4 4 2
+2 4 2
+
+POLYGONS 38 152
+3 0 1 2
+3 0 3 2
+3 4 5 6
+3 5 6 1
+3 5 0 1
+3 7 8 4
+3 9 10 11
+3 12 13 14
+3 4 15 6
+3 15 9 11
+3 16 7 17
+3 18 19 10
+3 14 20 21
+3 0 11 2
+3 0 12 2
+3 11 13 2
+3 10 11 13
+3 2 14 20
+3 19 10 13
+3 8 18 9
+3 15 6 11
+3 18 15 19
+3 15 0 11
+3 15 19 0
+3 7 17 4
+3 13 2 14
+3 8 15 9
+3 18 9 10
+3 2 22 20
+3 1 2 22
+3 15 19 11
+3 19 0 12
+3 19 11 13
+3 8 4 15
+3 3 2 20
+3 12 2 14
+3 8 18 15
+3 19 12 13
+
diff --git a/Examples/Animations/torus3d/torus3d11.vtk b/Examples/Animations/torus3d/torus3d11.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d11.vtk
@@ -0,0 +1,66 @@
+# vtk DataFile Version 2.0
+torus3d11
+ASCII
+DATASET POLYDATA
+POINTS 22 float
+3 3 1
+2 3 2
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+4 3 2
+3 2 1
+1 1 1
+1 2 1
+4 1 1
+4 2 1
+3 4 2
+4 4 2
+2 4 2
+
+POLYGONS 36 144
+3 0 1 2
+3 3 4 5
+3 4 5 1
+3 4 0 1
+3 6 7 3
+3 8 9 10
+3 11 12 13
+3 3 14 5
+3 14 8 10
+3 15 6 16
+3 17 18 9
+3 13 19 20
+3 0 10 2
+3 0 11 2
+3 10 12 2
+3 9 10 12
+3 2 13 19
+3 18 9 12
+3 7 17 8
+3 14 5 10
+3 17 14 18
+3 14 0 10
+3 14 18 0
+3 6 16 3
+3 12 2 13
+3 7 14 8
+3 17 8 9
+3 2 21 19
+3 1 2 21
+3 14 18 10
+3 18 0 11
+3 18 10 12
+3 7 3 14
+3 11 2 13
+3 7 17 14
+3 18 11 12
+
diff --git a/Examples/Animations/torus3d/torus3d12.vtk b/Examples/Animations/torus3d/torus3d12.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d12.vtk
@@ -0,0 +1,59 @@
+# vtk DataFile Version 2.0
+torus3d12
+ASCII
+DATASET POLYDATA
+POINTS 21 float
+3 3 1
+2 3 2
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+1 1 1
+1 2 1
+4 1 1
+4 2 1
+4 3 2
+3 4 2
+4 4 2
+4 2 2
+2 4 2
+
+POLYGONS 30 120
+3 0 1 2
+3 3 4 5
+3 4 5 1
+3 4 0 1
+3 6 7 3
+3 8 9 10
+3 3 11 5
+3 11 8 10
+3 12 6 13
+3 14 15 9
+3 16 17 18
+3 0 10 2
+3 10 19 2
+3 9 10 19
+3 2 16 17
+3 15 9 19
+3 7 14 8
+3 11 5 10
+3 14 11 15
+3 11 0 10
+3 6 13 3
+3 19 2 16
+3 7 11 8
+3 14 8 9
+3 2 20 17
+3 1 2 20
+3 11 15 10
+3 15 10 19
+3 7 3 11
+3 7 14 11
+
diff --git a/Examples/Animations/torus3d/torus3d13.vtk b/Examples/Animations/torus3d/torus3d13.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d13.vtk
@@ -0,0 +1,52 @@
+# vtk DataFile Version 2.0
+torus3d13
+ASCII
+DATASET POLYDATA
+POINTS 20 float
+3 3 1
+2 3 2
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+1 1 1
+1 2 1
+4 3 2
+3 4 2
+4 4 2
+4 2 2
+4 1 1
+2 4 2
+
+POLYGONS 24 96
+3 0 1 2
+3 3 4 5
+3 4 5 1
+3 4 0 1
+3 6 7 3
+3 8 9 10
+3 3 11 5
+3 11 8 10
+3 12 6 13
+3 14 15 16
+3 0 10 2
+3 10 17 2
+3 9 10 17
+3 2 14 15
+3 7 18 8
+3 11 5 10
+3 11 0 10
+3 6 13 3
+3 17 2 14
+3 7 11 8
+3 18 8 9
+3 2 19 15
+3 1 2 19
+3 7 3 11
+
diff --git a/Examples/Animations/torus3d/torus3d14.vtk b/Examples/Animations/torus3d/torus3d14.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d14.vtk
@@ -0,0 +1,49 @@
+# vtk DataFile Version 2.0
+torus3d14
+ASCII
+DATASET POLYDATA
+POINTS 19 float
+3 3 1
+2 3 2
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+1 1 1
+1 2 1
+4 3 2
+3 4 2
+4 4 2
+4 2 2
+2 4 2
+
+POLYGONS 22 88
+3 0 1 2
+3 3 4 5
+3 4 5 1
+3 4 0 1
+3 6 7 3
+3 8 9 10
+3 3 11 5
+3 11 8 10
+3 12 6 13
+3 14 15 16
+3 0 10 2
+3 10 17 2
+3 9 10 17
+3 2 14 15
+3 11 5 10
+3 11 0 10
+3 6 13 3
+3 17 2 14
+3 7 11 8
+3 2 18 15
+3 1 2 18
+3 7 3 11
+
diff --git a/Examples/Animations/torus3d/torus3d15.vtk b/Examples/Animations/torus3d/torus3d15.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d15.vtk
@@ -0,0 +1,46 @@
+# vtk DataFile Version 2.0
+torus3d15
+ASCII
+DATASET POLYDATA
+POINTS 18 float
+3 3 1
+2 3 2
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+1 1 1
+1 2 1
+4 3 2
+3 4 2
+4 4 2
+4 2 2
+
+POLYGONS 20 80
+3 0 1 2
+3 3 4 5
+3 4 5 1
+3 4 0 1
+3 6 7 3
+3 8 9 10
+3 3 11 5
+3 11 8 10
+3 12 6 13
+3 14 15 16
+3 0 10 2
+3 10 17 2
+3 9 10 17
+3 2 14 15
+3 11 5 10
+3 11 0 10
+3 6 13 3
+3 17 2 14
+3 7 11 8
+3 7 3 11
+
diff --git a/Examples/Animations/torus3d/torus3d16.vtk b/Examples/Animations/torus3d/torus3d16.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d16.vtk
@@ -0,0 +1,46 @@
+# vtk DataFile Version 2.0
+torus3d16
+ASCII
+DATASET POLYDATA
+POINTS 17 float
+3 3 1
+2 3 2
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+1 1 1
+1 2 1
+4 2 2
+4 3 2
+4 4 2
+
+LINES 1 3
+2 15 16
+
+POLYGONS 18 72
+3 0 1 2
+3 3 4 5
+3 4 5 1
+3 4 0 1
+3 6 7 3
+3 8 9 10
+3 3 11 5
+3 11 8 10
+3 12 6 13
+3 0 10 2
+3 10 14 2
+3 9 10 14
+3 11 5 10
+3 11 0 10
+3 6 13 3
+3 14 2 15
+3 7 11 8
+3 7 3 11
+
diff --git a/Examples/Animations/torus3d/torus3d17.vtk b/Examples/Animations/torus3d/torus3d17.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d17.vtk
@@ -0,0 +1,44 @@
+# vtk DataFile Version 2.0
+torus3d17
+ASCII
+DATASET POLYDATA
+POINTS 16 float
+3 3 1
+2 3 2
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+3 2 1
+4 2 2
+1 1 1
+4 3 2
+4 4 2
+
+LINES 2 6
+2 13 6
+2 14 15
+
+POLYGONS 16 64
+3 0 1 2
+3 3 4 5
+3 4 5 1
+3 4 0 1
+3 6 7 3
+3 8 9 10
+3 3 11 5
+3 11 8 10
+3 0 10 2
+3 10 12 2
+3 9 10 12
+3 11 5 10
+3 11 0 10
+3 12 2 14
+3 7 11 8
+3 7 3 11
+
diff --git a/Examples/Animations/torus3d/torus3d18.vtk b/Examples/Animations/torus3d/torus3d18.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d18.vtk
@@ -0,0 +1,41 @@
+# vtk DataFile Version 2.0
+torus3d18
+ASCII
+DATASET POLYDATA
+POINTS 15 float
+3 3 1
+2 3 2
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 2 1
+3 1 2
+3 2 2
+4 2 2
+1 1 1
+4 3 2
+4 4 2
+
+LINES 2 6
+2 12 6
+2 13 14
+
+POLYGONS 14 56
+3 0 1 2
+3 3 4 5
+3 4 5 1
+3 4 0 1
+3 6 7 3
+3 3 8 5
+3 8 9 10
+3 0 10 2
+3 10 11 2
+3 8 5 10
+3 8 0 10
+3 11 2 13
+3 7 8 9
+3 7 3 8
+
diff --git a/Examples/Animations/torus3d/torus3d19.vtk b/Examples/Animations/torus3d/torus3d19.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d19.vtk
@@ -0,0 +1,39 @@
+# vtk DataFile Version 2.0
+torus3d19
+ASCII
+DATASET POLYDATA
+POINTS 14 float
+3 3 1
+2 3 2
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 2 1
+3 1 2
+3 2 2
+1 1 1
+4 3 2
+4 4 2
+
+LINES 3 9
+2 11 6
+2 12 13
+2 2 12
+
+POLYGONS 12 48
+3 0 1 2
+3 3 4 5
+3 4 5 1
+3 4 0 1
+3 6 7 3
+3 3 8 5
+3 8 9 10
+3 0 10 2
+3 8 5 10
+3 8 0 10
+3 7 8 9
+3 7 3 8
+
diff --git a/Examples/Animations/torus3d/torus3d2.vtk b/Examples/Animations/torus3d/torus3d2.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d2.vtk
@@ -0,0 +1,113 @@
+# vtk DataFile Version 2.0
+torus3d2
+ASCII
+DATASET POLYDATA
+POINTS 31 float
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 3 1
+3 3 2
+2 3 1
+1 4 1
+3 4 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+1 3 1
+1 2 2
+1 1 1
+1 2 1
+1 3 2
+4 1 1
+4 2 1
+3 4 2
+
+POLYGONS 74 296
+3 0 1 2
+3 3 4 5
+3 6 3 5
+3 7 3 8
+3 9 10 6
+3 7 11 8
+3 1 9 12
+3 6 11 5
+3 9 12 3
+3 9 7 3
+3 10 6 4
+3 6 4 5
+3 13 14 15
+3 9 6 3
+3 16 2 17
+3 0 16 1
+3 17 18 19
+3 20 21 14
+3 20 11 13
+3 17 12 19
+3 1 22 12
+3 23 9 10
+3 1 23 9
+3 1 24 12
+3 7 6 11
+3 9 7 6
+3 22 17 19
+3 25 0 26
+3 12 27 3
+3 10 27 4
+3 9 27 3
+3 28 29 18
+3 14 30 15
+3 7 19 8
+3 27 3 4
+3 23 10 27
+3 7 20 8
+3 19 21 8
+3 2 17 12
+3 13 30 15
+3 26 1 23
+3 18 19 21
+3 8 14 30
+3 29 18 21
+3 26 1 24
+3 16 28 17
+3 22 12 19
+3 24 12 27
+3 23 9 27
+3 28 22 29
+3 7 20 11
+3 22 7 19
+3 22 29 7
+3 1 2 12
+3 0 26 1
+3 21 8 14
+3 16 22 17
+3 0 16 2
+3 11 13 30
+3 23 24 27
+3 20 13 14
+3 26 23 24
+3 28 17 18
+3 8 5 30
+3 3 8 5
+3 22 29 19
+3 29 7 20
+3 29 19 21
+3 16 1 22
+3 11 8 30
+3 11 5 30
+3 20 8 14
+3 16 28 22
+3 29 20 21
+
diff --git a/Examples/Animations/torus3d/torus3d20.vtk b/Examples/Animations/torus3d/torus3d20.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d20.vtk
@@ -0,0 +1,36 @@
+# vtk DataFile Version 2.0
+torus3d20
+ASCII
+DATASET POLYDATA
+POINTS 13 float
+3 3 1
+2 3 2
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+2 1 1
+3 1 1
+3 2 1
+3 2 2
+1 1 1
+4 3 2
+4 4 2
+
+LINES 3 9
+2 10 6
+2 11 12
+2 2 11
+
+POLYGONS 10 40
+3 0 1 2
+3 3 4 5
+3 4 5 1
+3 4 0 1
+3 6 7 3
+3 3 8 5
+3 0 9 2
+3 8 5 9
+3 8 0 9
+3 7 3 8
+
diff --git a/Examples/Animations/torus3d/torus3d21.vtk b/Examples/Animations/torus3d/torus3d21.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d21.vtk
@@ -0,0 +1,34 @@
+# vtk DataFile Version 2.0
+torus3d21
+ASCII
+DATASET POLYDATA
+POINTS 12 float
+3 3 1
+2 3 2
+3 3 2
+2 2 1
+2 3 1
+2 2 2
+3 2 1
+3 2 2
+1 1 1
+2 1 1
+4 3 2
+4 4 2
+
+LINES 4 12
+2 8 9
+2 10 11
+2 9 3
+2 2 10
+
+POLYGONS 8 32
+3 0 1 2
+3 3 4 5
+3 4 5 1
+3 4 0 1
+3 3 6 5
+3 0 7 2
+3 6 5 7
+3 6 0 7
+
diff --git a/Examples/Animations/torus3d/torus3d3.vtk b/Examples/Animations/torus3d/torus3d3.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d3.vtk
@@ -0,0 +1,106 @@
+# vtk DataFile Version 2.0
+torus3d3
+ASCII
+DATASET POLYDATA
+POINTS 30 float
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+2 4 1
+3 3 1
+3 3 2
+3 4 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+1 3 1
+1 2 2
+1 1 1
+1 2 1
+1 3 2
+4 1 1
+4 2 1
+3 4 2
+
+POLYGONS 68 272
+3 0 1 2
+3 3 4 5
+3 6 3 5
+3 7 3 8
+3 7 9 8
+3 1 10 11
+3 6 9 5
+3 10 11 3
+3 10 7 3
+3 12 13 14
+3 10 6 3
+3 15 2 16
+3 0 15 1
+3 16 17 18
+3 19 20 13
+3 19 9 12
+3 16 11 18
+3 1 21 11
+3 1 22 10
+3 1 23 11
+3 7 6 9
+3 10 7 6
+3 21 16 18
+3 24 0 25
+3 11 26 3
+3 10 26 3
+3 27 28 17
+3 13 29 14
+3 7 18 8
+3 26 3 4
+3 7 19 8
+3 18 20 8
+3 2 16 11
+3 12 29 14
+3 25 1 22
+3 17 18 20
+3 8 13 29
+3 28 17 20
+3 25 1 23
+3 15 27 16
+3 21 11 18
+3 23 11 26
+3 22 10 26
+3 27 21 28
+3 7 19 9
+3 21 7 18
+3 21 28 7
+3 1 2 11
+3 0 25 1
+3 20 8 13
+3 15 21 16
+3 0 15 2
+3 9 12 29
+3 22 23 26
+3 19 12 13
+3 25 22 23
+3 27 16 17
+3 8 5 29
+3 3 8 5
+3 21 28 18
+3 28 7 19
+3 28 18 20
+3 15 1 21
+3 9 8 29
+3 9 5 29
+3 19 8 13
+3 15 27 21
+3 28 19 20
+
diff --git a/Examples/Animations/torus3d/torus3d4.vtk b/Examples/Animations/torus3d/torus3d4.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d4.vtk
@@ -0,0 +1,99 @@
+# vtk DataFile Version 2.0
+torus3d4
+ASCII
+DATASET POLYDATA
+POINTS 29 float
+2 1 1
+2 2 1
+2 1 2
+2 3 2
+1 4 2
+2 4 2
+3 3 1
+3 3 2
+3 4 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+1 3 1
+1 2 2
+1 1 1
+1 2 1
+1 3 2
+4 1 1
+4 2 1
+3 4 2
+
+POLYGONS 62 248
+3 0 1 2
+3 3 4 5
+3 6 3 7
+3 6 8 7
+3 1 9 10
+3 9 10 3
+3 9 6 3
+3 11 12 13
+3 14 2 15
+3 0 14 1
+3 15 16 17
+3 18 19 12
+3 18 8 11
+3 15 10 17
+3 1 20 10
+3 1 21 9
+3 1 22 10
+3 20 15 17
+3 23 0 24
+3 10 25 3
+3 9 25 3
+3 26 27 16
+3 12 28 13
+3 6 17 7
+3 25 3 4
+3 6 18 7
+3 17 19 7
+3 2 15 10
+3 11 28 13
+3 24 1 21
+3 16 17 19
+3 7 12 28
+3 27 16 19
+3 24 1 22
+3 14 26 15
+3 20 10 17
+3 22 10 25
+3 21 9 25
+3 26 20 27
+3 6 18 8
+3 20 6 17
+3 20 27 6
+3 1 2 10
+3 0 24 1
+3 19 7 12
+3 14 20 15
+3 0 14 2
+3 8 11 28
+3 21 22 25
+3 18 11 12
+3 24 21 22
+3 26 15 16
+3 7 5 28
+3 3 7 5
+3 20 27 17
+3 27 6 18
+3 27 17 19
+3 14 1 20
+3 8 7 28
+3 18 7 12
+3 14 26 20
+3 27 18 19
+
diff --git a/Examples/Animations/torus3d/torus3d5.vtk b/Examples/Animations/torus3d/torus3d5.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d5.vtk
@@ -0,0 +1,96 @@
+# vtk DataFile Version 2.0
+torus3d5
+ASCII
+DATASET POLYDATA
+POINTS 28 float
+2 1 1
+2 2 1
+2 1 2
+3 3 1
+2 3 2
+3 3 2
+3 4 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+1 3 1
+1 2 2
+1 1 1
+1 2 1
+1 3 2
+4 1 1
+4 2 1
+3 4 2
+2 4 2
+
+POLYGONS 60 240
+3 0 1 2
+3 3 4 5
+3 3 6 5
+3 1 7 8
+3 7 8 4
+3 7 3 4
+3 9 10 11
+3 12 2 13
+3 0 12 1
+3 13 14 15
+3 16 17 10
+3 16 6 9
+3 13 8 15
+3 1 18 8
+3 1 19 7
+3 1 20 8
+3 18 13 15
+3 21 0 22
+3 8 23 4
+3 7 23 4
+3 24 25 14
+3 10 26 11
+3 3 15 5
+3 3 16 5
+3 15 17 5
+3 2 13 8
+3 9 26 11
+3 22 1 19
+3 14 15 17
+3 5 10 26
+3 25 14 17
+3 22 1 20
+3 12 24 13
+3 18 8 15
+3 20 8 23
+3 19 7 23
+3 24 18 25
+3 3 16 6
+3 18 3 15
+3 18 25 3
+3 1 2 8
+3 0 22 1
+3 17 5 10
+3 12 18 13
+3 0 12 2
+3 6 9 26
+3 19 20 23
+3 16 9 10
+3 22 19 20
+3 24 13 14
+3 5 27 26
+3 4 5 27
+3 18 25 15
+3 25 3 16
+3 25 15 17
+3 12 1 18
+3 6 5 26
+3 16 5 10
+3 12 24 18
+3 25 16 17
+
diff --git a/Examples/Animations/torus3d/torus3d6.vtk b/Examples/Animations/torus3d/torus3d6.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d6.vtk
@@ -0,0 +1,89 @@
+# vtk DataFile Version 2.0
+torus3d6
+ASCII
+DATASET POLYDATA
+POINTS 27 float
+3 3 1
+2 3 2
+3 3 2
+3 4 1
+2 2 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+1 3 1
+1 2 2
+1 1 1
+1 2 1
+1 3 2
+4 1 1
+4 2 1
+3 4 2
+2 4 2
+
+POLYGONS 54 216
+3 0 1 2
+3 0 3 2
+3 4 5 6
+3 5 6 1
+3 5 0 1
+3 7 8 9
+3 10 11 4
+3 12 13 14
+3 15 16 8
+3 15 3 7
+3 4 17 6
+3 4 18 5
+3 4 19 6
+3 17 12 14
+3 20 10 21
+3 6 22 1
+3 5 22 1
+3 23 24 13
+3 8 25 9
+3 0 14 2
+3 0 15 2
+3 14 16 2
+3 7 25 9
+3 21 4 18
+3 13 14 16
+3 2 8 25
+3 24 13 16
+3 21 4 19
+3 11 23 12
+3 17 6 14
+3 19 6 22
+3 18 5 22
+3 23 17 24
+3 0 15 3
+3 17 0 14
+3 17 24 0
+3 10 21 4
+3 16 2 8
+3 11 17 12
+3 3 7 25
+3 18 19 22
+3 15 7 8
+3 21 18 19
+3 23 12 13
+3 2 26 25
+3 1 2 26
+3 17 24 14
+3 24 0 15
+3 24 14 16
+3 11 4 17
+3 3 2 25
+3 15 2 8
+3 11 23 17
+3 24 15 16
+
diff --git a/Examples/Animations/torus3d/torus3d7.vtk b/Examples/Animations/torus3d/torus3d7.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d7.vtk
@@ -0,0 +1,82 @@
+# vtk DataFile Version 2.0
+torus3d7
+ASCII
+DATASET POLYDATA
+POINTS 26 float
+3 3 1
+2 3 2
+3 3 2
+3 4 1
+2 2 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+1 3 1
+1 1 1
+1 2 1
+1 3 2
+4 1 1
+4 2 1
+3 4 2
+2 4 2
+
+POLYGONS 48 192
+3 0 1 2
+3 0 3 2
+3 4 5 6
+3 5 6 1
+3 5 0 1
+3 7 8 9
+3 10 11 4
+3 12 13 14
+3 15 16 8
+3 15 3 7
+3 4 17 6
+3 4 18 5
+3 17 12 14
+3 19 10 20
+3 5 21 1
+3 22 23 13
+3 8 24 9
+3 0 14 2
+3 0 15 2
+3 14 16 2
+3 7 24 9
+3 20 4 18
+3 13 14 16
+3 2 8 24
+3 23 13 16
+3 11 22 12
+3 17 6 14
+3 18 5 21
+3 22 17 23
+3 0 15 3
+3 17 0 14
+3 17 23 0
+3 10 20 4
+3 16 2 8
+3 11 17 12
+3 3 7 24
+3 15 7 8
+3 22 12 13
+3 2 25 24
+3 1 2 25
+3 17 23 14
+3 23 0 15
+3 23 14 16
+3 11 4 17
+3 3 2 24
+3 15 2 8
+3 11 22 17
+3 23 15 16
+
diff --git a/Examples/Animations/torus3d/torus3d8.vtk b/Examples/Animations/torus3d/torus3d8.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d8.vtk
@@ -0,0 +1,79 @@
+# vtk DataFile Version 2.0
+torus3d8
+ASCII
+DATASET POLYDATA
+POINTS 25 float
+3 3 1
+2 3 2
+3 3 2
+3 4 1
+2 2 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+1 3 1
+1 1 1
+1 2 1
+4 1 1
+4 2 1
+3 4 2
+2 4 2
+
+POLYGONS 46 184
+3 0 1 2
+3 0 3 2
+3 4 5 6
+3 5 6 1
+3 5 0 1
+3 7 8 9
+3 10 11 4
+3 12 13 14
+3 15 16 8
+3 15 3 7
+3 4 17 6
+3 4 18 5
+3 17 12 14
+3 19 10 20
+3 21 22 13
+3 8 23 9
+3 0 14 2
+3 0 15 2
+3 14 16 2
+3 7 23 9
+3 20 4 18
+3 13 14 16
+3 2 8 23
+3 22 13 16
+3 11 21 12
+3 17 6 14
+3 21 17 22
+3 0 15 3
+3 17 0 14
+3 17 22 0
+3 10 20 4
+3 16 2 8
+3 11 17 12
+3 3 7 23
+3 15 7 8
+3 21 12 13
+3 2 24 23
+3 1 2 24
+3 17 22 14
+3 22 0 15
+3 22 14 16
+3 11 4 17
+3 3 2 23
+3 15 2 8
+3 11 21 17
+3 22 15 16
+
diff --git a/Examples/Animations/torus3d/torus3d9.vtk b/Examples/Animations/torus3d/torus3d9.vtk
new file mode 100644
--- /dev/null
+++ b/Examples/Animations/torus3d/torus3d9.vtk
@@ -0,0 +1,76 @@
+# vtk DataFile Version 2.0
+torus3d9
+ASCII
+DATASET POLYDATA
+POINTS 24 float
+3 3 1
+2 3 2
+3 3 2
+3 4 1
+2 2 1
+2 3 1
+2 2 2
+4 4 1
+4 3 2
+4 4 2
+2 1 1
+3 1 1
+3 1 2
+4 1 2
+3 2 2
+4 3 1
+4 2 2
+3 2 1
+1 1 1
+1 2 1
+4 1 1
+4 2 1
+3 4 2
+2 4 2
+
+POLYGONS 44 176
+3 0 1 2
+3 0 3 2
+3 4 5 6
+3 5 6 1
+3 5 0 1
+3 7 8 9
+3 10 11 4
+3 12 13 14
+3 15 16 8
+3 15 3 7
+3 4 17 6
+3 17 12 14
+3 18 10 19
+3 20 21 13
+3 8 22 9
+3 0 14 2
+3 0 15 2
+3 14 16 2
+3 7 22 9
+3 13 14 16
+3 2 8 22
+3 21 13 16
+3 11 20 12
+3 17 6 14
+3 20 17 21
+3 0 15 3
+3 17 0 14
+3 17 21 0
+3 10 19 4
+3 16 2 8
+3 11 17 12
+3 3 7 22
+3 15 7 8
+3 20 12 13
+3 2 23 22
+3 1 2 23
+3 17 21 14
+3 21 0 15
+3 21 14 16
+3 11 4 17
+3 3 2 22
+3 15 2 8
+3 11 20 17
+3 21 15 16
+
diff --git a/Examples/swissFlag.hs b/Examples/swissFlag.hs
deleted file mode 100644
--- a/Examples/swissFlag.hs
+++ /dev/null
@@ -1,6 +0,0 @@
-import Math.Topology.CubeCmplx.DirCubeCmplx
-import Math.Topology.CubeCmplx.CornerReduce
-import Control.DeepSeq
-
-main = print $ swissFlag `deepseq` uncurry cmplxReduce $ swissFlag
-
diff --git a/Examples/swissflag.hs b/Examples/swissflag.hs
new file mode 100644
--- /dev/null
+++ b/Examples/swissflag.hs
@@ -0,0 +1,6 @@
+import Math.Topology.CubeCmplx.DirCubeCmplx
+import Math.Topology.CubeCmplx.CornerReduce
+import Control.DeepSeq
+
+main = print $ swissFlag `deepseq` uncurry cmplxReduce $ swissFlag
+
diff --git a/Math/Topology/CubeCmplx/DirCubeCmplx.hs b/Math/Topology/CubeCmplx/DirCubeCmplx.hs
--- a/Math/Topology/CubeCmplx/DirCubeCmplx.hs
+++ b/Math/Topology/CubeCmplx/DirCubeCmplx.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
 {-# LANGUAGE BangPatterns #-}
 
 -- | Module    :  Math.Topology.CubeCmplx.DirCubeCmplx
@@ -25,7 +24,7 @@
    -- * Cells
    CubeCell, minVert, maxVert, cell, cellUnsafe, cellDim, cellVertsUnsafe, 
    cellVerts, spanTopCells, vertToCell, inSpan, isTopCell, vInSpan, inBdry, 
-   spanBdryCells,
+   spanBdryCells, 
 
    -- * Substructures
    nCubes, nCubeVerts, nCubeCells, nCubeProperCells, nCubeBdry, nCubeKSkels,
@@ -36,10 +35,10 @@
    genToNonGen, nonGenToGen,
 
    -- * Directed Cubical Complexes
-   CubeCmplx, cells, cmplxEmpty, cmplxNull, cmplxSize, cmplxApply, cmplxVertOp,
-   vsCmplx, cmplxDelCell, cmplxDelCells, cmplxDelVsInt, cmplxAddCells, 
-   cmplxUnions, cmplxFilter, cmplxHullUnsafe, cmplxFilterSpan, cmplxFilterSpans, 
-   cellNhd,
+   CubeCmplx, cells, cmplxEmpty, cmplxNull, cmplxSize, cmplxApply, cmplxKSkel,
+   cmplx2Triang, cmplxVertOp, vsCmplx, cmplxDelCell, cmplxDelCells, 
+   cmplxDelVsInt, cmplxAddCells, cmplxUnions, cmplxFilter, cmplxHullUnsafe, 
+   cmplxFilterSpan, cmplxFilterSpans, cellNhd,
 
    -- * Example complexes
    swissFlag, sqPairFwd, sqPairBack, torus3d, genusTwo3d,
@@ -378,6 +377,16 @@
 spanBdryCells :: VertSpan -> [[CubeCell]]
 spanBdryCells = map spanTopCells . vsBdry
 
+-- | Given a cubical cell of dimension 2 or less, provide a list of lists of
+--   vertices giving its triangulation.
+cell2Triang :: CubeCell -> [[Vertex]]
+cell2Triang c = case cellDim c of
+                   0 -> [vs]
+                   1 -> [vs]
+                   2 -> [take 3 vs, drop 1 vs]
+                   _ -> [] 
+   where vs = verts c
+
 -- | List of all possible generic n-cubes, presented as cells (memoized).
 nCubes :: [CubeCell]
 nCubes = map gen [0..]
@@ -533,6 +542,17 @@
 --   apply it to a cubical complex to yield a new complex.
 cmplxApply :: CubeCmplx -> (CubeCell -> S.HashSet CubeCell) -> CubeCmplx
 cmplxApply cx f = CubeCmplx . S.unions . map f . S.toList $ cells cx
+
+-- | Given a cubical complex and an integer k, determine the k-skeleton of
+--   the complex.
+cmplxKSkel :: CubeCmplx -> Int -> CubeCmplx
+cmplxKSkel cx k = cmplxApply cx (S.fromList . kSkel k) 
+
+-- | Given a cubical complex, provide a set of lists of vertices giving the
+--   triangulation of its 2-skeleton.
+cmplx2Triang :: CubeCmplx -> S.HashSet [Vertex]
+cmplx2Triang cx = S.fromList . concatMap cell2Triang . S.toList . cells $ 
+                  cmplxKSkel cx 2 
 
 -- | Given a complex and a vertex of the same ambient dimension, translate 
 --   every cell of the complex by the vertex via the given operation. 
diff --git a/Math/Topology/CubeCmplx/Vtk.hs b/Math/Topology/CubeCmplx/Vtk.hs
new file mode 100644
--- /dev/null
+++ b/Math/Topology/CubeCmplx/Vtk.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | Module    :  Math.Topology.CubeCmplx.Vtk
+-- Copyright   :  2014 Michael Misamore 
+-- License     :  BSD-style
+-- Maintainer  :  m.misamore@gmail.com 
+-- Stability   :  experimental 
+-- Portability :  portable
+--
+-- Output finite directed cubical complexes in VTK polydata format.
+
+module Math.Topology.CubeCmplx.Vtk (
+   -- * ByteString output
+   Title, vtkPolyAscBS, vtkPolyAscBSs,
+   
+   -- * File output 
+   FileName, vtkPolyAscFile, vtkPolyAscFiles
+) where
+
+import Prelude hiding (lines)
+import Data.Ord (comparing)
+import Data.List (nub, sortBy)
+import Data.Hashable (Hashable, hashWithSalt, hash)
+import Data.HashMap.Strict as M (HashMap, fromList, lookupDefault, toList)
+import qualified Data.HashSet as S (HashSet, toList)
+import qualified Data.ByteString.Char8 as BS 
+   (ByteString, pack, snoc, init, append, concat, writeFile, empty)
+import Math.Topology.CubeCmplx.DirCubeCmplx
+import Math.Topology.CubeCmplx.CornerReduce
+
+-- | Data type for VTK points.
+newtype VtkPoint = VtkPoint { getPt :: [Int] } deriving (Eq, Show)
+instance Hashable VtkPoint where hashWithSalt s p = s + hash (getPt p)
+
+-- | Convert a vertex to a VTK point.
+vtkPtVert :: Vertex -> VtkPoint
+vtkPtVert = VtkPoint . map fromEnum . vertexToList 
+
+-- | Data type for VTK polygons (vertices, lines, simplices, etc.)
+newtype VtkPoly = VtkPoly { getPoly :: [Int] } deriving (Eq, Show)
+
+-- | Representation of the polydata format.
+data VtkPolyData = VtkPolyData { pointmap :: !(M.HashMap Int VtkPoint), 
+                                 polys    :: ![VtkPoly] } deriving (Show)
+
+-- | Given cubical complex, take its 2-skeleton and return the corresponding
+--   VTK polydata structure.
+vtkPolyData :: CubeCmplx -> VtkPolyData 
+vtkPolyData cx = VtkPolyData bij (intRep tri m)
+   where tri = cmplx2Triang cx 
+         m   = vertMap tri         
+         bij = M.fromList . map (\(x,y) -> (y,x)) $ M.toList m
+ 
+         intRep :: S.HashSet [Vertex] -> M.HashMap VtkPoint Int -> [VtkPoly]
+         intRep s m = map (VtkPoly . repList) $ S.toList s
+            where repList vs = map (\v -> M.lookupDefault 0 (vtkPtVert v) m) vs
+ 
+         vertMap :: S.HashSet [Vertex] -> M.HashMap VtkPoint Int
+         vertMap s = M.fromList keyed
+            where keyed = zip (map vtkPtVert . nub . concat $ S.toList s) [0..]
+
+-- | Render a VTK point in ascii file format.
+vtkPointAsc :: VtkPoint -> BS.ByteString
+vtkPointAsc pt = padZeroes `BS.append` (BS.snoc (BS.pack . render $ pt) '\n')
+   where render pt = init $ foldr (\i b -> (show i) ++ " " ++ b) "" (getPt pt)
+         padZeroes = BS.concat $ replicate (3 - (length $ getPt pt)) "0 "
+
+-- | Render a VTK polygon in ascii file format.
+vtkPolyAsc :: VtkPoly -> BS.ByteString 
+vtkPolyAsc p = BS.snoc (BS.pack . render $ p) '\n'
+   where render p = (len ++) . init $ 
+                    foldr (\i b -> (show i) ++ " " ++ b) "" (getPoly p)
+         len      = show (length $ getPoly p) ++ " "
+
+-- | Type for file titles.
+type Title = String 
+
+-- | Representation of VTK polydata ascii file.
+data VtkPolyDataAscii = VtkPolyDataAscii { title     :: !Title, 
+                                           points    :: ![VtkPoint],
+                                           vertices  :: ![VtkPoly], 
+                                           lines     :: ![VtkPoly],
+                                           polygons  :: ![VtkPoly]
+                                           -- other file contents 
+                                         } deriving (Show)
+
+-- | Given a VtkPolyData, marshall it to a VtkPolyDataAscii.
+vtkPolyDataAsc :: Title -> VtkPolyData -> VtkPolyDataAscii
+vtkPolyDataAsc t pd 
+   = VtkPolyDataAscii { title    = t, points   = pmConv . pointmap $ pd,
+                        vertices = v', lines   = l', polygons = p' }
+   where pmConv :: M.HashMap Int VtkPoint -> [VtkPoint]
+         pmConv m = map snd . sortBy (comparing fst) . M.toList $ m
+         (v',l',p') = foldr (\(len,e) (v,l,p) -> 
+                               case len of
+                                  1 -> (e:v,l,p)
+                                  2 -> (v,e:l,p)
+                                  3 -> (v,l,e:p)
+                                  _ -> (v,l,p)) ([],[],[]) lps 
+         lps = zip (map (length.getPoly) (polys pd)) (polys pd)
+
+-- | Marshall a VtkPolyDataAscii to a ByteString to write to a file.
+vtkPolyDataAscToBS :: VtkPolyDataAscii -> BS.ByteString
+vtkPolyDataAscToBS da = BS.concat ["# vtk DataFile Version 2.0\n", 
+                        BS.snoc (BS.pack $ title da) '\n',
+                        "ASCII\n", "DATASET POLYDATA\n", "POINTS ",
+                        (BS.pack . show . length $ points da), " float\n",
+                        BS.concat (map vtkPointAsc (points da)), "\n",
+                        vertsOut, linesOut, polysOut]
+   where [vs, ls, ps] = [vertices da, lines da, polygons da] 
+         [vertLen, lineLen, polyLen] = [length $ vs, length $ ls, length $ ps]
+         totalVLen = vertLen + sum (map (length.getPoly) vs)
+         totalLLen = lineLen + sum (map (length.getPoly) ls)
+         totalPLen = polyLen + sum (map (length.getPoly) ps)
+         vertsOut  = if vertLen > 0 then
+                        BS.concat ["VERTICES ", (BS.pack . show $ vertLen), 
+                        " ", (BS.pack . show $ totalVLen), "\n", 
+                        BS.concat (map vtkPolyAsc vs), "\n"]
+                     else BS.empty
+         linesOut  = if lineLen > 0 then
+                        BS.concat ["LINES ", (BS.pack . show $ lineLen),
+                        " ", (BS.pack . show $ totalLLen), "\n",
+                        BS.concat (map vtkPolyAsc ls), "\n"]
+                     else BS.empty
+         polysOut  = if polyLen > 0 then                      
+                        BS.concat ["POLYGONS ", (BS.pack . show $ polyLen),
+                        " ", (BS.pack . show $ totalPLen), "\n",
+                        BS.concat (map vtkPolyAsc ps), "\n"]
+                     else BS.empty
+
+-- | Given a cubical complex, take its 2-skeleton and render a VTK ascii file
+--   in polydata format that represents this complex.
+vtkPolyAscBS :: Title -> CubeCmplx -> BS.ByteString
+vtkPolyAscBS t cx = vtkPolyDataAscToBS $ vtkPolyDataAsc t (vtkPolyData cx)  
+
+-- | Type for file names.
+type FileName = String
+
+-- | Given a filename, title, and cubical complex, take the 2-skeleton, render
+--   to VTK polydata ascii format, and write to storage.
+vtkPolyAscFile :: FileName -> Title -> CubeCmplx -> IO ()
+vtkPolyAscFile f t cx = BS.writeFile f $ vtkPolyAscBS t cx
+
+-- | Given a base filename, base title, and list of cubical complexes, generate
+--   a list of named bytestrings of VTK ascii files associated to these
+--   complexes. Filenames and titles are appended with integers for 
+--   compatibility with tools like ParaView.
+vtkPolyAscBSs :: FileName -> Title -> [CubeCmplx] -> [(FileName, BS.ByteString)]
+vtkPolyAscBSs f t cxs = zip files $ map (uncurry vtkPolyAscBS) $ zip titles cxs 
+   where files  = map (++ ".vtk") $ zipWith (++) (repeat f) (map show [1..])
+         titles = zipWith (++) (repeat t) (map show [1..])
+
+-- | Same as vtkPolyAscBSs, but write the resulting files.
+vtkPolyAscFiles :: FileName -> Title -> [CubeCmplx] -> IO ()
+vtkPolyAscFiles f t cxs = mapM_ (uncurry BS.writeFile) $ vtkPolyAscBSs f t cxs
+
diff --git a/Tests.hs b/Tests.hs
--- a/Tests.hs
+++ b/Tests.hs
@@ -3,6 +3,7 @@
 import Math.Topology.CubeCmplx.DirCubeCmplx
 import Math.Topology.CubeCmplx.CornerReduce
 import Math.Topology.CubeCmplx.DPTrace
+import Math.Topology.CubeCmplx.Vtk
 import qualified Data.HashSet as S (size)
 import Data.Maybe (fromJust)
 import Test.QuickCheck
diff --git a/changelog b/changelog
new file mode 100644
--- /dev/null
+++ b/changelog
@@ -0,0 +1,8 @@
+* 0.1.1.2 (2014-06-07)
+  - Added preliminary support for VTK output in ascii polydata format.
+    Input is suitable for use (and has been used) with ParaView. XTK's parser
+	 seems to be incomplete at the moment, unfortunately. Otherwise
+	 visualizations could happen via WebGL.
+  - Messed around with INLINE and -funbox-strict-fields a bit; no benefit
+    realized.
+
diff --git a/directed-cubical.cabal b/directed-cubical.cabal
--- a/directed-cubical.cabal
+++ b/directed-cubical.cabal
@@ -1,5 +1,5 @@
 name:                directed-cubical
-version:             0.1.1.1
+version:             0.1.2.0
 synopsis:            Finite directed cubical complexes and associated algorithms
 description:         Finite directed cubical complexes and associated algorithms
 license:             BSD3
@@ -12,14 +12,14 @@
 cabal-version:       >=1.8
 stability:           experimental
 extra-source-files:  README,
+                     changelog,
                      Tests.hs,
-                     Examples/bigCube.hs,
-                     Examples/smallCube.hs,
-                     Examples/sqPairFwd.hs,
-                     Examples/sqPairBack.hs,
-                     Examples/torus3d.hs,
-                     Examples/genusTwo3d.hs,
-                     Examples/swissFlag.hs
+                     Examples/*.hs,
+                     Examples/Animations/genusTwo3d/*.vtk,
+                     Examples/Animations/sqPairBack/*.vtk,
+                     Examples/Animations/sqPairFwd/*.vtk,
+                     Examples/Animations/swissFlag/*.vtk,
+                     Examples/Animations/torus3d/*.vtk
 
 source-repository head
   type:     git 
@@ -28,7 +28,8 @@
 library
   exposed-modules:     Math.Topology.CubeCmplx.CornerReduce, 
                        Math.Topology.CubeCmplx.DirCubeCmplx,
-                       Math.Topology.CubeCmplx.DPTrace
+                       Math.Topology.CubeCmplx.DPTrace,
+                       Math.Topology.CubeCmplx.Vtk
   -- other-modules:       
   build-depends:       base ==4.6.*, 
                        vector ==0.10.*, 
@@ -37,5 +38,6 @@
                        hashable ==1.2.*, 
                        deepseq ==1.3.*, 
                        QuickCheck ==2.6.*, 
-                       containers ==0.5.*
+                       containers ==0.5.*,
+                       bytestring ==0.10.*
 
