mirror of
https://github.com/PixarAnimationStudios/OpenSubdiv
synced 2024-11-29 14:51:05 +00:00
208 lines
4.3 KiB
C
208 lines
4.3 KiB
C
|
//
|
||
|
// Copyright 2022 Pixar
|
||
|
//
|
||
|
// 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_foldover =
|
||
|
"#\n"
|
||
|
"# Nine shapes ordered left->right and top->bottom in the XZ plane\n"
|
||
|
"#\n"
|
||
|
"# Shape 1: top-left\n"
|
||
|
"#\n"
|
||
|
"v -1.4 0.0 0.6\n"
|
||
|
"v -0.6 0.0 0.6\n"
|
||
|
"v -0.6 0.0 1.4\n"
|
||
|
"v -1.4 0.0 1.4\n"
|
||
|
"\n"
|
||
|
"vt -1.4 0.6\n"
|
||
|
"vt -0.6 0.6\n"
|
||
|
"vt -0.6 1.4\n"
|
||
|
"vt -1.4 1.4\n"
|
||
|
"\n"
|
||
|
"f 1/1 2/2 3/3 4/4\n"
|
||
|
"f 1/1 4/4 3/3\n"
|
||
|
"f 1/1 3/3 2/2\n"
|
||
|
"\n"
|
||
|
"#\n"
|
||
|
"# Shape 2: top-middle\n"
|
||
|
"#\n"
|
||
|
"v -0.4 0.0 0.6\n"
|
||
|
"v 0.4 0.0 0.6\n"
|
||
|
"v 0.4 0.0 1.4\n"
|
||
|
"v -0.4 0.0 1.4\n"
|
||
|
"\n"
|
||
|
"vt -0.4 0.6\n"
|
||
|
"vt 0.4 0.6\n"
|
||
|
"vt 0.4 1.4\n"
|
||
|
"vt -0.4 1.4\n"
|
||
|
"\n"
|
||
|
"f 5/5 6/6 7/7 8/8\n"
|
||
|
"f 5/5 8/8 7/7\n"
|
||
|
"\n"
|
||
|
"#\n"
|
||
|
"# Shape 3: top-right\n"
|
||
|
"#\n"
|
||
|
"v 0.8 0.0 0.6\n"
|
||
|
"v 1.2 0.0 0.6\n"
|
||
|
"v 1.4 0.0 1.0\n"
|
||
|
"v 1.0 0.0 1.4\n"
|
||
|
"v 0.6 0.0 1.0\n"
|
||
|
"\n"
|
||
|
"vt 0.8 0.6\n"
|
||
|
"vt 1.2 0.6\n"
|
||
|
"vt 1.4 1.0\n"
|
||
|
"vt 1.0 1.4\n"
|
||
|
"vt 0.6 1.0\n"
|
||
|
"\n"
|
||
|
"f 9/9 10/10 11/11 12/12 13/13\n"
|
||
|
"f 12/12 11/11 10/10 9/9 \n"
|
||
|
"f 12/12 9/9 13/13\n"
|
||
|
"\n"
|
||
|
"#\n"
|
||
|
"# Shape 4: center-left\n"
|
||
|
"#\n"
|
||
|
"v -1.2 0.0 -0.4\n"
|
||
|
"v -0.8 0.0 -0.4\n"
|
||
|
"v -0.6 0.0 0.0\n"
|
||
|
"v -1.0 0.0 0.4\n"
|
||
|
"v -1.4 0.0 0.0\n"
|
||
|
"\n"
|
||
|
"vt -1.2 -0.4\n"
|
||
|
"vt -0.8 -0.4\n"
|
||
|
"vt -0.6 0.0\n"
|
||
|
"vt -1.0 0.4\n"
|
||
|
"vt -1.4 0.0\n"
|
||
|
"\n"
|
||
|
"f 14/14 15/15 16/16 17/17 18/18\n"
|
||
|
"f 17/17 16/16 15/15\n"
|
||
|
"f 17/17 15/15 14/14\n"
|
||
|
"f 17/17 14/14 18/18\n"
|
||
|
"\n"
|
||
|
"#\n"
|
||
|
"# Shape 5: center-middle\n"
|
||
|
"#\n"
|
||
|
"v -0.2 0.0 -0.4\n"
|
||
|
"v 0.2 0.0 -0.4\n"
|
||
|
"v 0.4 0.0 0.0\n"
|
||
|
"v 0.0 0.0 0.4\n"
|
||
|
"v -0.4 0.0 0.0\n"
|
||
|
"\n"
|
||
|
"vt -0.2 -0.4\n"
|
||
|
"vt 0.2 -0.4\n"
|
||
|
"vt 0.4 0.0\n"
|
||
|
"vt 0.0 0.4\n"
|
||
|
"vt -0.4 0.0\n"
|
||
|
"\n"
|
||
|
"f 19/19 20/20 21/21 22/22 23/23\n"
|
||
|
"f 22/22 19/19 23/23\n"
|
||
|
"\n"
|
||
|
"#\n"
|
||
|
"# Shape 6: center-right\n"
|
||
|
"#\n"
|
||
|
"v 0.8 0.0 -0.4\n"
|
||
|
"v 1.2 0.0 -0.4\n"
|
||
|
"v 1.4 0.0 0.0\n"
|
||
|
"v 1.2 0.0 0.4\n"
|
||
|
"v 0.8 0.0 0.4\n"
|
||
|
"v 0.6 0.0 0.0\n"
|
||
|
"\n"
|
||
|
"vt 0.8 -0.4\n"
|
||
|
"vt 1.2 -0.4\n"
|
||
|
"vt 1.4 0.0\n"
|
||
|
"vt 1.2 0.4\n"
|
||
|
"vt 0.8 0.4\n"
|
||
|
"vt 0.6 0.0\n"
|
||
|
"\n"
|
||
|
"f 24/24 25/25 26/26 27/27 28/28 29/29\n"
|
||
|
"f 29/29 28/28 27/27 26/26\n"
|
||
|
"f 29/29 26/26 25/25 24/24\n"
|
||
|
"\n"
|
||
|
"#\n"
|
||
|
"# Shape 7: bottom-left\n"
|
||
|
"#\n"
|
||
|
"v -1.2 0.0 -1.4\n"
|
||
|
"v -0.8 0.0 -1.4\n"
|
||
|
"v -0.6 0.0 -1.0\n"
|
||
|
"v -0.8 0.0 -0.6\n"
|
||
|
"v -1.2 0.0 -0.6\n"
|
||
|
"v -1.4 0.0 -1.0\n"
|
||
|
"\n"
|
||
|
"vt -1.2 -1.4\n"
|
||
|
"vt -0.8 -1.4\n"
|
||
|
"vt -0.6 -1.0\n"
|
||
|
"vt -0.8 -0.6\n"
|
||
|
"vt -1.2 -0.6\n"
|
||
|
"vt -1.4 -1.0\n"
|
||
|
"\n"
|
||
|
"f 30/30 31/31 32/32 33/33 34/34 35/35\n"
|
||
|
"f 35/35 34/34 33/33\n"
|
||
|
"f 35/35 33/33 32/32\n"
|
||
|
"f 35/35 32/32 31/31\n"
|
||
|
"f 35/35 31/31 30/30\n"
|
||
|
"\n"
|
||
|
"#\n"
|
||
|
"# Shape 8: bottom-middle\n"
|
||
|
"#\n"
|
||
|
"v -0.2 0.0 -1.4\n"
|
||
|
"v 0.2 0.0 -1.4\n"
|
||
|
"v 0.4 0.0 -1.0\n"
|
||
|
"v 0.2 0.0 -0.6\n"
|
||
|
"v -0.2 0.0 -0.6\n"
|
||
|
"v -0.4 0.0 -1.0\n"
|
||
|
"\n"
|
||
|
"vt -0.2 -1.4\n"
|
||
|
"vt 0.2 -1.4\n"
|
||
|
"vt 0.4 -1.0\n"
|
||
|
"vt 0.2 -0.6\n"
|
||
|
"vt -0.2 -0.6\n"
|
||
|
"vt -0.4 -1.0\n"
|
||
|
"\n"
|
||
|
"f 36/36 37/37 38/38 39/39 40/40 41/41\n"
|
||
|
"f 41/41 40/40 39/39\n"
|
||
|
"f 41/41 37/37 36/36\n"
|
||
|
"\n"
|
||
|
"#\n"
|
||
|
"# Shape 9: bottom-right\n"
|
||
|
"#\n"
|
||
|
"v 0.8 0.0 -1.4\n"
|
||
|
"v 1.2 0.0 -1.4\n"
|
||
|
"v 1.4 0.0 -1.0\n"
|
||
|
"v 1.2 0.0 -0.6\n"
|
||
|
"v 0.8 0.0 -0.6\n"
|
||
|
"v 0.6 0.0 -1.0\n"
|
||
|
"\n"
|
||
|
"vt 0.8 -1.4\n"
|
||
|
"vt 1.2 -1.4\n"
|
||
|
"vt 1.4 -1.0\n"
|
||
|
"vt 1.2 -0.6\n"
|
||
|
"vt 0.8 -0.6\n"
|
||
|
"vt 0.6 -1.0\n"
|
||
|
"\n"
|
||
|
"f 42/42 43/43 44/44 45/45 46/46 47/47\n"
|
||
|
"f 47/47 46/46 45/45\n"
|
||
|
"f 47/47 45/45 44/44 43/43\n"
|
||
|
"f 47/47 43/43 42/42\n"
|
||
|
"\n"
|
||
|
"t interpolateboundary 1/0/0 1\n"
|
||
|
"\n"
|
||
|
;
|