Added new Catmark shapes:

- added cases for x-ord boundaries and interior to match Loop
    - added cases for valence-2 interior and non-quad faces
    - updated all.h for the new additions
This commit is contained in:
barry 2019-05-08 13:10:33 -07:00
parent 04384499a1
commit 33ff2ec2f5
5 changed files with 1080 additions and 0 deletions

View File

@ -78,6 +78,7 @@
#include "catmark_nonman_quadpole64.h"
#include "catmark_nonman_quadpole360.h"
#include "catmark_nonman_bareverts.h"
#include "catmark_nonquads.h"
#include "catmark_pawn.h"
#include "catmark_pyramid_creases0.h"
#include "catmark_pyramid_creases1.h"
@ -101,6 +102,9 @@
#include "catmark_torus.h"
#include "catmark_torus_creases0.h"
#include "catmark_torus_creases1.h"
#include "catmark_val2_interior.h"
#include "catmark_xord_interior.h"
#include "catmark_xord_boundary.h"
#include "bilinear_cube.h"
#include "bilinear_nonplanar.h"

View File

@ -0,0 +1,137 @@
//
// Copyright 2019 DreamWorks Animation LLC.
//
// Licensed under the Apache License, Version 2.0 (the "Apache License")
// with the following modification; you may not use this file except in
// compliance with the Apache License and the following modification to it:
// Section 6. Trademarks. is deleted and replaced with:
//
// 6. Trademarks. This License does not grant permission to use the trade
// names, trademarks, service marks, or product names of the Licensor
// and its affiliates, except as required to comply with Section 4(c) of
// the License and to reproduce the content of the NOTICE file.
//
// You may obtain a copy of the Apache License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the Apache License with the above modification is
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the Apache License for the specific
// language governing permissions and limitations under the Apache License.
//
static const std::string catmark_nonquads =
"#\n"
"# Four shapes ordered left->right and top->bottom in the XZ plane\n"
"#\n"
"# Shape 1: top-left\n"
"#\n"
"v -1.25 0 0.25\n"
"v -0.25 0 0.25\n"
"v -0.75 0 1.25\n"
"\n"
"vt 0.05 0.55\n"
"vt 0.45 0.55\n"
"vt 0.25 0.95\n"
"\n"
"f 1/1 2/2 3/3\n"
"\n"
"#\n"
"# Shape 2: top-right\n"
"#\n"
"v 0.44 0 0.25\n"
"v 1.06 0 0.25\n"
"v 1.25 -0.3 0.87\n"
"v 0.75 0 1.25\n"
"v 0.25 -0.3 0.87\n"
"\n"
"vt 0.60 0.53\n"
"vt 0.87 0.53\n"
"vt 0.99 0.79\n"
"vt 0.75 0.97\n"
"vt 0.51 0.79\n"
"\n"
"f 4/4 5/5 6/6 7/7 8/8\n"
"\n"
"#\n"
"# Shape 3: bottom-left\n"
"#\n"
"v -0.75 -0.5 -0.75\n"
"v -1.25 0 -1.25\n"
"v -0.25 0 -1.25\n"
"v -0.25 0 -0.25\n"
"v -1.25 0 -0.25\n"
"\n"
"vt 0.25 0.25\n"
"vt 0.05 0.05\n"
"vt 0.45 0.05\n"
"vt 0.45 0.45\n"
"vt 0.05 0.45\n"
"\n"
"f 9/9 10/10 11/11\n"
"f 9/9 11/11 12/12\n"
"f 9/9 12/12 13/13\n"
"f 9/9 13/13 10/10\n"
"\n"
"#\n"
"# Shape 4: bottom-right\n"
"#\n"
"v 1.075 0.0 -1.20\n"
"v 0.675 0.0 -1.20\n"
"v 0.875 0.0 -1.35\n"
"v 1.025 0.15 -1.00\n"
"v 1.025 0.0 -0.30\n"
"v 0.425 0.0 -1.20\n"
"v 0.425 0.0 -1.00\n"
"v 0.675 0.0 -1.00\n"
"v 0.675 0.15 -0.85\n"
"v 0.425 0.15 -0.85\n"
"v 0.675 0.0 -0.50\n"
"v 0.425 0.0 -0.50\n"
"v 0.875 0.15 -0.85\n"
"v 0.675 0.0 -0.30\n"
"v 0.425 0.0 -0.30\n"
"v 0.875 0.0 -0.15\n"
"v 0.675 0.15 -0.65\n"
"v 1.075 0.15 -0.50\n"
"v 0.875 0.15 -0.65\n"
"v 0.425 0.15 -0.65\n"
"\n"
"vt 0.90 0.1\n"
"vt 0.70 0.1\n"
"vt 0.80 0.05\n"
"vt 0.90 0.17\n"
"vt 0.90 0.4\n"
"vt 0.58 0.1\n"
"vt 0.58 0.17\n"
"vt 0.70 0.17\n"
"vt 0.70 0.22\n"
"vt 0.58 0.22\n"
"vt 0.70 0.33\n"
"vt 0.58 0.33\n"
"vt 0.80 0.22\n"
"vt 0.70 0.4\n"
"vt 0.58 0.4\n"
"vt 0.80 0.45\n"
"vt 0.70 0.28\n"
"vt 0.90 0.33\n"
"vt 0.80 0.28\n"
"vt 0.58 0.28\n"
"\n"
"f 26/26 22/22 21/21\n"
"f 24/24 30/30 32/32\n"
"f 24/24 25/25 33/33 30/30\n"
"f 20/20 19/19 15/15 21/21\n"
"f 22/22 23/23 20/20 21/21\n"
"f 27/27 28/28 25/25 24/24\n"
"f 31/31 18/18 29/29 27/27 24/24 32/32\n"
"f 15/15 16/16 14/14 17/17 26/26 21/21\n"
"f 17/17 31/31 32/32 26/26\n"
"f 30/30 33/33 23/23 22/22\n"
"f 32/32 30/30 22/22 26/26\n"
"\n"
"t interpolateboundary 1/0/0 1\n"
"\n"
;

