From 89f00d3603d35e20781882d8ce10dcb4e7351d1c Mon Sep 17 00:00:00 2001 From: barry Date: Tue, 14 May 2019 15:22:33 -0700 Subject: [PATCH] Added face-varying UVs to several regression shapes: - added UVs to non-manifold shape sets for both Catmark and Loop - added UVs to the semi-sharp and inf-sharp variations of Catmark cubes --- regression/shapes/catmark_cubes_infsharp.h | 109 +++++-- regression/shapes/catmark_cubes_semisharp.h | 109 +++++-- regression/shapes/catmark_nonman_edges.h | 344 +++++++++++++++----- regression/shapes/catmark_nonman_verts.h | 95 ++++-- regression/shapes/loop_nonman_edges.h | 323 ++++++++++++------ regression/shapes/loop_nonman_verts.h | 107 ++++-- 6 files changed, 785 insertions(+), 302 deletions(-) diff --git a/regression/shapes/catmark_cubes_infsharp.h b/regression/shapes/catmark_cubes_infsharp.h index 126d5e0a..a5bde90e 100644 --- a/regression/shapes/catmark_cubes_infsharp.h +++ b/regression/shapes/catmark_cubes_infsharp.h @@ -39,20 +39,20 @@ static const std::string catmark_cubes_infsharp = "v -0.25 0.50 0.25\n" "\n" "# 14 uvs\n" -"vt 0.375 0.000\n" -"vt 0.625 0.000\n" -"vt 0.375 0.250\n" -"vt 0.625 0.250\n" -"vt 0.375 0.500\n" -"vt 0.625 0.500\n" -"vt 0.375 0.750\n" -"vt 0.625 0.750\n" -"vt 0.375 1.000\n" -"vt 0.625 1.000\n" -"vt 0.875 0.000\n" -"vt 0.875 0.250\n" -"vt 0.125 0.000\n" -"vt 0.125 0.250\n" +"vt 0.2 0.55\n" +"vt 0.3 0.55\n" +"vt 0.2 0.65\n" +"vt 0.3 0.65\n" +"vt 0.2 0.75\n" +"vt 0.3 0.75\n" +"vt 0.2 0.85\n" +"vt 0.3 0.85\n" +"vt 0.2 0.95\n" +"vt 0.3 0.95\n" +"vt 0.4 0.55\n" +"vt 0.4 0.65\n" +"vt 0.1 0.55\n" +"vt 0.1 0.65\n" "\n" "f 1/1 2/2 4/4 3/3\n" "f 3/3 4/4 6/6 5/5\n" @@ -75,12 +75,27 @@ static const std::string catmark_cubes_infsharp = "v 1.25 -0.50 0.25\n" "v 1.25 0.50 0.25\n" "\n" -"f 9/1 10/2 12/4 11/3\n" -"f 11/3 12/4 14/6 13/5\n" -"f 13/5 14/6 16/8 15/7\n" -"f 15/7 16/8 10/10 9/9\n" -"f 10/2 16/11 14/12 12/4\n" -"f 15/13 9/1 11/3 13/14\n" +"vt 0.7 0.55\n" +"vt 0.8 0.55\n" +"vt 0.7 0.65\n" +"vt 0.8 0.65\n" +"vt 0.7 0.75\n" +"vt 0.8 0.75\n" +"vt 0.7 0.85\n" +"vt 0.8 0.85\n" +"vt 0.7 0.95\n" +"vt 0.8 0.95\n" +"vt 0.9 0.55\n" +"vt 0.9 0.65\n" +"vt 0.6 0.55\n" +"vt 0.6 0.65\n" +"\n" +"f 9/15 10/16 12/18 11/17\n" +"f 11/17 12/18 14/20 13/19\n" +"f 13/19 14/20 16/22 15/21\n" +"f 15/21 16/22 10/24 9/23\n" +"f 10/16 16/25 14/26 12/18\n" +"f 15/27 9/15 11/17 13/28\n" "\n" "t crease 2/1/0 8 9 10.0\n" "t crease 2/1/0 8 10 10.0\n" @@ -97,12 +112,27 @@ static const std::string catmark_cubes_infsharp = "v -0.25 -0.50 -1.25\n" "v -0.25 0.50 -1.25\n" "\n" -"f 17/1 18/2 20/4 19/3\n" -"f 19/3 20/4 22/6 21/5\n" -"f 21/5 22/6 24/8 23/7\n" -"f 23/7 24/8 18/10 17/9\n" -"f 18/2 24/11 22/12 20/4\n" -"f 23/13 17/1 19/3 21/14\n" +"vt 0.2 0.05\n" +"vt 0.3 0.05\n" +"vt 0.2 0.15\n" +"vt 0.3 0.15\n" +"vt 0.2 0.25\n" +"vt 0.3 0.25\n" +"vt 0.2 0.35\n" +"vt 0.3 0.35\n" +"vt 0.2 0.45\n" +"vt 0.3 0.45\n" +"vt 0.4 0.05\n" +"vt 0.4 0.15\n" +"vt 0.1 0.05\n" +"vt 0.1 0.15\n" +"\n" +"f 17/29 18/30 20/32 19/31\n" +"f 19/31 20/32 22/34 21/33\n" +"f 21/33 22/34 24/36 23/35\n" +"f 23/35 24/36 18/38 17/37\n" +"f 18/30 24/39 22/40 20/32\n" +"f 23/41 17/29 19/31 21/42\n" "\n" "t crease 2/1/0 18 16 10.0\n" "t crease 2/1/0 16 22 10.0\n" @@ -121,12 +151,27 @@ static const std::string catmark_cubes_infsharp = "v 1.25 -0.50 -1.25\n" "v 1.25 0.50 -1.25\n" "\n" -"f 25/1 26/2 28/4 27/3\n" -"f 27/3 28/4 30/6 29/5\n" -"f 29/5 30/6 32/8 31/7\n" -"f 31/7 32/8 26/10 25/9\n" -"f 26/2 32/11 30/12 28/4\n" -"f 31/13 25/1 27/3 29/14\n" +"vt 0.7 0.05\n" +"vt 0.8 0.05\n" +"vt 0.7 0.15\n" +"vt 0.8 0.15\n" +"vt 0.7 0.25\n" +"vt 0.8 0.25\n" +"vt 0.7 0.35\n" +"vt 0.8 0.35\n" +"vt 0.7 0.45\n" +"vt 0.8 0.45\n" +"vt 0.9 0.05\n" +"vt 0.9 0.15\n" +"vt 0.6 0.05\n" +"vt 0.6 0.15\n" +"\n" +"f 25/43 26/44 28/46 27/45\n" +"f 27/45 28/46 30/48 29/47\n" +"f 29/47 30/48 32/50 31/49\n" +"f 31/49 32/50 26/52 25/51\n" +"f 26/44 32/53 30/54 28/46\n" +"f 31/55 25/43 27/45 29/56\n" "\n" "t crease 2/1/0 24 25 0.1\n" "t crease 2/1/0 25 27 10.0\n" diff --git a/regression/shapes/catmark_cubes_semisharp.h b/regression/shapes/catmark_cubes_semisharp.h index d1533bba..40fd92f5 100644 --- a/regression/shapes/catmark_cubes_semisharp.h +++ b/regression/shapes/catmark_cubes_semisharp.h @@ -39,20 +39,20 @@ static const std::string catmark_cubes_semisharp = "v -0.25 0.50 0.25\n" "\n" "# 14 uvs\n" -"vt 0.375 0.000\n" -"vt 0.625 0.000\n" -"vt 0.375 0.250\n" -"vt 0.625 0.250\n" -"vt 0.375 0.500\n" -"vt 0.625 0.500\n" -"vt 0.375 0.750\n" -"vt 0.625 0.750\n" -"vt 0.375 1.000\n" -"vt 0.625 1.000\n" -"vt 0.875 0.000\n" -"vt 0.875 0.250\n" -"vt 0.125 0.000\n" -"vt 0.125 0.250\n" +"vt 0.2 0.55\n" +"vt 0.3 0.55\n" +"vt 0.2 0.65\n" +"vt 0.3 0.65\n" +"vt 0.2 0.75\n" +"vt 0.3 0.75\n" +"vt 0.2 0.85\n" +"vt 0.3 0.85\n" +"vt 0.2 0.95\n" +"vt 0.3 0.95\n" +"vt 0.4 0.55\n" +"vt 0.4 0.65\n" +"vt 0.1 0.55\n" +"vt 0.1 0.65\n" "\n" "f 1/1 2/2 4/4 3/3\n" "f 3/3 4/4 6/6 5/5\n" @@ -75,12 +75,27 @@ static const std::string catmark_cubes_semisharp = "v 1.25 -0.50 0.25\n" "v 1.25 0.50 0.25\n" "\n" -"f 9/1 10/2 12/4 11/3\n" -"f 11/3 12/4 14/6 13/5\n" -"f 13/5 14/6 16/8 15/7\n" -"f 15/7 16/8 10/10 9/9\n" -"f 10/2 16/11 14/12 12/4\n" -"f 15/13 9/1 11/3 13/14\n" +"vt 0.7 0.55\n" +"vt 0.8 0.55\n" +"vt 0.7 0.65\n" +"vt 0.8 0.65\n" +"vt 0.7 0.75\n" +"vt 0.8 0.75\n" +"vt 0.7 0.85\n" +"vt 0.8 0.85\n" +"vt 0.7 0.95\n" +"vt 0.8 0.95\n" +"vt 0.9 0.55\n" +"vt 0.9 0.65\n" +"vt 0.6 0.55\n" +"vt 0.6 0.65\n" +"\n" +"f 9/15 10/16 12/18 11/17\n" +"f 11/17 12/18 14/20 13/19\n" +"f 13/19 14/20 16/22 15/21\n" +"f 15/21 16/22 10/24 9/23\n" +"f 10/16 16/25 14/26 12/18\n" +"f 15/27 9/15 11/17 13/28\n" "\n" "t crease 2/1/0 8 9 2.0\n" "t crease 2/1/0 8 10 2.0\n" @@ -98,12 +113,27 @@ static const std::string catmark_cubes_semisharp = "v -0.25 -0.50 -1.25\n" "v -0.25 0.50 -1.25\n" "\n" -"f 17/1 18/2 20/4 19/3\n" -"f 19/3 20/4 22/6 21/5\n" -"f 21/5 22/6 24/8 23/7\n" -"f 23/7 24/8 18/10 17/9\n" -"f 18/2 24/11 22/12 20/4\n" -"f 23/13 17/1 19/3 21/14\n" +"vt 0.2 0.05\n" +"vt 0.3 0.05\n" +"vt 0.2 0.15\n" +"vt 0.3 0.15\n" +"vt 0.2 0.25\n" +"vt 0.3 0.25\n" +"vt 0.2 0.35\n" +"vt 0.3 0.35\n" +"vt 0.2 0.45\n" +"vt 0.3 0.45\n" +"vt 0.4 0.05\n" +"vt 0.4 0.15\n" +"vt 0.1 0.05\n" +"vt 0.1 0.15\n" +"\n" +"f 17/29 18/30 20/32 19/31\n" +"f 19/31 20/32 22/34 21/33\n" +"f 21/33 22/34 24/36 23/35\n" +"f 23/35 24/36 18/38 17/37\n" +"f 18/30 24/39 22/40 20/32\n" +"f 23/41 17/29 19/31 21/42\n" "\n" "t corner 1/1/0 16 3.0\n" "\n" @@ -119,12 +149,27 @@ static const std::string catmark_cubes_semisharp = "v 1.25 -0.50 -1.25\n" "v 1.25 0.50 -1.25\n" "\n" -"f 25/1 26/2 28/4 27/3\n" -"f 27/3 28/4 30/6 29/5\n" -"f 29/5 30/6 32/8 31/7\n" -"f 31/7 32/8 26/10 25/9\n" -"f 26/2 32/11 30/12 28/4\n" -"f 31/13 25/1 27/3 29/14\n" +"vt 0.7 0.05\n" +"vt 0.8 0.05\n" +"vt 0.7 0.15\n" +"vt 0.8 0.15\n" +"vt 0.7 0.25\n" +"vt 0.8 0.25\n" +"vt 0.7 0.35\n" +"vt 0.8 0.35\n" +"vt 0.7 0.45\n" +"vt 0.8 0.45\n" +"vt 0.9 0.05\n" +"vt 0.9 0.15\n" +"vt 0.6 0.05\n" +"vt 0.6 0.15\n" +"\n" +"f 25/43 26/44 28/46 27/45\n" +"f 27/45 28/46 30/48 29/47\n" +"f 29/47 30/48 32/50 31/49\n" +"f 31/49 32/50 26/52 25/51\n" +"f 26/44 32/53 30/54 28/46\n" +"f 31/55 25/43 27/45 29/56\n" "\n" "t crease 2/1/0 24 25 0.1\n" "t crease 2/1/0 25 27 5.0\n" diff --git a/regression/shapes/catmark_nonman_edges.h b/regression/shapes/catmark_nonman_edges.h index f4346597..bcd38e02 100644 --- a/regression/shapes/catmark_nonman_edges.h +++ b/regression/shapes/catmark_nonman_edges.h @@ -51,19 +51,47 @@ static const std::string catmark_nonman_edges = "v -1.08 -0.17 1.08\n" "v -0.92 -0.17 0.92\n" "\n" -"f 1 2 10 3 \n" -"f 2 4 9 10 \n" -"f 4 6 8 9 \n" -"f 5 3 10 11 \n" -"f 7 5 11 12 \n" -"f 8 9 14 13 \n" -"f 9 10 15 14 \n" -"f 10 11 16 15 \n" -"f 11 12 17 16 \n" -"f 9 8 18 19 \n" -"f 10 9 19 20 \n" -"f 11 10 20 21 \n" -"f 12 11 21 22 \n" +"vt 0.05 0.83\n" +"vt 0.05 0.78\n" +"vt 0.10 0.83\n" +"vt 0.05 0.73\n" +"vt 0.15 0.83\n" +"vt 0.05 0.68\n" +"vt 0.20 0.83\n" +"vt 0.10 0.68\n" +"vt 0.10 0.73\n" +"vt 0.10 0.78\n" +"vt 0.15 0.78\n" +"vt 0.20 0.78\n" +"vt 0.05 0.88\n" +"vt 0.10 0.88\n" +"vt 0.15 0.88\n" +"vt 0.20 0.88\n" +"vt 0.25 0.88\n" +"vt 0.05 0.93\n" +"vt 0.10 0.93\n" +"vt 0.15 0.93\n" +"vt 0.20 0.93\n" +"vt 0.25 0.93\n" +"vt 0.05 0.98\n" +"vt 0.10 0.98\n" +"vt 0.15 0.98\n" +"vt 0.20 0.98\n" +"vt 0.25 0.98\n" +"\n" +"f 1/1 2/2 10/10 3/3 \n" +"f 2/2 4/4 9/9 10/10\n" +"f 4/4 6/6 8/8 9/9 \n" +"f 5/5 3/3 10/10 11/11\n" +"f 7/7 5/5 11/11 12/12\n" +"f 8/18 9/19 14/24 13/23\n" +"f 9/19 10/20 15/25 14/24\n" +"f 10/20 11/21 16/26 15/25\n" +"f 11/21 12/22 17/27 16/26\n" +"f 9/19 8/18 18/13 19/14\n" +"f 10/20 9/19 19/14 20/15\n" +"f 11/21 10/20 20/15 21/16\n" +"f 12/22 11/21 21/16 22/17\n" "\n" "#\n" "# Shape 2: top-middle\n" @@ -86,16 +114,37 @@ static const std::string catmark_nonman_edges = "v -0.17 -0.30 1.42\n" "v 0.00 -0.60 1.25\n" "\n" -"f 23 24 35 34 \n" -"f 24 25 36 35 \n" -"f 25 26 27 36 \n" -"f 36 27 28 37 \n" -"f 37 28 29 30 \n" -"f 38 37 30 31 \n" -"f 33 38 31 32 \n" -"f 34 35 38 33 \n" -"f 35 36 37 38 \n" -"f 35 36 39 \n" +"vt 0.38 0.69\n" +"vt 0.46 0.69\n" +"vt 0.54 0.69\n" +"vt 0.62 0.69\n" +"vt 0.62 0.77\n" +"vt 0.62 0.85\n" +"vt 0.62 0.93\n" +"vt 0.54 0.93\n" +"vt 0.46 0.93\n" +"vt 0.38 0.93\n" +"vt 0.38 0.85\n" +"vt 0.38 0.77\n" +"vt 0.46 0.77\n" +"vt 0.54 0.77\n" +"vt 0.54 0.85\n" +"vt 0.46 0.85\n" +"vt 0.50 0.99\n" +"vt 0.48 0.95\n" +"vt 0.52 0.95\n" +"\n" +"f 23/28 24/29 35/40 34/39\n" +"f 24/29 25/30 36/41 35/40\n" +"f 25/30 26/31 27/32 36/41\n" +"f 36/41 27/32 28/33 37/42\n" +"f 37/42 28/33 29/34 30/35\n" +"f 38/43 37/42 30/35 31/36\n" +"f 33/38 38/43 31/36 32/37\n" +"f 34/39 35/40 38/43 33/38\n" +"f 35/40 36/41 37/42 38/43\n" +"\n" +"f 35/45 36/46 39/44\n" "\n" "#\n" "# Shape 3: top-right\n" @@ -116,15 +165,33 @@ static const std::string catmark_nonman_edges = "v 1.42 -0.30 1.42\n" "v 1.08 -0.30 1.42\n" "\n" -"f 40 41 52 51 \n" -"f 41 42 52 52 \n" -"f 42 43 44 52 \n" -"f 52 44 45 53 \n" -"f 53 45 46 47 \n" -"f 54 53 47 48 \n" -"f 50 54 48 49 \n" -"f 51 52 54 50 \n" -"f 52 52 53 54 \n" +"vt 0.68 0.68\n" +"vt 0.78 0.68\n" +"vt 0.88 0.68\n" +"vt 0.98 0.68\n" +"vt 0.98 0.78\n" +"vt 0.98 0.88\n" +"vt 0.98 0.98\n" +"vt 0.88 0.98\n" +"vt 0.78 0.98\n" +"vt 0.68 0.98\n" +"vt 0.68 0.88\n" +"vt 0.68 0.78\n" +"vt 0.78 0.78\n" +"vt 0.88 0.78\n" +"vt 0.88 0.88\n" +"vt 0.78 0.88\n" +"\n" +"f 40/47 41/48 52/59 51/58\n" +"f 41/48 42/49 52/60 52/59\n" +"f 42/49 43/50 44/51 52/60\n" +"f 52/60 44/51 45/52 53/61\n" +"f 53/61 45/52 46/53 47/54\n" +"f 54/62 53/61 47/54 48/55\n" +"f 50/57 54/62 48/55 49/56\n" +"f 51/58 52/59 54/62 50/57\n" +"\n" +"f 52/59 52/60 53/61 54/62\n" "\n" "#\n" "# Shape 4: center-left\n" @@ -144,15 +211,33 @@ static const std::string catmark_nonman_edges = "v -1.25 -0.30 -0.17\n" "v -1.25 -0.30 0.17\n" "\n" -"f 55 56 67 66 \n" -"f 56 57 67 67 \n" -"f 57 58 59 67 \n" -"f 67 59 60 68 \n" -"f 68 60 61 62 \n" -"f 68 68 62 63 \n" -"f 65 68 63 64 \n" -"f 66 67 68 65 \n" -"f 67 67 68 68 \n" +"vt 0.02 0.35\n" +"vt 0.12 0.35\n" +"vt 0.22 0.35\n" +"vt 0.32 0.35\n" +"vt 0.32 0.45\n" +"vt 0.32 0.55\n" +"vt 0.32 0.65\n" +"vt 0.22 0.65\n" +"vt 0.12 0.65\n" +"vt 0.02 0.65\n" +"vt 0.02 0.55\n" +"vt 0.02 0.45\n" +"vt 0.12 0.45\n" +"vt 0.22 0.45\n" +"vt 0.22 0.55\n" +"vt 0.12 0.55\n" +"\n" +"f 55/63 56/64 67/75 66/74\n" +"f 56/64 57/65 67/76 67/75\n" +"f 57/65 58/66 59/67 67/76\n" +"f 67/76 59/67 60/68 68/77\n" +"f 68/77 60/68 61/69 62/70\n" +"f 68/78 68/77 62/70 63/71\n" +"f 65/73 68/78 63/71 64/72\n" +"f 66/74 67/75 68/78 65/73\n" +"\n" +"f 67/75 67/76 68/77 68/78\n" "\n" "#\n" "# Shape 5: center-middle\n" @@ -172,15 +257,33 @@ static const std::string catmark_nonman_edges = "v 0.00 -0.30 -0.17\n" "v -0.17 -0.30 0.17\n" "\n" -"f 69 70 81 80 \n" -"f 70 71 81 81 \n" -"f 71 72 73 81 \n" -"f 81 73 74 81 \n" -"f 81 74 75 76 \n" -"f 82 81 76 77 \n" -"f 79 82 77 78 \n" -"f 80 81 82 79 \n" -"f 81 81 81 82 \n" +"vt 0.35 0.35\n" +"vt 0.45 0.35\n" +"vt 0.55 0.35\n" +"vt 0.65 0.35\n" +"vt 0.65 0.45\n" +"vt 0.65 0.55\n" +"vt 0.65 0.65\n" +"vt 0.55 0.65\n" +"vt 0.45 0.65\n" +"vt 0.35 0.65\n" +"vt 0.35 0.55\n" +"vt 0.35 0.45\n" +"vt 0.45 0.45\n" +"vt 0.55 0.45\n" +"vt 0.55 0.55\n" +"vt 0.45 0.55\n" +"\n" +"f 69/79 70/80 81/91 80/90\n" +"f 70/80 71/81 81/92 81/91\n" +"f 71/81 72/82 73/83 81/92\n" +"f 81/92 73/83 74/84 81/93\n" +"f 81/93 74/84 75/85 76/86\n" +"f 82/94 81/93 76/86 77/87\n" +"f 79/89 82/94 77/87 78/88\n" +"f 80/90 81/91 82/94 79/89\n" +"\n" +"f 81/91 81/92 81/93 82/94\n" "\n" "#\n" "# Shape 6: center-right\n" @@ -201,15 +304,33 @@ static const std::string catmark_nonman_edges = "v 1.42 -0.20 -0.17\n" "v 1.08 -0.20 0.17\n" "\n" -"f 83 84 95 94 \n" -"f 84 85 96 95 \n" -"f 85 86 87 96 \n" -"f 96 87 88 95 \n" -"f 95 88 89 90 \n" -"f 97 95 90 91 \n" -"f 93 97 91 92 \n" -"f 94 95 97 93 \n" -"f 95 96 95 97 \n" +"vt 0.68 0.35\n" +"vt 0.78 0.35\n" +"vt 0.88 0.35\n" +"vt 0.98 0.35\n" +"vt 0.98 0.45\n" +"vt 0.98 0.55\n" +"vt 0.98 0.65\n" +"vt 0.88 0.65\n" +"vt 0.78 0.65\n" +"vt 0.68 0.65\n" +"vt 0.68 0.55\n" +"vt 0.68 0.45\n" +"vt 0.78 0.45\n" +"vt 0.88 0.45\n" +"vt 0.88 0.55\n" +"vt 0.78 0.55\n" +"\n" +"f 83/95 84/96 95/107 94/106\n" +"f 84/96 85/97 96/108 95/107\n" +"f 85/97 86/98 87/99 96/108\n" +"f 96/108 87/99 88/100 95/109\n" +"f 95/109 88/100 89/101 90/102\n" +"f 97/110 95/109 90/102 91/103\n" +"f 93/105 97/110 91/103 92/104\n" +"f 94/106 95/107 97/110 93/105\n" +"\n" +"f 95/107 96/108 95/109 97/110\n" "\n" "#\n" "# Shape 7: bottom-left\n" @@ -228,15 +349,33 @@ static const std::string catmark_nonman_edges = "v -1.75 0.00 -1.42\n" "v -1.25 -0.30 -1.25\n" "\n" -"f 98 99 110 109 \n" -"f 99 100 110 110 \n" -"f 100 101 102 110 \n" -"f 110 102 103 110 \n" -"f 110 103 104 105 \n" -"f 110 110 105 106 \n" -"f 108 110 106 107 \n" -"f 109 110 110 108 \n" -"f 110 110 110 110 \n" +"vt 0.02 0.02\n" +"vt 0.12 0.02\n" +"vt 0.22 0.02\n" +"vt 0.32 0.02\n" +"vt 0.32 0.12\n" +"vt 0.32 0.22\n" +"vt 0.32 0.32\n" +"vt 0.22 0.32\n" +"vt 0.12 0.32\n" +"vt 0.02 0.32\n" +"vt 0.02 0.22\n" +"vt 0.02 0.12\n" +"vt 0.12 0.12\n" +"vt 0.22 0.12\n" +"vt 0.22 0.22\n" +"vt 0.12 0.22\n" +"\n" +"f 98/111 99/112 110/123 109/122\n" +"f 99/112 100/113 110/124 110/123\n" +"f 100/113 101/114 102/115 110/124\n" +"f 110/124 102/115 103/116 110/125\n" +"f 110/125 103/116 104/117 105/118\n" +"f 110/126 110/125 105/118 106/119\n" +"f 108/121 110/126 106/119 107/120\n" +"f 109/122 110/123 110/126 108/121\n" +"\n" +"f 110/123 110/124 110/125 110/126\n" "\n" "#\n" "# Shape 8: bottom-middle\n" @@ -258,15 +397,33 @@ static const std::string catmark_nonman_edges = "v 0.17 -0.30 -1.08\n" "v -0.17 -0.30 -1.08\n" "\n" -"f 111 112 123 122 \n" -"f 112 113 124 123 \n" -"f 113 114 115 124 \n" -"f 124 115 116 125 \n" -"f 125 116 117 118 \n" -"f 126 125 118 119 \n" -"f 121 126 119 120 \n" -"f 122 123 126 121 \n" -"f 126 125 124 123 \n" +"vt 0.35 0.02\n" +"vt 0.45 0.02\n" +"vt 0.55 0.02\n" +"vt 0.65 0.02\n" +"vt 0.65 0.12\n" +"vt 0.65 0.22\n" +"vt 0.65 0.32\n" +"vt 0.55 0.32\n" +"vt 0.45 0.32\n" +"vt 0.35 0.32\n" +"vt 0.35 0.22\n" +"vt 0.35 0.12\n" +"vt 0.45 0.12\n" +"vt 0.55 0.12\n" +"vt 0.55 0.22\n" +"vt 0.45 0.22\n" +"\n" +"f 111/127 112/128 123/139 122/138\n" +"f 112/128 113/129 124/140 123/139\n" +"f 113/129 114/130 115/131 124/140\n" +"f 124/140 115/131 116/132 125/141\n" +"f 125/141 116/132 117/133 118/134\n" +"f 126/142 125/141 118/134 119/135\n" +"f 121/137 126/142 119/135 120/136\n" +"f 122/138 123/139 126/142 121/137\n" +"\n" +"f 126/142 125/141 124/140 123/139\n" "\n" "#\n" "# Shape 9: bottom-right\n" @@ -288,14 +445,31 @@ static const std::string catmark_nonman_edges = "v 0.7500 0.0000 -1.05\n" "v 0.8965 -0.3535 -1.05\n" "\n" -"f 127 135 136 128 \n" -"f 128 136 137 129 \n" -"f 129 137 138 130 \n" -"f 130 138 139 131 \n" -"f 131 132 140 139 \n" -"f 132 133 141 140 \n" -"f 133 134 142 141 \n" -"f 134 127 135 142 \n" +"vt 0.8300 0.0450\n" +"vt 0.9184 0.0816\n" +"vt 0.9550 0.1700\n" +"vt 0.9184 0.2584\n" +"vt 0.8300 0.2950\n" +"vt 0.7416 0.2584\n" +"vt 0.7050 0.1700\n" +"vt 0.7416 0.0816\n" +"vt 0.8300 0.1075\n" +"vt 0.8742 0.1258\n" +"vt 0.8925 0.1700\n" +"vt 0.8742 0.2142\n" +"vt 0.8300 0.2325\n" +"vt 0.7858 0.2142\n" +"vt 0.7675 0.1700\n" +"vt 0.7858 0.1258\n" +"\n" +"f 127/143 135/151 136/152 128/144\n" +"f 128/144 136/152 137/153 129/145\n" +"f 129/145 137/153 138/154 130/146\n" +"f 130/146 138/154 139/155 131/147\n" +"f 131/147 132/148 140/156 139/155\n" +"f 132/148 133/149 141/157 140/156\n" +"f 133/149 134/150 142/158 141/157\n" +"f 134/150 127/143 135/151 142/158\n" "\n" "t interpolateboundary 1/0/0 1\n" "\n" diff --git a/regression/shapes/catmark_nonman_verts.h b/regression/shapes/catmark_nonman_verts.h index 80d1326e..cc6d1812 100644 --- a/regression/shapes/catmark_nonman_verts.h +++ b/regression/shapes/catmark_nonman_verts.h @@ -37,10 +37,20 @@ static const std::string catmark_nonman_verts = "v -1.0 0 0.5 \n" "v -0.75 0 0.25 \n" "v -0.5 0 0.5 \n" +"#\n" +"vt 0.05 0.85\n" +"vt 0.25 0.75\n" +"vt 0.45 0.85\n" +"vt 0.05 1.00\n" +"vt 0.25 0.90\n" +"vt 0.45 1.00\n" +"vt 0.15 0.65\n" +"vt 0.25 0.55\n" +"vt 0.35 0.65\n" "\n" -"f 1 2 5 4\n" -"f 2 3 6 5\n" -"f 2 7 8 9\n" +"f 1/1 2/2 5/5 4/4\n" +"f 2/2 3/3 6/6 5/5\n" +"f 2/2 7/7 8/8 9/9\n" "\n" "#\n" "# Shape 2: top-right\n" @@ -57,10 +67,23 @@ static const std::string catmark_nonman_verts = "v 0.75 0 0.25\n" "v 1.25 0 0.25\n" "\n" -"f 10 11 14 13\n" -"f 11 12 15 14\n" -"f 11 16 18 19\n" -"f 17 11 19 20\n" +"vt 0.55 0.85\n" +"vt 0.75 0.76\n" +"vt 0.95 0.85\n" +"vt 0.55 1.00\n" +"vt 0.75 0.90\n" +"vt 0.95 1.00\n" +"vt 0.55 0.65\n" +"vt 0.95 0.65\n" +"vt 0.55 0.50\n" +"vt 0.75 0.60\n" +"vt 0.95 0.50\n" +"vt 0.75 0.74\n" +"\n" +"f 10/10 11/11 14/14 13/13\n" +"f 11/11 12/12 15/15 14/14\n" +"f 11/21 16/16 18/18 19/19\n" +"f 17/17 11/21 19/19 20/20\n" "\n" "#\n" "# Shape 3: bottom-left\n" @@ -76,12 +99,25 @@ static const std::string catmark_nonman_verts = "v -0.25 0.5 -1.25\n" "v -1.1 0 -0.25\n" "v -0.4 0 -0.25\n" +"#\n" +"vt 0.15 0.025\n" +"vt 0.25 0.025\n" +"vt 0.35 0.025\n" +"vt 0.15 0.125\n" +"vt 0.25 0.125\n" +"vt 0.35 0.125\n" +"vt 0.15 0.225\n" +"vt 0.25 0.225\n" +"vt 0.35 0.225\n" +"vt 0.15 0.45\n" +"vt 0.35 0.45\n" +"vt 0.25 0.30\n" "\n" -"f 21 22 25 24\n" -"f 22 23 26 25\n" -"f 24 25 28 27\n" -"f 25 26 29 28\n" -"f 30 25 31\n" +"f 21/22 22/23 25/26 24/25\n" +"f 22/23 23/24 26/27 25/26\n" +"f 24/25 25/26 28/29 27/28\n" +"f 25/26 26/27 29/30 28/29\n" +"f 30/31 25/33 31/32\n" "\n" "#\n" "# Shape 4: bottom-right\n" @@ -103,15 +139,34 @@ static const std::string catmark_nonman_verts = "v 0.25 0.5 -0.25\n" "v 0.75 0.5 -0.25\n" "v 1.25 0.5 -0.25\n" +"#\n" +"vt 0.65 0.025\n" +"vt 0.75 0.025\n" +"vt 0.85 0.025\n" +"vt 0.65 0.125\n" +"vt 0.75 0.125\n" +"vt 0.85 0.125\n" +"vt 0.65 0.225\n" +"vt 0.75 0.225\n" +"vt 0.85 0.225\n" +"vt 0.65 0.475\n" +"vt 0.75 0.475\n" +"vt 0.85 0.475\n" +"vt 0.65 0.375\n" +"vt 0.85 0.375\n" +"vt 0.65 0.275\n" +"vt 0.75 0.275\n" +"vt 0.85 0.275\n" +"vt 0.75 0.375\n" "\n" -"f 32 33 36 35\n" -"f 33 34 37 36\n" -"f 35 36 39 38\n" -"f 36 37 40 39\n" -"f 41 44 36 42\n" -"f 42 36 45 43\n" -"f 44 46 47 36\n" -"f 36 47 48 45\n" +"f 32/34 33/35 36/38 35/37\n" +"f 33/35 34/36 37/39 36/38\n" +"f 35/37 36/38 39/41 38/40\n" +"f 36/38 37/39 40/42 39/41\n" +"f 41/43 44/46 36/51 42/44\n" +"f 42/44 36/51 45/47 43/45\n" +"f 44/46 46/48 47/49 36/51\n" +"f 36/51 47/49 48/50 45/47\n" "\n" "#\n" "# Additional 'shape' 5: isolated non-manifold vertex in center\n" diff --git a/regression/shapes/loop_nonman_edges.h b/regression/shapes/loop_nonman_edges.h index ef666864..39c75c3c 100644 --- a/regression/shapes/loop_nonman_edges.h +++ b/regression/shapes/loop_nonman_edges.h @@ -49,30 +49,56 @@ static const std::string loop_nonman_edges = "v -1.15 -0.2 1.15\n" "v -1.05 -0.2 1.05\n" "\n" -"f 1 8 2\n" -"f 2 8 9\n" -"f 2 9 3\n" -"f 3 9 10\n" -"f 3 10 4\n" -"f 4 10 5\n" -"f 5 10 11\n" -"f 5 11 6\n" -"f 6 11 12\n" -"f 6 12 7\n" -"f 13 8 9\n" -"f 13 9 14\n" -"f 14 9 10\n" -"f 14 10 15\n" -"f 15 10 11\n" -"f 15 11 16\n" -"f 16 11 12\n" -"f 17 9 8\n" -"f 17 18 9\n" -"f 18 10 9\n" -"f 18 19 10\n" -"f 19 11 10\n" -"f 19 20 11\n" -"f 20 12 11\n" +"vt 0.02 0.83\n" +"vt 0.07 0.88\n" +"vt 0.12 0.93\n" +"vt 0.17 0.98\n" +"vt 0.22 0.93\n" +"vt 0.27 0.88\n" +"vt 0.32 0.83\n" +"vt 0.07 0.78\n" +"vt 0.12 0.83\n" +"vt 0.17 0.88\n" +"vt 0.22 0.83\n" +"vt 0.27 0.78\n" +"vt 0.11 0.78\n" +"vt 0.14 0.78\n" +"vt 0.20 0.78\n" +"vt 0.23 0.78\n" +"vt 0.11 0.68\n" +"vt 0.14 0.68\n" +"vt 0.20 0.68\n" +"vt 0.23 0.68\n" +"vt 0.07 0.73\n" +"vt 0.12 0.73\n" +"vt 0.17 0.73\n" +"vt 0.22 0.73\n" +"vt 0.27 0.73\n" +"\n" +"f 1/1 8/8 2/2 \n" +"f 2/2 8/8 9/9 \n" +"f 2/2 9/9 3/3 \n" +"f 3/3 9/9 10/10\n" +"f 3/3 10/10 4/4 \n" +"f 4/4 10/10 5/5 \n" +"f 5/5 10/10 11/11\n" +"f 5/5 11/11 6/6 \n" +"f 6/6 11/11 12/12\n" +"f 6/6 12/12 7/7 \n" +"f 13/13 8/21 9/22\n" +"f 13/13 9/22 14/14\n" +"f 14/14 9/22 10/23\n" +"f 14/14 10/23 15/15\n" +"f 15/15 10/23 11/24\n" +"f 15/15 11/24 16/16\n" +"f 16/16 11/24 12/25\n" +"f 17/17 9/22 8/21\n" +"f 17/17 18/18 9/22\n" +"f 18/18 10/23 9/22\n" +"f 18/18 19/19 10/23\n" +"f 19/19 11/24 10/23\n" +"f 19/19 20/20 11/24\n" +"f 20/20 12/25 11/24\n" "\n" "#\n" "# Shape 2: top-middle\n" @@ -91,21 +117,37 @@ static const std::string loop_nonman_edges = "v 0.166667 0.0 1.68302\n" "v 0.0 -0.50 1.25\n" "\n" -"f 21 22 25\n" -"f 22 23 26\n" -"f 21 25 24\n" -"f 22 26 25\n" -"f 23 27 26\n" -"f 24 25 28\n" -"f 25 26 29\n" -"f 26 27 30\n" -"f 25 29 28\n" -"f 26 30 29\n" -"f 28 29 31\n" -"f 29 30 32\n" -"f 29 32 31\n" +"vt 0.40 0.68\n" +"vt 0.50 0.68\n" +"vt 0.60 0.68\n" +"vt 0.35 0.77\n" +"vt 0.45 0.77\n" +"vt 0.55 0.77\n" +"vt 0.65 0.77\n" +"vt 0.40 0.85\n" +"vt 0.50 0.85\n" +"vt 0.60 0.85\n" +"vt 0.45 0.93\n" +"vt 0.55 0.93\n" +"vt 0.50 1.00\n" +"vt 0.45 0.94\n" +"vt 0.55 0.94\n" +"\n" +"f 21/26 22/27 25/30\n" +"f 22/27 23/28 26/31\n" +"f 21/26 25/30 24/29\n" +"f 22/27 26/31 25/30\n" +"f 23/28 27/32 26/31\n" +"f 24/29 25/30 28/33\n" +"f 25/30 26/31 29/34\n" +"f 26/31 27/32 30/35\n" +"f 25/30 29/34 28/33\n" +"f 26/31 30/35 29/34\n" +"f 28/33 29/34 31/36\n" +"f 29/34 30/35 32/37\n" +"f 29/34 32/37 31/36\n" "# Add face to existing manifold edge, making it non-manifold:\n" -"f 33 25 26\n" +"f 33/38 25/39 26/40\n" "\n" "#\n" "# Shape 3: top-right\n" @@ -121,14 +163,31 @@ static const std::string loop_nonman_edges = "v 1.75 0 1.25\n" "v 1.6 0 1.6\n" "\n" -"f 34 35 36\n" -"f 34 35 37\n" -"f 34 35 38\n" -"f 34 35 39\n" -"f 35 34 40\n" -"f 35 34 41\n" -"f 35 34 42\n" -"f 35 34 43\n" +"vt 0.68 0.74\n" +"vt 0.80 0.74\n" +"vt 0.74 0.68\n" +"vt 0.74 0.80\n" +"vt 0.85 0.74\n" +"vt 0.97 0.74\n" +"vt 0.91 0.68\n" +"vt 0.91 0.80\n" +"vt 0.68 0.91\n" +"vt 0.80 0.91\n" +"vt 0.74 0.85\n" +"vt 0.74 0.97\n" +"vt 0.85 0.91\n" +"vt 0.97 0.91\n" +"vt 0.91 0.85\n" +"vt 0.91 0.97\n" +"\n" +"f 34/41 35/42 36/44\n" +"f 35/42 34/41 40/43\n" +"f 34/45 35/46 37/48\n" +"f 35/46 34/45 41/47\n" +"f 34/49 35/50 38/52\n" +"f 35/50 34/49 42/51\n" +"f 34/53 35/54 39/56\n" +"f 35/54 34/53 43/55\n" "\n" "#\n" "# Shape 4: center-left\n" @@ -141,13 +200,21 @@ static const std::string loop_nonman_edges = "v -1.25 -0.2 0.15\n" "v -0.95 0 0.15\n" "\n" -"f 44 45 48\n" -"f 45 46 49\n" -"f 46 47 50\n" -"f 45 49 48\n" -"f 46 50 49\n" +"vt 0.04 0.46\n" +"vt 0.12 0.46\n" +"vt 0.22 0.46\n" +"vt 0.31 0.46\n" +"vt 0.08 0.55\n" +"vt 0.17 0.55\n" +"vt 0.26 0.55\n" +"\n" +"f 44/57 45/58 48/61\n" +"f 45/58 46/59 49/62\n" +"f 46/59 47/60 50/63\n" +"f 45/58 49/62 48/61\n" +"f 46/59 50/63 49/62\n" "# Add triangle with degenerate edge along existing edge:\n" -"f 46 46 49\n" +"f 46/59 46/59 49/62\n" "\n" "#\n" "# Shape 5: center-middle\n" @@ -165,21 +232,34 @@ static const std::string loop_nonman_edges = "v -0.166667 0.0 0.43302\n" "v 0.166667 0.0 0.43302\n" "\n" -"f 51 52 55\n" -"f 52 53 56\n" -"f 51 55 54\n" -"f 52 56 55\n" -"f 53 57 56\n" -"f 54 55 58\n" -"f 55 56 59\n" -"f 56 57 60\n" -"f 55 59 58\n" -"f 56 60 59\n" -"f 58 59 61\n" -"f 59 60 62\n" -"f 59 62 61\n" +"vt 0.40 0.37\n" +"vt 0.50 0.37\n" +"vt 0.60 0.37\n" +"vt 0.35 0.46\n" +"vt 0.45 0.46\n" +"vt 0.55 0.46\n" +"vt 0.65 0.46\n" +"vt 0.40 0.54\n" +"vt 0.50 0.54\n" +"vt 0.60 0.54\n" +"vt 0.45 0.63\n" +"vt 0.55 0.63\n" +"\n" +"f 51/64 52/65 55/68\n" +"f 52/65 53/66 56/69\n" +"f 51/64 55/68 54/67\n" +"f 52/65 56/69 55/68\n" +"f 53/66 57/70 56/69\n" +"f 54/67 55/68 58/71\n" +"f 55/68 56/69 59/72\n" +"f 56/69 57/70 60/73\n" +"f 55/68 59/72 58/71\n" +"f 56/69 60/73 59/72\n" +"f 58/71 59/72 61/74\n" +"f 59/72 60/73 62/75\n" +"f 59/72 62/75 61/74\n" "# Add a triangle with a degenerate edge to the interior:\n" -"f 55 56 56\n" +"f 55/68 56/69 56/69\n" "\n" "#\n" "# Shape 6: center-right\n" @@ -197,29 +277,45 @@ static const std::string loop_nonman_edges = "v 1.083333 0.0 0.43302\n" "v 1.416667 0.0 0.43302\n" "\n" -"f 63 64 67\n" -"f 64 65 68\n" -"f 63 67 66\n" -"f 64 68 67\n" -"f 65 69 68\n" -"f 66 67 70\n" -"f 67 68 71\n" -"f 68 69 72\n" -"f 67 71 70\n" -"f 68 72 71\n" -"f 70 71 73\n" -"f 71 72 74\n" -"f 71 74 73\n" -"# Add a completely degenerate triangle to the interior:\n" -"f 67 67 67\n" +"vt 0.73 0.37\n" +"vt 0.83 0.37\n" +"vt 0.93 0.37\n" +"vt 0.68 0.46\n" +"vt 0.78 0.46\n" +"vt 0.88 0.46\n" +"vt 0.98 0.46\n" +"vt 0.73 0.54\n" +"vt 0.83 0.54\n" +"vt 0.93 0.54\n" +"vt 0.78 0.63\n" +"vt 0.88 0.63\n" "\n" +"f 63/76 64/77 67/80\n" +"f 64/77 65/78 68/81\n" +"f 63/76 67/80 66/79\n" +"f 64/77 68/81 67/80\n" +"f 65/78 69/82 68/81\n" +"f 66/79 67/80 70/83\n" +"f 67/80 68/81 71/84\n" +"f 68/81 69/82 72/85\n" +"f 67/80 71/84 70/83\n" +"f 68/81 72/85 71/84\n" +"f 70/83 71/84 73/86\n" +"f 71/84 72/85 74/87\n" +"f 71/84 74/87 73/86\n" +"# Add a completely degenerate triangle to the interior:\n" +"f 67/80 67/80 67/80\n" "\n" "#\n" "# Shape 7: bottom-left\n" "#\n" "v -1.25 0.0 -1.25\n" "\n" -"f 1 1 1\n" +"vt 0.12 0.12\n" +"vt 0.22 0.12\n" +"vt 0.17 0.22\n" +"\n" +"f 75/88 75/89 75/90\n" "\n" "#\n" "# Shape 8: bottom-middle\n" @@ -234,14 +330,24 @@ static const std::string loop_nonman_edges = "v 0.125 -0.1 -1.15\n" "v 0.375 0 -1.15\n" "\n" -"f 76 77 81\n" -"f 77 82 81\n" +"vt 0.35 0.14\n" +"vt 0.43 0.14\n" +"vt 0.50 0.14\n" +"vt 0.57 0.14\n" +"vt 0.65 0.14\n" +"vt 0.39 0.20\n" +"vt 0.46 0.20\n" +"vt 0.54 0.20\n" +"vt 0.61 0.20\n" +"\n" +"f 76/91 77/92 81/96\n" +"f 77/92 82/97 81/96\n" "# Reverse winding of the 3 middle faces:\n" -"f 82 78 77\n" -"f 82 83 78\n" -"f 83 79 78\n" -"f 79 84 83\n" -"f 79 80 84\n" +"f 82/97 78/93 77/92\n" +"f 82/97 83/98 78/93\n" +"f 83/98 79/94 78/93\n" +"f 79/94 84/99 83/98\n" +"f 79/94 80/95 84/99\n" "\n" "#\n" "# Shape 9: bottom-right\n" @@ -259,20 +365,33 @@ static const std::string loop_nonman_edges = "v 1.083333 0.0 -0.81698\n" "v 1.416667 0.0 -0.81698\n" "\n" -"f 85 86 89\n" -"f 86 87 90\n" -"f 85 89 88\n" -"f 86 90 89\n" -"f 87 91 90\n" -"f 88 89 92\n" +"vt 0.73 0.04\n" +"vt 0.83 0.04\n" +"vt 0.93 0.04\n" +"vt 0.68 0.13\n" +"vt 0.78 0.13\n" +"vt 0.88 0.13\n" +"vt 0.98 0.13\n" +"vt 0.73 0.21\n" +"vt 0.83 0.21\n" +"vt 0.93 0.21\n" +"vt 0.78 0.30\n" +"vt 0.88 0.30\n" +"\n" +"f 85/100 86/101 89/104\n" +"f 86/101 87/102 90/105\n" +"f 85/100 89/104 88/103\n" +"f 86/101 90/105 89/104\n" +"f 87/102 91/106 90/105\n" +"f 88/103 89/104 92/107\n" "# Reverse the winding order of the interior face:\n" -"f 93 90 89\n" -"f 90 91 94\n" -"f 89 93 92\n" -"f 90 94 93\n" -"f 92 93 95\n" -"f 93 94 96\n" -"f 93 96 95\n" +"f 93/108 90/105 89/104\n" +"f 90/105 91/106 94/109\n" +"f 89/104 93/108 92/107\n" +"f 90/105 94/109 93/108\n" +"f 92/107 93/108 95/110\n" +"f 93/108 94/109 96/111\n" +"f 93/108 96/111 95/110\n" "\n" "t interpolateboundary 1/0/0 1\n" "\n" diff --git a/regression/shapes/loop_nonman_verts.h b/regression/shapes/loop_nonman_verts.h index d98e5412..6c698f31 100644 --- a/regression/shapes/loop_nonman_verts.h +++ b/regression/shapes/loop_nonman_verts.h @@ -28,18 +28,26 @@ static const std::string loop_nonman_verts = "#\n" "# Shape 1: top-left\n" "#\n" -"v -1.25 0.0 0.75\n" +"v -1.25 0.0 0.875\n" "v -0.75 -0.25 0.75\n" -"v -0.25 0.0 0.75\n" +"v -0.25 0.0 0.875\n" "v -1.0 0.0 1.25\n" "v -0.5 0.0 1.25\n" "v -1.0 0.0 0.25\n" "v -0.5 0.0 0.25\n" +"#\n" +"vt 0.05 0.80\n" +"vt 0.25 0.75\n" +"vt 0.45 0.80\n" +"vt 0.15 0.95\n" +"vt 0.35 0.95\n" +"vt 0.15 0.55\n" +"vt 0.35 0.55\n" "\n" -"f 1 2 4\n" -"f 2 5 4\n" -"f 2 3 5\n" -"f 2 6 7\n" +"f 1/1 2/2 4/4\n" +"f 2/2 5/5 4/4\n" +"f 2/2 3/3 5/5\n" +"f 2/2 6/6 7/7\n" "\n" "#\n" "# Shape 2: top-right\n" @@ -53,13 +61,24 @@ static const std::string loop_nonman_verts = "v 0.5 0.0 0.25\n" "v 1.0 0.0 0.25\n" "v 1.25 0.0 0.625\n" +"#\n" +"vt 0.55 0.80\n" +"vt 0.75 0.76\n" +"vt 0.95 0.80\n" +"vt 0.65 0.95\n" +"vt 0.85 0.95\n" +"vt 0.55 0.70\n" +"vt 0.65 0.55\n" +"vt 0.85 0.55\n" +"vt 0.95 0.70\n" +"vt 0.75 0.74\n" "\n" -"f 8 9 11\n" -"f 9 12 11\n" -"f 9 10 12\n" -"f 9 13 14\n" -"f 15 9 14\n" -"f 15 16 9\n" +"f 8/8 9/9 11/11\n" +"f 9/9 12/12 11/11\n" +"f 9/9 10/10 12/12\n" +"f 9/17 13/13 14/14\n" +"f 15/15 9/17 14/14\n" +"f 15/15 16/16 9/17\n" "\n" "#\n" "# Shape 3: bottom-left\n" @@ -73,14 +92,25 @@ static const std::string loop_nonman_verts = "v -0.5 -0.433013 -1.0\n" "v -1.0 0.0 -0.5\n" "v -0.5 0.0 -0.5\n" +"#\n" +"vt 0.25 0.20\n" +"vt 0.05 0.20\n" +"vt 0.15 0.03\n" +"vt 0.35 0.03\n" +"vt 0.45 0.20\n" +"vt 0.35 0.37\n" +"vt 0.15 0.37\n" +"vt 0.03 0.47\n" +"vt 0.23 0.47\n" +"vt 0.13 0.37\n" "\n" -"f 17 18 19\n" -"f 17 19 20\n" -"f 17 20 21\n" -"f 17 21 22\n" -"f 17 22 23\n" -"f 17 23 18\n" -"f 17 25 24\n" +"f 17/18 18/19 19/20\n" +"f 17/18 19/20 20/21\n" +"f 17/18 20/21 21/22\n" +"f 17/18 21/22 22/23\n" +"f 17/18 22/23 23/24\n" +"f 17/18 23/24 18/19\n" +"f 17/27 25/26 24/25\n" "\n" "#\n" "# Shape 4: bottom-right\n" @@ -98,19 +128,34 @@ static const std::string loop_nonman_verts = "v 0.25 0.0 -0.5\n" "v 0.5 -0.433013 -0.5\n" "v 1.0 -0.433013 -0.5\n" +"#\n" +"vt 0.66 0.36\n" +"vt 0.52 0.36\n" +"vt 0.59 0.24\n" +"vt 0.73 0.24\n" +"vt 0.80 0.36\n" +"vt 0.73 0.48\n" +"vt 0.59 0.48\n" +"vt 0.70 0.14\n" +"vt 0.77 0.26\n" +"vt 0.91 0.26\n" +"vt 0.98 0.14\n" +"vt 0.91 0.02\n" +"vt 0.77 0.02\n" +"vt 0.84 0.14\n" "\n" -"f 26 27 28\n" -"f 26 28 29\n" -"f 26 29 30\n" -"f 26 30 31\n" -"f 26 31 32\n" -"f 26 32 27\n" -"f 26 34 33\n" -"f 26 35 34\n" -"f 26 36 35\n" -"f 26 37 36\n" -"f 26 38 37\n" -"f 26 33 38\n" +"f 26/28 27/29 28/30\n" +"f 26/28 28/30 29/31\n" +"f 26/28 29/31 30/32\n" +"f 26/28 30/32 31/33\n" +"f 26/28 31/33 32/34\n" +"f 26/28 32/34 27/29\n" +"f 26/41 34/36 33/35\n" +"f 26/41 35/37 34/36\n" +"f 26/41 36/38 35/37\n" +"f 26/41 37/39 36/38\n" +"f 26/41 38/40 37/39\n" +"f 26/41 33/35 38/40\n" "\n" "#\n" "# Additional 'shape' 5: isolated non-manifold vertex in center\n"