From eae467047b7ecb1f429d7585090e260003779117 Mon Sep 17 00:00:00 2001 From: barry Date: Fri, 10 Jan 2020 14:24:29 -0800 Subject: [PATCH] Revised existing boundary interpolation example shapes for consistency: - all include the planar reference from documentation figures - all include the single polygon case (quad or tri) - all edge-only cases include semi-sharp boundary vertices --- regression/shapes/catmark_edgecorner.h | 170 +++++++++++++++-- regression/shapes/catmark_edgeonly.h | 164 ++++++++++++++--- regression/shapes/loop_triangle_edgecorner.h | 182 ++++++++++++++++++- regression/shapes/loop_triangle_edgeonly.h | 173 ++++++++++++++---- 4 files changed, 608 insertions(+), 81 deletions(-) diff --git a/regression/shapes/catmark_edgecorner.h b/regression/shapes/catmark_edgecorner.h index a62db72f..24a3da8d 100644 --- a/regression/shapes/catmark_edgecorner.h +++ b/regression/shapes/catmark_edgecorner.h @@ -23,17 +23,165 @@ // static const std::string catmark_edgecorner = -"# This file uses centimeters as units for non-parametric coordinates.\n" -"\n" -"v -1.0 0.0 -1.0\n" -"v 1.0 0.0 -1.0\n" -"v 1.0 0.0 1.0\n" -"v -1.0 0.0 1.0\n" -"vt 0.0 0.0\n" -"vt 1.0 0.0\n" -"vt 1.0 1.0\n" -"vt 0.0 1.0\n" -"f 1/1 2/2 3/3 4/4\n" +"#\n" +"# Test cases for BoundaryInterpolation option \"edge and corner\":\n" +"#\n" "t interpolateboundary 1/0/0 1\n" "\n" +"#\n" +"# Shape 1: top-left\n" +"#\n" +"v -1.250 0.000 0.250\n" +"v -0.917 0.000 0.250\n" +"v -0.583 0.000 0.250\n" +"v -0.250 0.000 0.250\n" +"v -1.250 0.000 0.583\n" +"v -0.917 0.000 0.583\n" +"v -0.583 0.000 0.583\n" +"v -0.250 0.000 0.583\n" +"v -1.250 0.000 0.917\n" +"v -0.917 0.000 0.917\n" +"v -0.583 0.000 0.917\n" +"v -0.250 0.000 0.917\n" +"v -1.250 0.000 1.250\n" +"v -0.917 0.000 1.250\n" +"v -0.583 0.000 1.250\n" +"v -0.250 0.000 1.250\n" +"\n" +"vt 0.000 0.600\n" +"vt 0.133 0.600\n" +"vt 0.267 0.600\n" +"vt 0.400 0.600\n" +"vt 0.000 0.733\n" +"vt 0.133 0.733\n" +"vt 0.267 0.733\n" +"vt 0.400 0.733\n" +"vt 0.000 0.867\n" +"vt 0.133 0.867\n" +"vt 0.267 0.867\n" +"vt 0.400 0.867\n" +"vt 0.000 1.000\n" +"vt 0.133 1.000\n" +"vt 0.267 1.000\n" +"vt 0.400 1.000\n" +"\n" +"f 1/1 2/2 6/6 5/5 \n" +"f 2/2 3/3 7/7 6/6 \n" +"f 3/3 4/4 8/8 7/7 \n" +"f 5/5 6/6 10/10 9/9 \n" +"f 6/6 7/7 11/11 10/10 \n" +"f 7/7 8/8 12/12 11/11 \n" +"f 9/9 10/10 14/14 13/13 \n" +"f 10/10 11/11 15/15 14/14 \n" +"f 11/11 12/12 16/16 15/15 \n" +"\n" +"#\n" +"# Shape 2: top-right\n" +"#\n" +"v 0.250 0.000 0.250\n" +"v 0.583 -0.250 0.250\n" +"v 0.917 -0.250 0.250\n" +"v 1.250 0.000 0.250\n" +"v 0.250 0.000 0.583\n" +"v 0.583 -0.250 0.583\n" +"v 0.917 -0.250 0.583\n" +"v 1.250 0.000 0.583\n" +"v 0.250 0.000 0.917\n" +"v 0.583 -0.250 0.917\n" +"v 0.917 -0.250 0.917\n" +"v 1.250 0.000 0.917\n" +"v 0.250 0.000 1.250\n" +"v 0.583 -0.250 1.250\n" +"v 0.917 -0.250 1.250\n" +"v 1.250 0.000 1.250\n" +"\n" +"vt 0.600 0.600\n" +"vt 0.733 0.600\n" +"vt 0.867 0.600\n" +"vt 1.000 0.600\n" +"vt 0.600 0.733\n" +"vt 0.733 0.733\n" +"vt 0.867 0.733\n" +"vt 1.000 0.733\n" +"vt 0.600 0.867\n" +"vt 0.733 0.867\n" +"vt 0.867 0.867\n" +"vt 1.000 0.867\n" +"vt 0.600 1.000\n" +"vt 0.733 1.000\n" +"vt 0.867 1.000\n" +"vt 1.000 1.000\n" +"\n" +"f 17/17 18/18 22/22 21/21 \n" +"f 18/18 19/19 23/23 22/22 \n" +"f 19/19 20/20 24/24 23/23 \n" +"f 21/21 22/22 26/26 25/25 \n" +"f 22/22 23/23 27/27 26/26 \n" +"f 23/23 24/24 28/28 27/27 \n" +"f 25/25 26/26 30/30 29/29 \n" +"f 26/26 27/27 31/31 30/30 \n" +"f 27/27 28/28 32/32 31/31 \n" +"\n" +"#\n" +"# Shape 3: bottom-left\n" +"#\n" +"v -1.250 0.000 -1.250\n" +"v -0.917 -0.250 -1.250\n" +"v -0.583 -0.250 -1.250\n" +"v -0.250 0.000 -1.250\n" +"v -1.250 -0.250 -0.917\n" +"v -0.917 -0.250 -0.917\n" +"v -0.583 -0.250 -0.917\n" +"v -0.250 -0.250 -0.917\n" +"v -1.250 -0.250 -0.583\n" +"v -0.917 -0.250 -0.583\n" +"v -0.583 -0.250 -0.583\n" +"v -0.250 -0.250 -0.583\n" +"v -1.250 0.000 -0.250\n" +"v -0.917 -0.250 -0.250\n" +"v -0.583 -0.250 -0.250\n" +"v -0.250 0.000 -0.250\n" +"\n" +"vt 0.000 0.000\n" +"vt 0.133 0.000\n" +"vt 0.267 0.000\n" +"vt 0.400 0.000\n" +"vt 0.000 0.133\n" +"vt 0.133 0.133\n" +"vt 0.267 0.133\n" +"vt 0.400 0.133\n" +"vt 0.000 0.267\n" +"vt 0.133 0.267\n" +"vt 0.267 0.267\n" +"vt 0.400 0.267\n" +"vt 0.000 0.400\n" +"vt 0.133 0.400\n" +"vt 0.267 0.400\n" +"vt 0.400 0.400\n" +"\n" +"f 33/33 34/34 38/38 37/37 \n" +"f 34/34 35/35 39/39 38/38 \n" +"f 35/35 36/36 40/40 39/39 \n" +"f 37/37 38/38 42/42 41/41 \n" +"f 38/38 39/39 43/43 42/42 \n" +"f 39/39 40/40 44/44 43/43 \n" +"f 41/41 42/42 46/46 45/45 \n" +"f 42/42 43/43 47/47 46/46 \n" +"f 43/43 44/44 48/48 47/47 \n" +"\n" +"#\n" +"# Shape 4: bottom-right\n" +"#\n" +"v 0.250 0.000 -1.250\n" +"v 1.250 0.000 -1.250\n" +"v 0.250 0.000 -0.250\n" +"v 1.250 0.000 -0.250\n" +"\n" +"vt 0.600 0.000\n" +"vt 1.000 0.000\n" +"vt 0.600 0.400\n" +"vt 1.000 0.400\n" +"\n" +"f 49/49 50/50 52/52 51/51 \n" +"\n" ; diff --git a/regression/shapes/catmark_edgeonly.h b/regression/shapes/catmark_edgeonly.h index 19e8716a..c82230d5 100644 --- a/regression/shapes/catmark_edgeonly.h +++ b/regression/shapes/catmark_edgeonly.h @@ -23,33 +23,143 @@ // static const std::string catmark_edgeonly = -"# This file uses centimeters as units for non-parametric coordinates.\n" -"\n" -"v -0.5 0 0.1\n" -"v 0.5 0 0.1\n" -"v 0.5 0 1.1\n" -"v -0.5 0 1.1\n" -"v -1.1 0 -1.1\n" -"v -0.1 0 -1.1\n" -"v -0.1 0 -0.1\n" -"v -1.1 0 -0.1\n" -"v 0.1 0 -1.1\n" -"v 1.1 0 -1.1\n" -"v 1.1 0 -0.1\n" -"v 0.1 0 -0.1\n" -"vt 0.0 0.0\n" -"vt 1.0 0.0\n" -"vt 1.0 1.0\n" -"vt 0.0 1.0\n" -"f 1/1 2/2 3/3 4/4\n" -"f 5/1 6/2 7/3 8/4\n" -"f 9/1 10/2 11/3 12/4\n" -"t corner 1/1/0 4 10\n" -"t corner 1/1/0 6 10\n" -"t corner 1/1/0 8 10\n" -"t corner 1/1/0 9 10\n" -"t corner 1/1/0 10 10\n" -"t corner 1/1/0 11 10\n" +"#\n" +"# Test cases for BoundaryInterpolation option \"edge only\":\n" +"#\n" "t interpolateboundary 1/0/0 2\n" "\n" +"#\n" +"# Shape 1: top-left\n" +"#\n" +"v -1.250 0.000 0.250\n" +"v -0.917 0.000 0.250\n" +"v -0.583 0.000 0.250\n" +"v -0.250 0.000 0.250\n" +"v -1.250 0.000 0.583\n" +"v -0.917 0.000 0.583\n" +"v -0.583 0.000 0.583\n" +"v -0.250 0.000 0.583\n" +"v -1.250 0.000 0.917\n" +"v -0.917 0.000 0.917\n" +"v -0.583 0.000 0.917\n" +"v -0.250 0.000 0.917\n" +"v -1.250 0.000 1.250\n" +"v -0.917 0.000 1.250\n" +"v -0.583 0.000 1.250\n" +"v -0.250 0.000 1.250\n" +"\n" +"vt 0.000 0.600\n" +"vt 0.133 0.600\n" +"vt 0.267 0.600\n" +"vt 0.400 0.600\n" +"vt 0.000 0.733\n" +"vt 0.133 0.733\n" +"vt 0.267 0.733\n" +"vt 0.400 0.733\n" +"vt 0.000 0.867\n" +"vt 0.133 0.867\n" +"vt 0.267 0.867\n" +"vt 0.400 0.867\n" +"vt 0.000 1.000\n" +"vt 0.133 1.000\n" +"vt 0.267 1.000\n" +"vt 0.400 1.000\n" +"\n" +"f 1/1 2/2 6/6 5/5 \n" +"f 2/2 3/3 7/7 6/6 \n" +"f 3/3 4/4 8/8 7/7 \n" +"f 5/5 6/6 10/10 9/9 \n" +"f 6/6 7/7 11/11 10/10 \n" +"f 7/7 8/8 12/12 11/11 \n" +"f 9/9 10/10 14/14 13/13 \n" +"f 10/10 11/11 15/15 14/14 \n" +"f 11/11 12/12 16/16 15/15 \n" +"\n" +"#\n" +"# Shape 2: top-right\n" +"#\n" +"v 0.250 0.000 0.250\n" +"v 0.583 -0.250 0.250\n" +"v 0.917 -0.250 0.250\n" +"v 1.250 0.000 0.250\n" +"v 0.250 0.000 0.583\n" +"v 0.583 -0.250 0.583\n" +"v 0.917 -0.250 0.583\n" +"v 1.250 0.000 0.583\n" +"v 0.250 0.000 0.917\n" +"v 0.583 -0.250 0.917\n" +"v 0.917 -0.250 0.917\n" +"v 1.250 0.000 0.917\n" +"v 0.250 0.000 1.250\n" +"v 0.583 -0.250 1.250\n" +"v 0.917 -0.250 1.250\n" +"v 1.250 0.000 1.250\n" +"\n" +"vt 0.600 0.600\n" +"vt 0.733 0.600\n" +"vt 0.867 0.600\n" +"vt 1.000 0.600\n" +"vt 0.600 0.733\n" +"vt 0.733 0.733\n" +"vt 0.867 0.733\n" +"vt 1.000 0.733\n" +"vt 0.600 0.867\n" +"vt 0.733 0.867\n" +"vt 0.867 0.867\n" +"vt 1.000 0.867\n" +"vt 0.600 1.000\n" +"vt 0.733 1.000\n" +"vt 0.867 1.000\n" +"vt 1.000 1.000\n" +"\n" +"f 17/17 18/18 22/22 21/21 \n" +"f 18/18 19/19 23/23 22/22 \n" +"f 19/19 20/20 24/24 23/23 \n" +"f 21/21 22/22 26/26 25/25 \n" +"f 22/22 23/23 27/27 26/26 \n" +"f 23/23 24/24 28/28 27/27 \n" +"f 25/25 26/26 30/30 29/29 \n" +"f 26/26 27/27 31/31 30/30 \n" +"f 27/27 28/28 32/32 31/31 \n" +"\n" +"# corner tags:\n" +"t corner 1/1/0 16 10.0\n" +"t corner 1/1/0 19 10.0\n" +"\n" +"#\n" +"# Shape 3: bottom-left\n" +"#\n" +"v -1.250 0.000 -1.250\n" +"v -0.250 0.000 -1.250\n" +"v -1.250 0.000 -0.250\n" +"v -0.250 0.000 -0.250\n" +"\n" +"vt 0.000 0.000\n" +"vt 0.400 0.000\n" +"vt 0.000 0.400\n" +"vt 0.400 0.400\n" +"\n" +"f 33/33 34/34 36/36 35/35 \n" +"\n" +"#\n" +"# Shape 4: bottom-right\n" +"#\n" +"v 0.250 0.000 -1.250\n" +"v 1.250 0.000 -1.250\n" +"v 0.250 0.000 -0.250\n" +"v 1.250 0.000 -0.250\n" +"\n" +"vt 0.600 0.000\n" +"vt 1.000 0.000\n" +"vt 0.600 0.400\n" +"vt 1.000 0.400\n" +"\n" +"f 37/37 38/38 40/40 39/39 \n" +"\n" +"# corner tags:\n" +"t corner 1/1/0 36 10.0\n" +"t corner 1/1/0 37 10.0\n" +"t corner 1/1/0 38 2.0\n" +"t corner 1/1/0 39 2.0\n" +"\n" ; diff --git a/regression/shapes/loop_triangle_edgecorner.h b/regression/shapes/loop_triangle_edgecorner.h index ae60f7cb..32742850 100644 --- a/regression/shapes/loop_triangle_edgecorner.h +++ b/regression/shapes/loop_triangle_edgecorner.h @@ -23,16 +23,178 @@ // static const std::string loop_triangle_edgecorner = -"v 0 0 0.866\n" -"v -1 0 -0.866\n" -"v 1 0 -0.866\n" -"\n" -"vt 0.5 0.866\n" -"vt 0.0 0.0\n" -"vt 1.0 0.0\n" -"\n" -"f 1/1 2/2 3/3\n" -"\n" +"#\n" +"# Test cases for BoundaryInterpolation option \"edge and corner\":\n" +"#\n" "t interpolateboundary 1/0/0 1\n" "\n" +"#\n" +"# Shape 1: top-left\n" +"#\n" +"v -1.250 0.000 0.250\n" +"v -1.000 0.000 0.250\n" +"v -0.750 0.000 0.250\n" +"v -0.500 0.000 0.250\n" +"v -0.250 0.000 0.250\n" +"v -1.125 0.000 0.500\n" +"v -0.875 0.000 0.500\n" +"v -0.625 0.000 0.500\n" +"v -0.375 0.000 0.500\n" +"v -1.000 0.000 0.750\n" +"v -0.750 0.000 0.750\n" +"v -0.500 0.000 0.750\n" +"v -0.875 0.000 1.000\n" +"v -0.625 0.000 1.000\n" +"v -0.750 0.000 1.250\n" +"\n" +"vt 0.000 0.600\n" +"vt 0.100 0.600\n" +"vt 0.200 0.600\n" +"vt 0.300 0.600\n" +"vt 0.400 0.600\n" +"vt 0.050 0.700\n" +"vt 0.150 0.700\n" +"vt 0.250 0.700\n" +"vt 0.350 0.700\n" +"vt 0.100 0.800\n" +"vt 0.200 0.800\n" +"vt 0.300 0.800\n" +"vt 0.150 0.900\n" +"vt 0.250 0.900\n" +"vt 0.200 1.000\n" +"\n" +"f 1/1 2/2 6/6 \n" +"f 2/2 3/3 7/7 \n" +"f 3/3 4/4 8/8 \n" +"f 4/4 5/5 9/9 \n" +"f 2/2 7/7 6/6 \n" +"f 3/3 8/8 7/7 \n" +"f 4/4 9/9 8/8 \n" +"f 6/6 7/7 10/10 \n" +"f 7/7 8/8 11/11 \n" +"f 8/8 9/9 12/12 \n" +"f 7/7 11/11 10/10 \n" +"f 8/8 12/12 11/11 \n" +"f 10/10 11/11 13/13 \n" +"f 11/11 12/12 14/14 \n" +"f 11/11 14/14 13/13 \n" +"f 13/13 14/14 15/15 \n" +"\n" +"#\n" +"# Shape 2: top-right\n" +"#\n" +"v 0.250 0.000 0.250\n" +"v 0.500 0.000 0.250\n" +"v 0.750 -0.250 0.250\n" +"v 1.000 0.000 0.250\n" +"v 1.250 0.000 0.250\n" +"v 0.375 0.000 0.500\n" +"v 0.625 -0.250 0.500\n" +"v 0.875 -0.250 0.500\n" +"v 1.125 0.000 0.500\n" +"v 0.500 -0.250 0.750\n" +"v 0.750 -0.250 0.750\n" +"v 1.000 -0.250 0.750\n" +"v 0.625 0.000 1.000\n" +"v 0.875 0.000 1.000\n" +"v 0.750 0.000 1.250\n" +"\n" +"vt 0.600 0.600\n" +"vt 0.700 0.600\n" +"vt 0.800 0.600\n" +"vt 0.900 0.600\n" +"vt 1.000 0.600\n" +"vt 0.650 0.700\n" +"vt 0.750 0.700\n" +"vt 0.850 0.700\n" +"vt 0.950 0.700\n" +"vt 0.700 0.800\n" +"vt 0.800 0.800\n" +"vt 0.900 0.800\n" +"vt 0.750 0.900\n" +"vt 0.850 0.900\n" +"vt 0.800 1.000\n" +"\n" +"f 16/16 17/17 21/21 \n" +"f 17/17 18/18 22/22 \n" +"f 18/18 19/19 23/23 \n" +"f 19/19 20/20 24/24 \n" +"f 17/17 22/22 21/21 \n" +"f 18/18 23/23 22/22 \n" +"f 19/19 24/24 23/23 \n" +"f 21/21 22/22 25/25 \n" +"f 22/22 23/23 26/26 \n" +"f 23/23 24/24 27/27 \n" +"f 22/22 26/26 25/25 \n" +"f 23/23 27/27 26/26 \n" +"f 25/25 26/26 28/28 \n" +"f 26/26 27/27 29/29 \n" +"f 26/26 29/29 28/28 \n" +"f 28/28 29/29 30/30 \n" +"\n" +"#\n" +"# Shape 3: bottom-left\n" +"#\n" +"v -1.250 0.000 -1.250\n" +"v -1.000 -0.250 -1.250\n" +"v -0.750 -0.250 -1.250\n" +"v -0.500 -0.250 -1.250\n" +"v -0.250 0.000 -1.250\n" +"v -1.125 -0.250 -1.000\n" +"v -0.875 0.000 -1.000\n" +"v -0.625 0.000 -1.000\n" +"v -0.375 -0.250 -1.000\n" +"v -1.000 -0.250 -0.750\n" +"v -0.750 0.000 -0.750\n" +"v -0.500 -0.250 -0.750\n" +"v -0.875 -0.250 -0.500\n" +"v -0.625 -0.250 -0.500\n" +"v -0.750 0.000 -0.250\n" +"\n" +"vt 0.000 0.000\n" +"vt 0.100 0.000\n" +"vt 0.200 0.000\n" +"vt 0.300 0.000\n" +"vt 0.400 0.000\n" +"vt 0.050 0.100\n" +"vt 0.150 0.100\n" +"vt 0.250 0.100\n" +"vt 0.350 0.100\n" +"vt 0.100 0.200\n" +"vt 0.200 0.200\n" +"vt 0.300 0.200\n" +"vt 0.150 0.300\n" +"vt 0.250 0.300\n" +"vt 0.200 0.400\n" +"\n" +"f 31/31 32/32 36/36 \n" +"f 32/32 33/33 37/37 \n" +"f 33/33 34/34 38/38 \n" +"f 34/34 35/35 39/39 \n" +"f 32/32 37/37 36/36 \n" +"f 33/33 38/38 37/37 \n" +"f 34/34 39/39 38/38 \n" +"f 36/36 37/37 40/40 \n" +"f 37/37 38/38 41/41 \n" +"f 38/38 39/39 42/42 \n" +"f 37/37 41/41 40/40 \n" +"f 38/38 42/42 41/41 \n" +"f 40/40 41/41 43/43 \n" +"f 41/41 42/42 44/44 \n" +"f 41/41 44/44 43/43 \n" +"f 43/43 44/44 45/45 \n" +"\n" +"#\n" +"# Shape 4: bottom-right\n" +"#\n" +"v 0.250 0.000 -1.250\n" +"v 1.250 0.000 -1.250\n" +"v 0.750 0.000 -0.250\n" +"\n" +"vt 0.600 0.000\n" +"vt 1.000 0.000\n" +"vt 0.800 0.400\n" +"\n" +"f 46/46 47/47 48/48 \n" +"\n" ; diff --git a/regression/shapes/loop_triangle_edgeonly.h b/regression/shapes/loop_triangle_edgeonly.h index c49e7c1e..301b1911 100644 --- a/regression/shapes/loop_triangle_edgeonly.h +++ b/regression/shapes/loop_triangle_edgeonly.h @@ -23,39 +23,146 @@ // static const std::string loop_triangle_edgeonly = -"v 0.0 0.0 0.966\n" -"v -0.5 0.0 0.1\n" -"v 0.5 0.0 0.1\n" -"\n" -"v -0.6 0.0 -0.234\n" -"v -1.1 0.0 -1.1\n" -"v -0.1 0.0 -1.1\n" -"\n" -"v 0.6 0.0 -0.234\n" -"v 0.1 0.0 -1.1\n" -"v 1.1 0.0 -1.1\n" -"\n" -"vt 0.5 0.933\n" -"vt 0.25 0.5\n" -"vt 0.75 0.5\n" -"vt 0.25 0.433\n" -"vt 0.0 0.0\n" -"vt 0.5 0.0\n" -"vt 0.75 0.433\n" -"vt 0.5 0.0\n" -"vt 1.0 0.0\n" -"\n" -"f 1/1 2/2 3/3\n" -"f 4/4 5/5 6/6\n" -"f 7/7 8/8 9/9\n" -"\n" -"t corner 1/1/0 4 10.0\n" -"t corner 1/1/0 5 10.0\n" -"\n" -"t corner 1/1/0 6 10.0\n" -"t corner 1/1/0 7 10.0\n" -"t corner 1/1/0 8 10.0\n" -"\n" +"#\n" +"# Test cases for BoundaryInterpolation option \"edge only\":\n" +"#\n" "t interpolateboundary 1/0/0 2\n" "\n" +"#\n" +"# Shape 1: top-left\n" +"#\n" +"v -1.250 0.000 0.250\n" +"v -1.000 0.000 0.250\n" +"v -0.750 0.000 0.250\n" +"v -0.500 0.000 0.250\n" +"v -0.250 0.000 0.250\n" +"v -1.125 0.000 0.500\n" +"v -0.875 0.000 0.500\n" +"v -0.625 0.000 0.500\n" +"v -0.375 0.000 0.500\n" +"v -1.000 0.000 0.750\n" +"v -0.750 0.000 0.750\n" +"v -0.500 0.000 0.750\n" +"v -0.875 0.000 1.000\n" +"v -0.625 0.000 1.000\n" +"v -0.750 0.000 1.250\n" +"\n" +"vt 0.000 0.600\n" +"vt 0.100 0.600\n" +"vt 0.200 0.600\n" +"vt 0.300 0.600\n" +"vt 0.400 0.600\n" +"vt 0.050 0.700\n" +"vt 0.150 0.700\n" +"vt 0.250 0.700\n" +"vt 0.350 0.700\n" +"vt 0.100 0.800\n" +"vt 0.200 0.800\n" +"vt 0.300 0.800\n" +"vt 0.150 0.900\n" +"vt 0.250 0.900\n" +"vt 0.200 1.000\n" +"\n" +"f 1/1 2/2 6/6 \n" +"f 2/2 3/3 7/7 \n" +"f 3/3 4/4 8/8 \n" +"f 4/4 5/5 9/9 \n" +"f 2/2 7/7 6/6 \n" +"f 3/3 8/8 7/7 \n" +"f 4/4 9/9 8/8 \n" +"f 6/6 7/7 10/10 \n" +"f 7/7 8/8 11/11 \n" +"f 8/8 9/9 12/12 \n" +"f 7/7 11/11 10/10 \n" +"f 8/8 12/12 11/11 \n" +"f 10/10 11/11 13/13 \n" +"f 11/11 12/12 14/14 \n" +"f 11/11 14/14 13/13 \n" +"f 13/13 14/14 15/15 \n" +"\n" +"#\n" +"# Shape 2: top-right\n" +"#\n" +"v 0.250 0.000 0.250\n" +"v 0.500 0.000 0.250\n" +"v 0.750 -0.250 0.250\n" +"v 1.000 0.000 0.250\n" +"v 1.250 0.000 0.250\n" +"v 0.375 0.000 0.500\n" +"v 0.625 -0.250 0.500\n" +"v 0.875 -0.250 0.500\n" +"v 1.125 0.000 0.500\n" +"v 0.500 -0.250 0.750\n" +"v 0.750 -0.250 0.750\n" +"v 1.000 -0.250 0.750\n" +"v 0.625 0.000 1.000\n" +"v 0.875 0.000 1.000\n" +"v 0.750 0.000 1.250\n" +"\n" +"vt 0.600 0.600\n" +"vt 0.700 0.600\n" +"vt 0.800 0.600\n" +"vt 0.900 0.600\n" +"vt 1.000 0.600\n" +"vt 0.650 0.700\n" +"vt 0.750 0.700\n" +"vt 0.850 0.700\n" +"vt 0.950 0.700\n" +"vt 0.700 0.800\n" +"vt 0.800 0.800\n" +"vt 0.900 0.800\n" +"vt 0.750 0.900\n" +"vt 0.850 0.900\n" +"vt 0.800 1.000\n" +"\n" +"f 16/16 17/17 21/21 \n" +"f 17/17 18/18 22/22 \n" +"f 18/18 19/19 23/23 \n" +"f 19/19 20/20 24/24 \n" +"f 17/17 22/22 21/21 \n" +"f 18/18 23/23 22/22 \n" +"f 19/19 24/24 23/23 \n" +"f 21/21 22/22 25/25 \n" +"f 22/22 23/23 26/26 \n" +"f 23/23 24/24 27/27 \n" +"f 22/22 26/26 25/25 \n" +"f 23/23 27/27 26/26 \n" +"f 25/25 26/26 28/28 \n" +"f 26/26 27/27 29/29 \n" +"f 26/26 29/29 28/28 \n" +"f 28/28 29/29 30/30 \n" +"\n" +"t corner 1/1/0 15 10.0\n" +"t corner 1/1/0 19 10.0\n" +"\n" +"#\n" +"# Shape 3: bottom-left\n" +"#\n" +"v -1.250 0.000 -1.250\n" +"v -0.250 0.000 -1.250\n" +"v -0.750 0.000 -0.250\n" +"\n" +"vt 0.000 0.000\n" +"vt 0.400 0.000\n" +"vt 0.200 0.400\n" +"\n" +"f 31/31 32/32 33/33 \n" +"\n" +"#\n" +"# Shape 4: bottom-right\n" +"#\n" +"v 0.250 0.000 -1.250\n" +"v 1.250 0.000 -1.250\n" +"v 0.750 0.000 -0.250\n" +"\n" +"vt 0.600 0.000\n" +"vt 1.000 0.000\n" +"vt 0.800 0.400\n" +"\n" +"f 34/34 35/35 36/36 \n" +"\n" +"t corner 1/1/0 33 2.0\n" +"t corner 1/1/0 34 2.0\n" +"t corner 1/1/0 35 10.0\n" +"\n" ;