View File

@ -0,0 +1,322 @@
//
// Copyright 2019 DreamWorks Animation LLC.
//
// Licensed under the Apache License, Version 2.0 (the "Apache License")
// with the following modification; you may not use this file except in
// compliance with the Apache License and the following modification to it:
// Section 6. Trademarks. is deleted and replaced with:
//
// 6. Trademarks. This License does not grant permission to use the trade
// names, trademarks, service marks, or product names of the Licensor
// and its affiliates, except as required to comply with Section 4(c) of
// the License and to reproduce the content of the NOTICE file.
//
// You may obtain a copy of the Apache License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the Apache License with the above modification is
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the Apache License for the specific
// language governing permissions and limitations under the Apache License.
//
static const std::string catmark_val2_interior =
"#\n"
"# Nine shapes ordered left->right and top->bottom in the XZ plane\n"
"#\n"
"# Shape 1: top-left\n"
"#\n"
"v -1.75 0.0 0.75\n"
"v -1.42 0.0 0.75\n"
"v -1.08 0.0 0.75\n"
"v -0.75 0.0 0.75\n"
"v -0.75 0.0 1.08\n"
"v -0.75 0.0 1.42\n"
"v -0.75 0.0 1.75\n"
"v -1.08 0.0 1.75\n"
"v -1.42 0.0 1.75\n"
"v -1.75 0.0 1.75\n"
"v -1.75 0.0 1.42\n"
"v -1.75 0.0 1.08\n"
"v -1.42 0.0 1.08\n"
"v -1.08 0.0 1.08\n"
"v -1.08 0.0 1.42\n"
"v -1.42 0.0 1.42\n"
"v -1.25 -0.5 1.25\n"
"\n"
"vt -0.5 -0.5\n"
"vt -0.17 -0.5\n"
"vt 0.17 -0.5\n"
"vt 0.5 -0.5\n"
"vt 0.5 -0.17\n"
"vt 0.5 0.17\n"
"vt 0.5 0.5\n"
"vt 0.17 0.5\n"
"vt -0.17 0.5\n"
"vt -0.5 0.5\n"
"vt -0.5 0.17\n"
"vt -0.5 -0.17\n"
"vt -0.17 -0.17\n"
"vt 0.17 -0.17\n"
"vt 0.17 0.17\n"
"vt -0.17 0.17\n"
"vt 0.0 0.0 \n"
"\n"
"f 1/1 2/2 13/13 12/12\n"
"f 2/2 3/3 14/14 13/13\n"
"f 3/3 4/4 5/5 14/14\n"
"f 14/14 5/5 6/6 15/15\n"
"f 15/15 6/6 7/7 8/8\n"
"f 16/16 15/15 8/8 9/9\n"
"f 11/11 16/16 9/9 10/10\n"
"f 12/12 13/13 16/16 11/11\n"
"f 13/13 14/14 15/15 17/17\n"
"f 13/13 17/17 15/15 16/16\n"
"\n"
"#\n"
"# Shape 2: top-middle\n"
"#\n"
"v 0.0 -0.5 1.25\n"
"v 0.25 0.0 1.5\n"
"v -0.25 0.0 1.5\n"
"v -0.25 0.0 1.0\n"
"v 0.25 0.0 1.0\n"
"v 0.5 0.0 1.75\n"
"v -0.25 0.0 1.75\n"
"v -0.5 0.0 1.75\n"
"v -0.5 0.0 1.5\n"
"v -0.5 0.0 0.75\n"
"v 0.25 0.0 0.75\n"
"v 0.5 0.0 0.75\n"
"v 0.5 0.0 1.0\n"
"\n"
"vt 0 0\n"
"vt 0.25 0.25\n"
"vt -0.25 0.25\n"
"vt -0.25 -0.25\n"
"vt 0.25 -0.25\n"
"vt 0.5 0.5\n"
"vt -0.25 0.5\n"
"vt -0.5 0.5\n"
"vt -0.5 0.25\n"
"vt -0.5 -0.5\n"
"vt 0.25 -0.5\n"
"vt 0.5 -0.5\n"
"vt 0.5 -0.25\n"
"\n"
"f 18/18 19/19 20/20 21/21\n"
"f 18/18 21/21 22/22 19/19\n"
"f 19/19 23/23 24/24 20/20\n"
"f 20/20 24/24 25/25 26/26\n"
"f 20/20 26/26 27/27 21/21\n"
"f 21/21 27/27 28/28 22/22\n"
"f 22/22 28/28 29/29 30/30\n"
"f 22/22 30/30 23/23 19/19\n"
"\n"
"#\n"
"# Shape 3: top-right\n"
"#\n"
"v 1.25 -0.5 1.25\n"
"v 1.50 0.0 1.5 \n"
"v 1.0 0.0 1.5 \n"
"v 1.0 0.0 1.0 \n"
"v 1.5 0.0 1.0 \n"
"v 1.75 0.0 1.75\n"
"v 1.0 0.0 1.75\n"
"v 0.75 0.0 1.75\n"
"v 0.75 0.0 1.5 \n"
"v 0.75 0.0 0.75\n"
"v 1.5 0.0 0.75\n"
"v 1.75 0.0 0.75\n"
"v 1.75 0.0 1.0 \n"
"\n"
"vt 0 0\n"
"vt 0.25 0.25\n"
"vt -0.25 0.25\n"
"vt -0.25 -0.25\n"
"vt 0.25 -0.25\n"
"vt 0.5 0.5\n"
"vt -0.25 0.5\n"
"vt -0.5 0.5\n"
"vt -0.5 0.25\n"
"vt -0.5 -0.5\n"
"vt 0.25 -0.5\n"
"vt 0.5 -0.5\n"
"vt 0.5 -0.25\n"
"\n"
"f 31/31 32/32 33/33 34/34\n"
"f 31/31 34/34 35/35 32/32\n"
"f 32/32 36/36 37/37 33/33\n"
"f 33/33 37/37 38/38 39/39\n"
"f 33/33 39/39 40/40 34/34\n"
"f 34/34 40/40 41/41 35/35\n"
"f 35/35 41/41 42/42 43/43\n"
"f 35/35 43/43 36/36 32/32\n"
"\n"
"t crease 2/1/0 30 31 10.0\n"
"t crease 2/1/0 31 35 10.0\n"
"t crease 2/1/0 30 33 10.0\n"
"t crease 2/1/0 33 39 10.0\n"
"\n"
"#\n"
"# Shape 4: center-left\n"
"#\n"
"v -1.75 0.0 -0.5\n"
"v -1.08 0.0 -0.5\n"
"v -0.75 0.0 -0.5\n"
"v -1.42 -0.5 -0.17\n"
"v -1.75 0.0 0.17\n"
"v -1.08 0.0 0.17\n"
"v -1.75 0.0 0.5\n"
"v -0.75 0.0 0.5\n"
"\n"
"vt -1.75 -0.5\n"
"vt -1.08 -0.5\n"
"vt -0.75 -0.5\n"
"vt -1.42 -0.17\n"
"vt -1.75 0.17\n"
"vt -1.08 0.17\n"
"vt -1.75 0.5\n"
"vt -0.75 0.5\n"
"\n"
"f 44/44 45/45 49/49 47/47\n"
"f 45/45 46/46 51/51 49/49\n"
"f 44/44 47/47 49/49 48/48\n"
"f 48/48 49/49 51/51 50/50\n"
"\n"
"#\n"
"# Shape 5: center-middle\n"
"#\n"
"v -0.5 0.0 -0.5\n"
"v 0.0 0.0 -0.5\n"
"v 0.5 0.0 -0.5\n"
"v -0.5 0.0 0.0\n"
"v 0.0 0.0 0.0\n"
"v 0.5 0.0 0.0\n"
"v -0.5 0.0 0.5\n"
"v 0.0 0.0 0.5\n"
"v 0.5 0.0 0.5\n"
"v -0.1 0.1 -0.1\n"
"\n"
"vt -0.5 -0.5\n"
"vt 0.0 -0.5\n"
"vt 0.5 -0.5\n"
"vt -0.5 0.0\n"
"vt 0.0 0.0\n"
"vt 0.5 0.0\n"
"vt -0.5 0.5\n"
"vt 0.0 0.5\n"
"vt 0.5 0.5\n"
"vt -0.1 -0.1\n"
"\n"
"f 52/52 53/53 56/56 55/55\n"
"f 53/53 54/54 57/57 56/56\n"
"f 55/55 56/56 59/59 58/58\n"
"f 56/56 57/57 60/60 59/59\n"
"f 53/53 52/52 55/55 61/61\n"
"\n"
"#\n"
"# Shape 6: center-right\n"
"#\n"
"v 0.75 0.0 -0.5\n"
"v 1.75 0.0 -0.5\n"
"v 1.75 0.0 0.5\n"
"v 0.75 0.0 0.5\n"
"\n"
"vt 0.75 -0.5\n"
"vt 1.75 -0.5\n"
"vt 1.75 0.5\n"
"vt 0.75 0.5\n"
"\n"
"f 62/62 63/63 64/64 65/65\n"
"f 62/62 65/65 64/64 63/63\n"
"\n"
"#\n"
"# Shape 7: bottom-left\n"
"#\n"
"v -1.75 0.0 -1.75\n"
"v -1.25 0.0 -1.75\n"
"v -0.75 0.0 -1.75\n"
"v -1.25 -0.5 -1.25\n"
"v -1.75 0.0 -0.75\n"
"v -1.25 0.0 -0.75\n"
"v -0.75 0.0 -0.75\n"
"\n"
"vt -0.5 -0.5\n"
"vt 0.0 -0.5\n"
"vt 0.5 -0.5\n"
"vt 0.0 0.0\n"
"vt -0.5 0.5\n"
"vt 0.0 0.5\n"
"vt 0.5 0.5\n"
"\n"
"f 66/66 67/67 69/69 71/71 70/70\n"
"f 67/67 68/68 72/72 71/71 69/69\n"
"\n"
"#\n"
"# Shape 8: bottom-middle\n"
"#\n"
"v -0.5 0.0 -1.75\n"
"v 0.0 0.0 -1.75\n"
"v 0.0 -0.5 -1.75\n"
"v 0.5 0.0 -1.75\n"
"v -0.5 0.0 -0.75\n"
"v 0.0 0.0 -0.75\n"
"v 0.0 -0.5 -0.75\n"
"v 0.5 0.0 -0.75\n"
"\n"
"vt -0.5 -0.5\n"
"vt 0.0 -0.5\n"
"vt 0.0 -0.5\n"
"vt 0.5 -0.5\n"
"vt -0.5 0.5\n"
"vt 0.0 0.5\n"
"vt 0.0 0.5\n"
"vt 0.5 0.5\n"
"\n"
"f 73/73 74/74 75/75 79/79 78/78 77/77\n"
"f 80/80 78/78 79/79 75/75 74/74 76/76\n"
"\n"
"#\n"
"# Shape 9: bottom-right\n"
"#\n"
"v 1.75 -0.5 -0.75\n"
"v 1.25 -1.0 -0.75\n"
"v 0.75 -0.5 -0.75\n"
"v 1.75 -0.5 -1.75\n"
"v 0.75 -0.5 -1.75\n"
"v 1.75 0.5 -1.75\n"
"v 0.75 0.5 -1.75\n"
"v 1.75 0.5 -0.75\n"
"v 0.75 0.5 -0.75\n"
"\n"
"vt 0.375 0.000\n"
"vt 0.500 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.500 0.750\n"
"vt 0.625 0.750\n"
"vt 0.375 1.000\n"
"vt 0.500 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"
"\n"
"f 84/84 81/81 82/82 83/83 85/85\n"
"f 86/86 84/84 85/85 87/87\n"
"f 88/88 86/86 87/87 89/89\n"
"f 82/92 81/91 88/88 89/89 83/93\n"
"f 83/83 89/94 87/95 85/85\n"
"f 88/96 81/81 84/84 86/97\n"
"\n"
"t interpolateboundary 1/0/0 1\n"
"\n"
;

View File

@ -0,0 +1,160 @@
//
// Copyright 2019 DreamWorks Animation LLC.
//
// Licensed under the Apache License, Version 2.0 (the "Apache License")
// with the following modification; you may not use this file except in
// compliance with the Apache License and the following modification to it:
// Section 6. Trademarks. is deleted and replaced with:
//
// 6. Trademarks. This License does not grant permission to use the trade
// names, trademarks, service marks, or product names of the Licensor
// and its affiliates, except as required to comply with Section 4(c) of
// the License and to reproduce the content of the NOTICE file.
//
// You may obtain a copy of the Apache License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the Apache License with the above modification is
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the Apache License for the specific
// language governing permissions and limitations under the Apache License.
//
static const std::string catmark_xord_boundary =
"#\n"
"# Four shapes ordered left->right and top->bottom in the XZ plane\n"
"#\n"
"# Shape 1: top-left\n"
"#\n"
"v -0.750000 -0.480000 0.750000\n"
"v -0.230385 0.000000 0.750000\n"
"v -0.230385 0.000000 1.050000\n"
"v -0.490192 0.000000 1.200000\n"
"v -0.750000 0.000000 1.350000\n"
"v -1.009808 0.000000 1.200000\n"
"v -1.269615 0.000000 1.050000\n"
"v -1.269615 0.000000 0.750000\n"
"\n"
"vt 0.250000 0.750000\n"
"vt 0.423205 0.750000\n"
"vt 0.423205 0.850000\n"
"vt 0.336603 0.900000\n"
"vt 0.250000 0.950000\n"
"vt 0.163397 0.900000\n"
"vt 0.076795 0.850000\n"
"vt 0.076795 0.750000\n"
"\n"
"f 1/1 2/2 3/3 4/4 \n"
"f 1/1 4/4 5/5 6/6 \n"
"f 1/1 6/6 7/7 8/8 \n"
"\n"
"#\n"
"# Shape 2: top-right\n"
"#\n"
"v 0.750000 -0.480000 0.750000\n"
"v 1.304328 0.000000 0.750000\n"
"v 1.304328 0.000000 0.979610\n"
"v 1.141969 0.000000 1.141969\n"
"v 0.979610 0.000000 1.304328\n"
"v 0.750000 0.000000 1.304328\n"
"v 0.520390 0.000000 1.304328\n"
"v 0.358031 0.000000 1.141969\n"
"v 0.195672 0.000000 0.979610\n"
"v 0.195672 0.000000 0.750000\n"
"\n"
"vt 0.750000 0.750000\n"
"vt 0.934776 0.750000\n"
"vt 0.934776 0.826537\n"
"vt 0.880656 0.880656\n"
"vt 0.826537 0.934776\n"
"vt 0.750000 0.934776\n"
"vt 0.673463 0.934776\n"
"vt 0.619344 0.880656\n"
"vt 0.565224 0.826537\n"
"vt 0.565224 0.750000\n"
"\n"
"f 9/9 10/10 11/11 12/12\n"
"f 9/9 12/12 13/13 14/14\n"
"f 9/9 14/14 15/15 16/16\n"
"f 9/9 16/16 17/17 18/18\n"
"\n"
"#\n"
"# Shape 3: bottom-left\n"
"#\n"
"v -0.750000 -0.480000 -0.750000\n"
"v -0.179366 0.000000 -0.750000\n"
"v -0.179366 0.000000 -0.564590\n"
"v -0.288347 0.000000 -0.414590\n"
"v -0.397329 0.000000 -0.264590\n"
"v -0.573664 0.000000 -0.207295\n"
"v -0.750000 0.000000 -0.150000\n"
"v -0.926336 0.000000 -0.207295\n"
"v -1.102671 0.000000 -0.264590\n"
"v -1.211653 0.000000 -0.414590\n"
"v -1.320634 0.000000 -0.564590\n"
"v -1.320634 0.000000 -0.750000\n"
"\n"
"vt 0.250000 0.250000\n"
"vt 0.440211 0.250000\n"
"vt 0.440211 0.311803\n"
"vt 0.403884 0.361803\n"
"vt 0.367557 0.411803\n"
"vt 0.308779 0.430902\n"
"vt 0.250000 0.450000\n"
"vt 0.191221 0.430902\n"
"vt 0.132443 0.411803\n"
"vt 0.096116 0.361803\n"
"vt 0.059789 0.311803\n"
"vt 0.059789 0.250000\n"
"\n"
"f 19/19 20/20 21/21 22/22\n"
"f 19/19 22/22 23/23 24/24\n"
"f 19/19 24/24 25/25 26/26\n"
"f 19/19 26/26 27/27 28/28\n"
"f 19/19 28/28 29/29 30/30\n"
"\n"
"#\n"
"# Shape 4: bottom-right\n"
"#\n"
"v 0.750000 -0.480000 -0.750000\n"
"v 1.329556 0.000000 -0.750000\n"
"v 1.329556 0.000000 -0.594709\n"
"v 1.251910 0.000000 -0.460222\n"
"v 1.174264 0.000000 -0.325736\n"
"v 1.039778 0.000000 -0.248090\n"
"v 0.905291 0.000000 -0.170444\n"
"v 0.750000 0.000000 -0.170444\n"
"v 0.594709 0.000000 -0.170444\n"
"v 0.460222 0.000000 -0.248090\n"
"v 0.325736 0.000000 -0.325736\n"
"v 0.248090 0.000000 -0.460222\n"
"v 0.170444 0.000000 -0.594709\n"
"v 0.170444 0.000000 -0.750000\n"
"\n"
"vt 0.750000 0.250000\n"
"vt 0.943185 0.250000\n"
"vt 0.943185 0.301764\n"
"vt 0.917303 0.346593\n"
"vt 0.891421 0.391421\n"
"vt 0.846593 0.417303\n"
"vt 0.801764 0.443185\n"
"vt 0.750000 0.443185\n"
"vt 0.698236 0.443185\n"
"vt 0.653407 0.417303\n"
"vt 0.608579 0.391421\n"
"vt 0.582697 0.346593\n"
"vt 0.556815 0.301764\n"
"vt 0.556815 0.250000\n"
"\n"
"f 31/31 32/32 33/33 34/34\n"
"f 31/31 34/34 35/35 36/36\n"
"f 31/31 36/36 37/37 38/38\n"
"f 31/31 38/38 39/39 40/40\n"
"f 31/31 40/40 41/41 42/42\n"
"f 31/31 42/42 43/43 44/44\n"
"\n"
"t interpolateboundary 1/0/0 1\n"
"\n"
;

View File

@ -0,0 +1,457 @@
//
// Copyright 2019 DreamWorks Animation LLC.
//
// Licensed under the Apache License, Version 2.0 (the "Apache License")
// with the following modification; you may not use this file except in
// compliance with the Apache License and the following modification to it:
// Section 6. Trademarks. is deleted and replaced with:
//
// 6. Trademarks. This License does not grant permission to use the trade
// names, trademarks, service marks, or product names of the Licensor
// and its affiliates, except as required to comply with Section 4(c) of
// the License and to reproduce the content of the NOTICE file.
//
// You may obtain a copy of the Apache License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the Apache License with the above modification is
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the Apache License for the specific
// language governing permissions and limitations under the Apache License.
//
static const std::string catmark_xord_interior =
"#\n"
"# Nine shapes ordered left->right and top->bottom in the XZ plane\n"
"#\n"
"# Shape 1: top-left\n"
"#\n"
"v -1.250000 -0.480000 1.250000\n"
"v -0.950000 0.000000 1.250000\n"
"v -0.950000 0.000000 1.769615\n"
"v -1.400000 0.000000 1.509808\n"
"v -1.850000 0.000000 1.250000\n"
"v -1.400000 0.000000 0.990192\n"
"v -0.950000 0.000000 0.730385\n"
"\n"
"vt 0.170000 0.830000\n"
"vt 0.245000 0.830000\n"
"vt 0.245000 0.959904\n"
"vt 0.132500 0.894952\n"
"vt 0.020000 0.830000\n"
"vt 0.132500 0.765048\n"
"vt 0.245000 0.700096\n"
"\n"
"f 1/1 2/2 3/3 4/4 \n"
"f 1/1 4/4 5/5 6/6 \n"
"f 1/1 6/6 7/7 2/2 \n"
"\n"
"#\n"
"# Shape 2: top-middle\n"
"#\n"
"v 0.000000 -0.480000 1.250000\n"
"v 0.485410 0.000000 1.250000\n"
"v 0.485410 0.000000 1.602671\n"
"v 0.150000 0.000000 1.711653\n"
"v -0.185410 0.000000 1.820634\n"
"v -0.392705 0.000000 1.535317\n"
"v -0.600000 0.000000 1.250000\n"
"v -0.392705 0.000000 0.964683\n"
"v -0.185410 0.000000 0.679366\n"
"v 0.150000 0.000000 0.788347\n"
"v 0.485410 0.000000 0.897329\n"
"\n"
"vt 0.500000 0.830000\n"
"vt 0.621353 0.830000\n"
"vt 0.621353 0.918168\n"
"vt 0.537500 0.945413\n"
"vt 0.453647 0.972658\n"
"vt 0.401824 0.901329\n"
"vt 0.350000 0.830000\n"
"vt 0.401824 0.758671\n"
"vt 0.453647 0.687342\n"
"vt 0.537500 0.714587\n"
"vt 0.621353 0.741832\n"
"\n"
"f 8/8 9/9 10/10 11/11\n"
"f 8/8 11/11 12/12 13/13\n"
"f 8/8 13/13 14/14 15/15\n"
"f 8/8 15/15 16/16 17/17\n"
"f 8/8 17/17 18/18 9/9 \n"
"\n"
"#\n"
"# Shape 3: top-right\n"
"#\n"
"v 1.250000 -0.480000 1.250000\n"
"v 1.769615 0.000000 1.250000\n"
"v 1.769615 0.000000 1.550000\n"
"v 1.509808 0.000000 1.700000\n"
"v 1.250000 0.000000 1.850000\n"
"v 0.990192 0.000000 1.700000\n"
"v 0.730385 0.000000 1.550000\n"
"v 0.730385 0.000000 1.250000\n"
"v 0.730385 0.000000 0.950000\n"
"v 0.990192 0.000000 0.800000\n"
"v 1.250000 0.000000 0.650000\n"
"v 1.509808 0.000000 0.800000\n"
"v 1.769615 0.000000 0.950000\n"
"\n"
"vt 0.830000 0.830000\n"
"vt 0.959904 0.830000\n"
"vt 0.959904 0.905000\n"
"vt 0.894952 0.942500\n"
"vt 0.830000 0.980000\n"
"vt 0.765048 0.942500\n"
"vt 0.700096 0.905000\n"
"vt 0.700096 0.830000\n"
"vt 0.700096 0.755000\n"
"vt 0.765048 0.717500\n"
"vt 0.830000 0.680000\n"
"vt 0.894952 0.717500\n"
"vt 0.959904 0.755000\n"
"\n"
"f 19/19 20/20 21/21 22/22\n"
"f 19/19 22/22 23/23 24/24\n"
"f 19/19 24/24 25/25 26/26\n"
"f 19/19 26/26 27/27 28/28\n"
"f 19/19 28/28 29/29 30/30\n"
"f 19/19 30/30 31/31 20/20\n"
"\n"
"#\n"
"# Shape 4: center-left\n"
"#\n"
"v -1.250000 -0.480000 0.000000\n"
"v -0.709419 0.000000 0.000000\n"
"v -0.709419 0.000000 0.260330\n"
"v -0.912953 0.000000 0.422644\n"
"v -1.116488 0.000000 0.584957\n"
"v -1.370291 0.000000 0.527028\n"
"v -1.624094 0.000000 0.469099\n"
"v -1.737047 0.000000 0.234549\n"
"v -1.850000 0.000000 -0.000000\n"
"v -1.737047 0.000000 -0.234549\n"
"v -1.624094 0.000000 -0.469099\n"
"v -1.370291 0.000000 -0.527028\n"
"v -1.116487 0.000000 -0.584957\n"
"v -0.912953 0.000000 -0.422643\n"
"v -0.709419 0.000000 -0.260330\n"
"\n"
"vt 0.170000 0.500000\n"
"vt 0.305145 0.500000\n"
"vt 0.305145 0.565083\n"
"vt 0.254262 0.605661\n"
"vt 0.203378 0.646239\n"
"vt 0.139927 0.631757\n"
"vt 0.076477 0.617275\n"
"vt 0.048238 0.558637\n"
"vt 0.020000 0.500000\n"
"vt 0.048238 0.441363\n"
"vt 0.076477 0.382725\n"
"vt 0.139927 0.368243\n"
"vt 0.203378 0.353761\n"
"vt 0.254262 0.394339\n"
"vt 0.305145 0.434918\n"
"\n"
"f 32/32 33/33 34/34 35/35\n"
"f 32/32 35/35 36/36 37/37\n"
"f 32/32 37/37 38/38 39/39\n"
"f 32/32 39/39 40/40 41/41\n"
"f 32/32 41/41 42/42 43/43\n"
"f 32/32 43/43 44/44 45/45\n"
"f 32/32 45/45 46/46 33/33\n"
"\n"
"#\n"
"# Shape 5: center-middle\n"
"#\n"
"v 0.000000 -0.480000 0.000000\n"
"v 0.554328 0.000000 0.000000\n"
"v 0.554328 0.000000 0.229610\n"
"v 0.391969 0.000000 0.391969\n"
"v 0.229610 0.000000 0.554328\n"
"v -0.000000 0.000000 0.554328\n"
"v -0.229610 0.000000 0.554328\n"
"v -0.391969 0.000000 0.391969\n"
"v -0.554328 0.000000 0.229610\n"
"v -0.554328 0.000000 -0.000000\n"
"v -0.554328 0.000000 -0.229610\n"
"v -0.391969 0.000000 -0.391969\n"
"v -0.229610 0.000000 -0.554328\n"
"v 0.000000 0.000000 -0.554328\n"
"v 0.229610 0.000000 -0.554328\n"
"v 0.391969 0.000000 -0.391969\n"
"v 0.554328 0.000000 -0.229610\n"
"\n"
"vt 0.500000 0.500000\n"
"vt 0.638582 0.500000\n"
"vt 0.638582 0.557402\n"
"vt 0.597992 0.597992\n"
"vt 0.557402 0.638582\n"
"vt 0.500000 0.638582\n"
"vt 0.442597 0.638582\n"
"vt 0.402008 0.597992\n"
"vt 0.361418 0.557403\n"
"vt 0.361418 0.500000\n"
"vt 0.361418 0.442597\n"
"vt 0.402008 0.402008\n"
"vt 0.442598 0.361418\n"
"vt 0.500000 0.361418\n"
"vt 0.557403 0.361418\n"
"vt 0.597992 0.402008\n"
"vt 0.638582 0.442598\n"
"\n"
"f 47/47 48/48 49/49 50/50\n"
"f 47/47 50/50 51/51 52/52\n"
"f 47/47 52/52 53/53 54/54\n"
"f 47/47 54/54 55/55 56/56\n"
"f 47/47 56/56 57/57 58/58\n"
"f 47/47 58/58 59/59 60/60\n"
"f 47/47 60/60 61/61 62/62\n"
"f 47/47 62/62 63/63 48/48\n"
"\n"
"#\n"
"# Shape 6: center-right\n"
"#\n"
"v 1.250000 -0.480000 0.000000\n"
"v 1.813816 0.000000 0.000000\n"
"v 1.813816 0.000000 0.205212\n"
"v 1.681908 0.000000 0.362414\n"
"v 1.550000 0.000000 0.519615\n"
"v 1.347906 0.000000 0.555250\n"
"v 1.145811 0.000000 0.590885\n"
"v 0.968092 0.000000 0.488279\n"
"v 0.790373 0.000000 0.385673\n"
"v 0.720187 0.000000 0.192836\n"
"v 0.650000 0.000000 -0.000000\n"
"v 0.720187 0.000000 -0.192836\n"
"v 0.790373 0.000000 -0.385673\n"
"v 0.968092 0.000000 -0.488279\n"
"v 1.145811 0.000000 -0.590885\n"
"v 1.347906 0.000000 -0.555250\n"
"v 1.550000 0.000000 -0.519615\n"
"v 1.681908 0.000000 -0.362414\n"
"v 1.813816 0.000000 -0.205212\n"
"\n"
"vt 0.830000 0.500000\n"
"vt 0.970954 0.500000\n"
"vt 0.970954 0.551303\n"
"vt 0.937977 0.590603\n"
"vt 0.905000 0.629904\n"
"vt 0.854476 0.638812\n"
"vt 0.803953 0.647721\n"
"vt 0.759523 0.622070\n"
"vt 0.715093 0.596418\n"
"vt 0.697547 0.548209\n"
"vt 0.680000 0.500000\n"
"vt 0.697547 0.451791\n"
"vt 0.715093 0.403582\n"
"vt 0.759523 0.377930\n"
"vt 0.803953 0.352279\n"
"vt 0.854476 0.361188\n"
"vt 0.905000 0.370096\n"
"vt 0.937977 0.409397\n"
"vt 0.970954 0.448697\n"
"\n"
"f 64/64 65/65 66/66 67/67\n"
"f 64/64 67/67 68/68 69/69\n"
"f 64/64 69/69 70/70 71/71\n"
"f 64/64 71/71 72/72 73/73\n"
"f 64/64 73/73 74/74 75/75\n"
"f 64/64 75/75 76/76 77/77\n"
"f 64/64 77/77 78/78 79/79\n"
"f 64/64 79/79 80/80 81/81\n"
"f 64/64 81/81 82/82 65/65\n"
"\n"
"#\n"
"# Shape 7: bottom-left\n"
"#\n"
"v -1.250000 -0.480000 -1.250000\n"
"v -0.679366 0.000000 -1.250000\n"
"v -0.679366 0.000000 -1.064590\n"
"v -0.788347 0.000000 -0.914590\n"
"v -0.897329 0.000000 -0.764590\n"
"v -1.073664 0.000000 -0.707295\n"
"v -1.250000 0.000000 -0.650000\n"
"v -1.426336 0.000000 -0.707295\n"
"v -1.602671 0.000000 -0.764590\n"
"v -1.711653 0.000000 -0.914590\n"
"v -1.820634 0.000000 -1.064590\n"
"v -1.820634 0.000000 -1.250000\n"
"v -1.820634 0.000000 -1.435410\n"
"v -1.711653 0.000000 -1.585410\n"
"v -1.602671 0.000000 -1.735410\n"
"v -1.426336 0.000000 -1.792705\n"
"v -1.250000 0.000000 -1.850000\n"
"v -1.073664 0.000000 -1.792705\n"
"v -0.897329 0.000000 -1.735410\n"
"v -0.788347 0.000000 -1.585410\n"
"v -0.679366 0.000000 -1.435410\n"
"\n"
"vt 0.170000 0.170000\n"
"vt 0.312658 0.170000\n"
"vt 0.312658 0.216353\n"
"vt 0.285413 0.253853\n"
"vt 0.258168 0.291353\n"
"vt 0.214084 0.305676\n"
"vt 0.170000 0.320000\n"
"vt 0.125916 0.305676\n"
"vt 0.081832 0.291353\n"
"vt 0.054587 0.253853\n"
"vt 0.027342 0.216353\n"
"vt 0.027342 0.170000\n"
"vt 0.027342 0.123647\n"
"vt 0.054587 0.086147\n"
"vt 0.081832 0.048647\n"
"vt 0.125916 0.034324\n"
"vt 0.170000 0.020000\n"
"vt 0.214084 0.034324\n"
"vt 0.258168 0.048647\n"
"vt 0.285413 0.086147\n"
"vt 0.312659 0.123648\n"
"\n"
"f 83/83 84/84 85/85 86/86 \n"
"f 83/83 86/86 87/87 88/88 \n"
"f 83/83 88/88 89/89 90/90 \n"
"f 83/83 90/90 91/91 92/92 \n"
"f 83/83 92/92 93/93 94/94 \n"
"f 83/83 94/94 95/95 96/96 \n"
"f 83/83 96/96 97/97 98/98 \n"
"f 83/83 98/98 99/99 100/100\n"
"f 83/83 100/100 101/101 102/102\n"
"f 83/83 102/102 103/103 84/84 \n"
"\n"
"#\n"
"# Shape 8: bottom-middle\n"
"#\n"
"v 0.000000 -0.480000 -1.250000\n"
"v 0.575696 0.000000 -1.250000\n"
"v 0.575696 0.000000 -1.080960\n"
"v 0.484306 0.000000 -0.938755\n"
"v 0.392916 0.000000 -0.796550\n"
"v 0.239153 0.000000 -0.726329\n"
"v 0.085389 0.000000 -0.656107\n"
"v -0.081930 0.000000 -0.680164\n"
"v -0.249249 0.000000 -0.704221\n"
"v -0.377001 0.000000 -0.814918\n"
"v -0.504752 0.000000 -0.925616\n"
"v -0.552376 0.000000 -1.087808\n"
"v -0.600000 0.000000 -1.250000\n"
"v -0.552376 0.000000 -1.412192\n"
"v -0.504752 0.000000 -1.574385\n"
"v -0.377000 0.000000 -1.685082\n"
"v -0.249249 0.000000 -1.795779\n"
"v -0.081930 0.000000 -1.819836\n"
"v 0.085389 0.000000 -1.843893\n"
"v 0.239153 0.000000 -1.773671\n"
"v 0.392916 0.000000 -1.703450\n"
"v 0.484306 0.000000 -1.561244\n"
"v 0.575696 0.000000 -1.419039\n"
"\n"
"vt 0.500000 0.170000\n"
"vt 0.643924 0.170000\n"
"vt 0.643924 0.212260\n"
"vt 0.621077 0.247811\n"
"vt 0.598229 0.283362\n"
"vt 0.559788 0.300918\n"
"vt 0.521347 0.318473\n"
"vt 0.479517 0.312459\n"
"vt 0.437688 0.306445\n"
"vt 0.405750 0.278770\n"
"vt 0.373812 0.251096\n"
"vt 0.361906 0.210548\n"
"vt 0.350000 0.170000\n"
"vt 0.361906 0.129452\n"
"vt 0.373812 0.088904\n"
"vt 0.405750 0.061230\n"
"vt 0.437688 0.033555\n"
"vt 0.479518 0.027541\n"
"vt 0.521347 0.021527\n"
"vt 0.559788 0.039082\n"
"vt 0.598229 0.056638\n"
"vt 0.621077 0.092189\n"
"vt 0.643924 0.127740\n"
"\n"
"f 104/104 105/105 106/106 107/107\n"
"f 104/104 107/107 108/108 109/109\n"
"f 104/104 109/109 110/110 111/111\n"
"f 104/104 111/111 112/112 113/113\n"
"f 104/104 113/113 114/114 115/115\n"
"f 104/104 115/115 116/116 117/117\n"
"f 104/104 117/117 118/118 119/119\n"
"f 104/104 119/119 120/120 121/121\n"
"f 104/104 121/121 122/122 123/123\n"
"f 104/104 123/123 124/124 125/125\n"
"f 104/104 125/125 126/126 105/105\n"
"\n"
"#\n"
"# Shape 9: bottom-right\n"
"#\n"
"v 1.250000 -0.480000 -1.250000\n"
"v 1.829556 0.000000 -1.250000\n"
"v 1.829556 0.000000 -1.094709\n"
"v 1.751910 0.000000 -0.960222\n"
"v 1.674264 0.000000 -0.825736\n"
"v 1.539778 0.000000 -0.748090\n"
"v 1.405291 0.000000 -0.670444\n"
"v 1.250000 0.000000 -0.670444\n"
"v 1.094708 0.000000 -0.670444\n"
"v 0.960222 0.000000 -0.748090\n"
"v 0.825736 0.000000 -0.825736\n"
"v 0.748090 0.000000 -0.960222\n"
"v 0.670444 0.000000 -1.094709\n"
"v 0.670444 0.000000 -1.250000\n"
"v 0.670444 0.000000 -1.405291\n"
"v 0.748090 0.000000 -1.539778\n"
"v 0.825736 0.000000 -1.674264\n"
"v 0.960222 0.000000 -1.751910\n"
"v 1.094709 0.000000 -1.829556\n"
"v 1.250000 0.000000 -1.829556\n"
"v 1.405291 0.000000 -1.829556\n"
"v 1.539778 0.000000 -1.751910\n"
"v 1.674264 0.000000 -1.674264\n"
"v 1.751910 0.000000 -1.539778\n"
"v 1.829556 0.000000 -1.405291\n"
"\n"
"vt 0.830000 0.170000\n"
"vt 0.974889 0.170000\n"
"vt 0.974889 0.208823\n"
"vt 0.955477 0.242444\n"
"vt 0.936066 0.276066\n"
"vt 0.902444 0.295477\n"
"vt 0.868823 0.314889\n"
"vt 0.830000 0.314889\n"
"vt 0.791177 0.314889\n"
"vt 0.757556 0.295477\n"
"vt 0.723934 0.276066\n"
"vt 0.704523 0.242444\n"
"vt 0.685111 0.208823\n"
"vt 0.685111 0.170000\n"
"vt 0.685111 0.131177\n"
"vt 0.704523 0.097556\n"
"vt 0.723934 0.063934\n"
"vt 0.757556 0.044523\n"
"vt 0.791177 0.025111\n"
"vt 0.830000 0.025111\n"
"vt 0.868823 0.025111\n"
"vt 0.902444 0.044523\n"
"vt 0.936066 0.063934\n"
"vt 0.955477 0.097556\n"
"vt 0.974889 0.131177\n"
"\n"
"f 127/127 128/128 129/129 130/130\n"
"f 127/127 130/130 131/131 132/132\n"
"f 127/127 132/132 133/133 134/134\n"
"f 127/127 134/134 135/135 136/136\n"
"f 127/127 136/136 137/137 138/138\n"
"f 127/127 138/138 139/139 140/140\n"
"f 127/127 140/140 141/141 142/142\n"
"f 127/127 142/142 143/143 144/144\n"
"f 127/127 144/144 145/145 146/146\n"
"f 127/127 146/146 147/147 148/148\n"
"f 127/127 148/148 149/149 150/150\n"
"f 127/127 150/150 151/151 128/128\n"
"\n"
"t interpolateboundary 1/0/0 1\n"
"\n"
;