SCIRun  5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mc_table.h
Go to the documentation of this file.
1 /*
2  For more information, please see: http://software.sci.utah.edu
3 
4  The MIT License
5 
6  Copyright (c) 2009 Scientific Computing and Imaging Institute,
7  University of Utah.
8 
9 
10  Permission is hereby granted, free of charge, to any person obtaining a
11  copy of this software and associated documentation files (the "Software"),
12  to deal in the Software without restriction, including without limitation
13  the rights to use, copy, modify, merge, publish, distribute, sublicense,
14  and/or sell copies of the Software, and to permit persons to whom the
15  Software is furnished to do so, subject to the following conditions:
16 
17  The above copyright notice and this permission notice shall be included
18  in all copies or substantial portions of the Software.
19 
20  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
23  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
26  DEALINGS IN THE SOFTWARE.
27 */
28 
29 
30 /*
31  * mc_table.h : Marching Cubes tesselation table for hexagons.
32  * This table is based on triangles fans.
33  *
34  * \author Yarden Livnat
35  * Department of Computer Science
36  * University of Utah
37  * \date Feb 2001
38  *
39  */
40 
41 #ifndef MCUBE3_H
42 #define MCUBE3_H
43 
44 #if 0
45 static int edge_table[12][2] = {{0,1}, {1,2}, {3,2}, {0,3},
46  {4,5}, {5,6}, {7,6}, {4,7},
47  {0,4}, {1,5}, {3,7}, {2,6}};
48 #endif
49 
50 struct TriangleCase {
51  int n;
52  int vertex[16];
53 };
54 
55 
56 #if 0
57 static TriangleCase tri_case[] = {
58  /* 00000000 */
59  { 0, { -1 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
60  /* 00000001 */
61  { 1, { 0, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
62  /* 00000010 */
63  { 1, { 0, 9, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
64  /* 00000011 */
65  { 1, { 1, 3, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
66  /* 00000100 */
67  { 1, { 1, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
68  /* 00000101 */
69  { 2, { 0, 3, 8, -1, 1, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
70  /* 00000110 */
71  { 1, { 9, 11, 2, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
72  /* 00000111 */
73  { 1, { 2, 3, 8, 9, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
74  /* 00001000 */
75  { 1, { 3, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
76  /* 00001001 */
77  { 1, { 0, 2, 10, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
78  /* 00001010 */
79  { 2, { 1, 0, 9, -1, 2, 10, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
80  /* 00001011*/
81  { 1, { 8, 9, 1, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
82  /* 00001100 */
83  { 1, { 3, 1, 11, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
84  /* 00001101 */
85  { 1, { 0, 1, 11, 10, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
86  /* 00001110 */
87  { 1, { 3, 0, 9, 11, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
88  /* 00001111 */
89  { 1, { 9, 11, 10, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
90  /* 00010000 */
91  { 1, { 4, 8, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
92  /* 00010001 */
93  { 1, { 4, 0, 3, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
94  /* 00010010 */
95  { 2, { 0, 9, 1, -1, 8, 7, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
96  /* 00010011 */
97  { 1, { 4, 9, 1, 3, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
98  /* 00010100 */
99  { 2, { 1, 11, 2, -1, 8, 7, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
100  /* 00010101 */
101  { 2, { 3, 7, 4, 0, -1, 1, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1}},
102  /* 00010110 */
103  { 2, { 9, 11, 2, 0, -1, 8, 7, 4, -1, -1, -1, -1, -1, -1, -1, -1}},
104  /* 00010111 */
105  { 1, { 2, 3, 7, 4, 9, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
106  /* 00011000 */
107  { 2, { 8, 7, 4, -1, 3, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
108  /* 00011001 */
109  { 1, { 10, 7, 4, 0, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
110  /* 00011010 */
111  { 3, { 9, 1, 0, -1, 8, 7, 4, -1, 2, 10, 3, -1, -1, -1, -1, -1}},
112  /* 00011011 */
113  { 1, { 4, 9, 1, 2, 10, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
114  /* 00011100 */
115  { 2, { 3, 1, 11, 10, -1, 7, 4, 8, -1, -1, -1, -1, -1, -1, -1, -1}},
116  /* 00011101 */
117  { 1, { 1, 11, 10, 7, 4, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
118  /* 00011110 */
119  { 2, { 4, 8, 7, -1, 9, 11, 10, 3, 0, -1, -1, -1, -1, -1, -1, -1}},
120  /* 00011111 */
121  { 1, { 4, 9, 11, 10, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
122  /* 00100000 */
123  { 1, { 9, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
124  /* 00100001 */
125  { 2, { 9, 4, 5, -1, 0, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
126  /* 00100010 */
127  { 1, { 0, 4, 5, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
128  /* 00100011 */
129  { 1, { 8, 4, 5, 1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
130  /* 00100100 */
131  { 2, { 1, 11, 2, -1, 9, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
132  /* 00100101 */
133  { 3, { 3, 8, 0, -1, 1, 11, 2, -1, 4, 5, 9, -1, -1, -1, -1, -1}},
134  /* 00100110 */
135  { 1, { 5, 11, 2, 0, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
136  /* 00100111 */
137  { 1, { 2, 3, 8, 4, 5, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
138  /* 00101000 */
139  { 2, { 9, 4, 5, -1, 2, 10, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
140  /* 00101001 */
141  { 2, { 0, 2, 10, 8, -1, 4, 5, 9, -1, -1, -1, -1, -1, -1, -1, -1}},
142  /* 00101010 */
143  { 2, { 0, 4, 5, 1, -1, 2, 10, 3, -1, -1, -1, -1, -1, -1, -1, -1}},
144  /* 00101011 */
145  { 1, { 2, 10, 8, 4, 5, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
146  /* 00101100 */
147  { 2, { 11, 10, 3, 1, -1, 9, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1}},
148  /* 00101101 */
149  { 2, { 4, 5, 9, -1, 0, 1, 11, 10, 8, -1, -1, -1, -1, -1, -1, -1}},
150  /* 00101110 */
151  { 1, { 5, 11, 10, 3, 0, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
152  /* 00101111 */
153  { 1, { 5, 11, 10, 8, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
154  /* 00110000 */
155  { 1, { 9, 8, 7, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
156  /* 00110001 */
157  { 1, { 9, 0, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
158  /* 00110010 */
159  { 1, { 0, 8, 7, 5, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
160  /* 00110011 */
161  { 1, { 1, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
162  /* 00110100 */
163  { 2, { 9, 8, 7, 5, -1, 11, 2, 1, -1, -1, -1, -1, -1, -1, -1, -1}},
164  /* 00110101 */
165  { 2, { 11, 2, 1, -1, 9, 0, 3, 7, 5, 3, -1, -1, -1, -1, -1, -1}},
166  /* 00110110 */
167  { 1, { 8, 7, 5, 11, 2, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
168  /* 00110111 */
169  { 1, { 2, 3, 7, 5, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
170  /* 00111000 */
171  { 2, { 7, 5, 9, 8, -1, 3, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1}},
172  /* 00111001 */
173  { 1, { 9, 0, 2, 10, 7, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
174  /* 00111010 */
175  { 2, { 2, 10, 3, -1, 0, 8, 7, 5, 1, -1, -1, -1, -1, -1, -1, -1}},
176  /* 00111011 */
177  { 1, { 10, 7, 5, 1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
178  /* 00111100 */
179  { 2, { 9, 8, 7, 5, -1, 11, 10, 3, 1, -1, -1, -1, -1, -1, -1, -1}},
180  /* 00111101 */
181  { 1, { 0, 1, 11, 10, 7, 5, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
182  /* 00111110 */
183  { 1, { 0, 8, 7, 5, 11, 10, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
184  /* 00111111 */
185  { 1, { 10, 7, 5, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
186  /* 01000000 */
187  { 1, { 11, 5, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
188  /* 01000001 */
189  { 2, { 0, 3, 8, -1, 5, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
190  /* 01000010 */
191  { 2, { 9, 1, 0, -1, 5, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
192  /* 01000011 */
193  { 2, { 1, 3, 8, 9, -1, 5, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1}},
194  /* 01000100 */
195  { 1, { 1, 5, 6, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
196  /* 01000101 */
197  { 2, { 1, 5, 6, 2, -1, 3, 8, 0, -1, -1, -1, -1, -1, -1, -1, -1}},
198  /* 01000110 */
199  { 1, { 9, 5, 6, 2, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
200  /* 01000111 */
201  { 1, { 5, 6, 2, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
202  /* 01001000 */
203  { 2, { 2, 10, 3, -1, 11, 5, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
204  /* 01001001 */
205  { 2, { 10, 8, 0, 2, -1, 11, 5, 6, -1, -1, -1, -1, -1, -1, -1, -1}},
206  /* 01001010 */
207  { 3, { 0, 9, 1, -1, 2, 10, 3, -1, 5, 6, 11, -1, -1, -1, -1, -1}},
208  /* 01001011 */
209  { 2, { 5, 6, 11, -1, 9, 1, 2, 10, 8, -1, -1, -1, -1, -1, -1, -1}},
210  /* 01001100 */
211  { 1, { 3, 1, 5, 6, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
212  /* 01001101 */
213  { 1, { 0, 1, 5, 6, 10, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
214  /* 01001110 */
215  { 1, { 3, 0, 9, 5 , 6, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
216  /* 01001111 */
217  { 1, { 9, 5, 6, 10, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
218  /* 01010000 */
219  { 2, { 5, 6, 11, -1, 4, 8, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
220  /* 01010001 */
221  { 2, { 4, 0, 3, 7, -1, 6, 11, 5, -1, -1, -1, -1, -1, -1, -1, -1}},
222  /* 01010010 */
223  { 3, { 1, 0, 9, -1, 5, 6, 11, -1, 8, 7, 4, -1, -1, -1, -1, -1}},
224  /* 01010011 */
225  { 2, { 11, 5, 6, -1, 9, 1, 3, 7, 4, -1, -1, -1, -1, -1, -1, -1}},
226  /* 01010100 */
227  { 2, { 6, 2, 1, 5, -1, 4, 8, 7, -1, -1, -1, -1, -1, -1, -1, -1}},
228  /* 01010101 */
229  { 2, { 1, 5, 6, 2, -1, 3, 7, 4, 0, -1, -1, -1, -1, -1, -1, -1}},
230  /* 01010110 */
231  { 2, { 8, 7, 4, -1, 0, 9, 5, 6, 2, -1, -1, -1, -1, -1, -1, -1}},
232  /* 01010111 */
233  { 1, { 9, 5, 6, 2, 3, 7, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
234  /* 01011000 */
235  { 3, { 3, 2, 10, -1, 7, 4, 8, -1, 11, 5, 6, -1, -1, -1, -1, -1}},
236  /* 01011001 */
237  { 2, { 5, 6, 11, -1, 4, 0, 2, 10, 7, -1, -1, -1, -1, -1, -1, -1}},
238  /* 01011010 */
239  { 4, { 0, 9, 1, -1, 4, 8, 7, -1, 2, 10, 3, -1, 5, 6, 11, -1}},
240  /* 01011011 */
241  { 2, { 9, 1, 2, 10, 7, 4, -1, 5, 6, 11, -1, -1, -1, -1, -1, -1}},
242  /* 01011100 */
243  { 2, { 8, 7, 4, -1, 5 , 6, 10, 3, 1, -1, -1, -1, -1, -1, -1, -1}},
244  /* 01011101 */
245  { 1, { 10, 7, 4, 0, 1, 5, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
246  /* 01011110 */
247  { 2, { 0, 9, 5, 6, 10, 3, -1, 8, 7, 4, -1, -1, -1, -1, -1, -1}},
248  /* 01011111 */
249  { 1, { 9, 5, 6, 10, 7, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
250  /* 01100000 */
251  { 1, { 11, 9, 4, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
252  /* 01100001 */
253  { 2, { 4, 6, 11, 9, -1, 0, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1}},
254  /* 01100010 */
255  { 1, { 0, 4, 6, 11, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
256  /* 01100011 */
257  { 1, { 8, 4, 6, 11, 1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
258  /* 01100100 */
259  { 1, { 4, 6, 2, 1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
260  /* 01100101 */
261  { 2, { 3, 8, 0, -1, 4, 6, 2, 1, 9, -1, -1, -1, -1, -1, -1, -1}},
262  /* 01100110 */
263  { 1, { 0, 4, 6, 2, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
264  /* 01100111 */
265  { 1, { 2, 3, 8, 4, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
266  /* 01101000 */
267  { 2, { 11, 9, 4, 6, -1, 10, 3, 2, -1, -1, -1, -1, -1, -1, -1, -1}},
268  /* 01101001 */
269  { 2, { 0, 2, 10, 8, -1, 4, 6, 11, 9, -1, -1, -1, -1, -1, -1, -1}},
270  /* 01101010 */
271  { 2, { 3, 2, 10, -1, 6, 11, 1, 0, 4, -1, -1, -1, -1, -1, -1, -1}},
272  /* 01101011 */
273  { 1, { 1, 10, 8, 4, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
274  /* 01101100 */
275  { 1, { 6, 9, 1, 3, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
276  /* 01101101 */
277  { 1, { 1, 0, 8, 10, 6, 4, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
278  /* 01101110 */
279  { 1, { 6, 10, 3, 0, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
280  /* 01101111 */
281  { 1, { 6, 10, 8, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
282  /* 01110000 */
283  { 1, { 7, 6, 11, 9, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
284  /* 01110001 */
285  { 1, { 0, 3, 7, 6, 11, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
286  /* 01110010 */
287  { 1, { 1, 0, 8, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
288  /* 01110011 */
289  { 1, { 1, 3, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
290  /* 01110100 */
291  { 1, { 8, 7, 6, 2, 1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
292  /* 01110101 */
293  { 1, { 9, 0, 3, 7, 6, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
294  /* 01110110 */
295  { 1, { 0, 8, 7, 6, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
296  /* 01110111 */
297  { 1, { 7, 6, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
298  /* 01111000 */
299  { 2, { 2, 10, 3, -1, 8, 7, 6, 11, 9, -1, -1, -1, -1, -1, -1, -1}},
300  /* 01111001 */
301  { 1, { 7, 6, 11, 9, 0, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
302  /* 01111010 */
303  { 2, { 7, 1, 0, 8, 11, 6, -1, 2, 10, 3, -1, -1, -1, -1, -1, -1}},
304  /* 01111011 */
305  { 1, { 1, 2, 10, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
306  /* 01111100 */
307  { 1, { 6, 10, 3, 1, 9, 8, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
308  /* 01111101 */
309  { 2, { 0, 1, 9, -1, 10, 7, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
310  /* 01111110 */
311  { 1, { 0, 8, 7, 6, 10, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
312  /* 01111111 */
313  { 1, { 7, 6, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
314  /* 10000000 */
315  { 1, { 7, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
316  /* 10000001 */
317  { 2, { 3, 8, 0, -1, 10, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
318  /* 10000010 */
319  { 2, { 0, 9, 1, -1, 10, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
320  /* 10000011 */
321  { 2, { 8, 9, 1, 3, 10, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
322  /* 10000100 */
323  { 2, { 11, 2, 1, -1, 6, 7, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
324  /* 10000101 */
325  { 3, { 1, 11, 2, -1, 3, 8, 0, -1, 6, 7, 10, -1, -1, -1, -1, -1}},
326  /* 10000110 */
327  { 2, { 2, 0, 9, 11, -1, 6, 7, 10, -1, -1, -1, -1, -1, -1, -1, -1}},
328  /* 10000111 */
329  { 2, { 6, 7, 10, -1, 11, 2, 3, 8, 9, -1, -1, -1, -1, -1, -1, -1}},
330  /* 10001000 */
331  { 1, { 7, 3, 2, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
332  /* 10001001 */
333  { 1, { 7, 8, 0, 2, 6, -1, -1, -1, -1, -1, -1, -1, -1 ,-1, -1, -1}},
334  /* 10001010 */
335  { 2, { 2, 6, 7, 3, -1, 0, 9, 1, -1, -1, -1, -1, -1, -1, -1, -1}},
336  /* 10001011 */
337  { 1, { 1, 2, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
338  /* 10001100 */
339  { 1, { 11, 6, 7, 3, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
340  /* 10001101 */
341  { 1, { 11, 6, 7, 8, 0, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
342  /* 10001110 */
343  { 1, { 0, 9, 11, 6, 7, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
344  /* 10001111 */
345  { 1, { 7, 8, 9, 11, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
346  /* 10010000 */
347  { 1, { 6, 4, 8, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
348  /* 10010001 */
349  { 1, { 3, 10, 6, 4, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
350  /* 10010010 */
351  { 2, { 8, 10, 6, 4, -1, 9, 1, 0, -1, -1, -1, -1, -1, -1, -1, -1}},
352  /* 10010011 */
353  { 1, { 9, 1, 3, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
354  /* 10010100 */
355  { 2, { 6, 4, 8, 10, -1, 2, 1, 11, -1, -1, -1, -1, -1, -1, -1, -1}},
356  /* 10010101 */
357  { 2, { 1, 11, 2, -1, 3, 10, 6, 4, 0, -1, -1, -1, -1, -1, -1, -1}},
358  /* 10010110 */
359  { 2, { 4, 8, 10, 6, -1, 0, 9, 11, 2, -1, -1, -1, -1, -1, -1, -1}},
360  /* 10010111 */
361  { 1, { 3, 10, 6, 4, 9, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
362  /* 10011000 */
363  { 1, { 8, 3, 2, 6, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
364  /* 10011001 */
365  { 1, { 0, 2, 6, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
366  /* 10011010 */
367  { 2, { 1, 0, 9, -1, 2, 6, 4, 8, 3, -1, -1, -1, -1, -1, -1, -1}},
368  /* 10011011 */
369  { 1, { 4, 9, 1, 2, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
370  /* 10011100 */
371  { 1, { 4, 3, 8, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
372  /* 10011101 */
373  { 1, { 0, 1, 11, 6, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
374  /* 10011110 */
375  { 1, { 3, 0, 9, 11, 6, 4, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
376  /* 10011111 */
377  { 1, { 11, 6, 4, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
378  /* 10100000 */
379  { 2, { 4, 5, 9, -1, 7, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
380  /* 10100001 */
381  { 3, { 0, 3, 8, -1, 4, 5, 9, -1, 10, 6, 7, -1, -1, -1, -1, -1}},
382  /* 10100010 */
383  { 2, { 5, 1, 0, 4, -1, 7, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1}},
384  /* 10100011 */
385  { 2, { 10, 6, 7, -1, 3, 8, 4, 5, 1, -1, -1, -1, -1, -1, -1, -1}},
386  /* 10100100 */
387  { 3, { 9, 4, 5, -1, 11, 2, 1, -1, 7, 10, 6, -1, -1, -1, -1, -1}},
388  /* 10100101 */
389  { 4, { 6, 7, 10, -1, 1, 11, 2, -1, 0, 3, 8, -1, 4, 5, 9, -1}},
390  /* 10100110 */
391  { 2, { 7, 10, 6, -1, 4, 5, 11, 2, 0, -1, -1, -1, -1, -1, -1, -1}},
392  /* 10100111 */
393  { 2, { 3, 8, 4, 5, 11, 2, -1, 10, 6, 7, -1, -1, -1, -1, -1, -1}},
394  /* 10101000 */
395  { 2, { 7, 3, 2, 6, -1, 5, 9, 4, -1, -1, -1, -1, -1, -1, -1, -1}},
396  /* 10101001 */
397  { 2, { 9, 4, 5, -1, 6, 7, 8, 0, 2, -1, -1, -1, -1, -1, -1, -1}},
398  /* 10101010 */
399  { 2, { 3, 2, 6, 7, -1, 1, 0, 4, 5, -1, -1, -1, -1, -1, -1, -1}},
400  /* 10101011 */
401  { 1, { 8, 4, 5, 1, 2, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
402  /* 10101100 */
403  { 2, { 9, 4, 5, -1, 11, 6, 7, 3, 1, -1, -1, -1, -1, -1, -1, -1}},
404  /* 10101101 */
405  { 2, { 1, 11, 6, 7, 8, 0, -1, -1, -1, -1, -1, -1, 9, 4, 5, -1}},
406  /* 10101110 */
407  { 1, { 4, 5, 11, 6, 7, 3, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
408  /* 10101111 */
409  { 1, { 11, 6, 7, 8, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
410  /* 10110000 */
411  { 1, { 6, 5, 9, 8, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
412  /* 10110001 */
413  { 1, { 0, 3, 10, 6, 5, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
414  /* 10110010 */
415  { 1, { 0, 8, 10, 6, 5, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
416  /* 10110011 */
417  { 1, { 3, 10, 6, 5, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
418  /* 10110100 */
419  { 2, { 1, 11, 2, -1, 10, 6, 5, 9, 8, 10, -1, -1, -1, -1, -1, -1}},
420  /* 10110101 */
421  { 2, { 0, 3, 10, 6, 5, 9, -1, 1, 11, 2, -1, -1, -1, -1, -1, -1}},
422  /* 10110110 */
423  { 1, { 5, 11, 2, 0, 8, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
424  /* 10110111 */
425  { 1, { 3, 10, 6, 5, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
426  /* 10111000 */
427  { 1, { 2, 6, 5, 9, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
428  /* 10111001 */
429  { 1, { 6, 5, 9, 0, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
430  /* 10111010 */
431  { 1, { 8, 3, 2, 6, 5, 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
432  /* 10111011 */
433  { 1, { 1, 2, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
434  /* 10111100 */
435  { 1, { 6, 5, 9, 8, 3, 1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
436  /* 10111101 */
437  { 1, { 0, 1, 11, 6, 5, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
438  /* 10111110 */
439  { 2, { 0, 8, 3, -1, 5, 11, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
440  /* 10111111 */
441  { 1, { 11, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
442  /* 11000000 */
443  { 1, { 10, 11, 5, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
444  /* 11000001 */
445  { 2, { 10, 11, 5, 7, -1, 8, 0, 3, -1, -1, -1, -1, -1, -1, -1, -1}},
446  /* 11000010 */
447  { 2, { 5, 7, 10, 11, -1, 1, 0, 9, -1, -1, -1, -1, -1, -1, -1, -1}},
448  /* 11000011 */
449  { 2, { 11, 5, 7, 10, -1, 9, 1, 3, 8, -1, -1, -1, -1, -1, -1, -1}},
450  /* 11000100 */
451  { 1, { 10, 2, 1, 5, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
452  /* 11000101 */
453  { 2, { 0, 3, 8, -1, 1, 5, 7, 10, 2, -1, -1, -1, -1, -1, -1, -1}},
454  /* 11000110 */
455  { 1, { 9, 5, 7, 10, 2, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
456  /* 11000111 */
457  { 1, { 7, 10, 2, 3, 8, 9, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
458  /* 11001000 */
459  { 1, { 5, 7, 3, 2, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
460  /* 11001001 */
461  { 1, { 8, 0, 2, 11, 5, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
462  /* 11001010 */
463  { 2, { 9, 1, 0, -1, 5, 7, 3, 2, 11, -1, -1, -1, -1, -1, -1, -1}},
464  /* 11001011 */
465  { 1, { 2, 11, 5, 7, 8, 9, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
466  /* 11001100 */
467  { 1, { 3, 1, 5, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
468  /* 11001101 */
469  { 1, { 7, 8, 0, 1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
470  /* 11001110 */
471  { 1, { 3, 0, 9, 5, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
472  /* 11001111 */
473  { 1, { 9, 5, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
474  /* 11010000 */
475  { 1, { 8, 10, 11, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
476  /* 11010001 */
477  { 1, { 5, 4, 0, 3, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
478  /* 11010010 */
479  { 2, { 0, 9, 1, -1, 8, 10, 11, 5, 4, -1, -1, -1, -1, -1, -1, -1}},
480  /* 11010011 */
481  { 1, { 4, 9, 1, 3, 10, 11, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
482  /* 11010100 */
483  { 1, { 5, 4, 8, 10, 2, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
484  /* 11010101 */
485  { 1, { 10, 2, 1, 5, 4, 0, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
486  /* 11010110 */
487  { 1, { 5, 4, 8, 10, 2, 0, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
488  /* 11010111 */
489  { 2, { 9, 5, 4, -1, 2, 3, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
490  /* 11011000 */
491  { 1, { 5, 4, 8, 3, 2, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
492  /* 11011001 */
493  { 1, { 2, 11, 5, 4, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
494  /* 11011010 */
495  { 2, { 3, 2, 11, 5, 4, 8, -1, 0, 9, 1, -1, -1, -1, -1, -1, -1}},
496  /* 11011011 */
497  { 1, { 2, 11, 5, 4, 9, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
498  /* 11011100 */
499  { 1, { 5, 4, 8, 3, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
500  /* 11011101 */
501  { 1, { 0, 1, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
502  /* 11011110 */
503  { 1, { 5, 4, 8, 3, 0, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
504  /* 11011111 */
505  { 1, { 9, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
506  /* 11100000 */
507  { 1,{ 10, 11, 9, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
508  /* 11100001 */
509  { 2, { 0, 3, 8, -1, 9, 7, 4, 10, 11, -1, -1, -1, -1, -1, -1, -1}},
510  /* 11100010 */
511  { 1, { 10, 11, 1, 0, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
512  /* 11100011 */
513  { 1, { 4, 7, 10, 11, 1, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
514  /* 11100100 */
515  { 1, { 4, 7, 10, 2, 1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
516  /* 11100101 */
517  { 2, { 9, 4, 7, 10, 2, 1, -1, 0, 3, 8, -1, -1, -1, -1, -1, -1}},
518  /* 11100110 */
519  { 1, { 4, 7, 10, 2, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
520  /* 11100111 */
521  { 1, { 4, 7, 10, 2, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
522  /* 11101000 */
523  { 1, { 2, 11, 9, 4, 7, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
524  /* 11101001 */
525  { 1, { 7, 8, 0, 2, 11, 9, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
526  /* 11101010 */
527  { 1, { 11, 1, 0, 4, 7, 3, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
528  /* 11101011 */
529  { 2, { 1, 2, 11, -1, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
530  /* 11101100 */
531  { 1, { 1, 9, 4, 7, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
532  /* 11101101 */
533  { 1, { 1, 9, 4, 7, 8, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
534  /* 11101110 */
535  { 1, { 4, 7, 3, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
536  /* 11101111 */
537  { 1, { 4, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
538  /* 11110000 */
539  { 1, { 9, 8, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
540  /* 11110001 */
541  { 1, { 9, 0, 3, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
542  /* 11110010 */
543  { 1, { 11, 1, 0, 8, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
544  /* 11110011 */
545  { 1, { 3, 10, 11, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
546  /* 11110100 */
547  { 1, { 10, 2, 1, 9, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
548  /* 11110101 */
549  { 1, { 9, 0, 3, 10, 2, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
550  /* 11110110 */
551  { 1, { 0, 8, 10, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
552  /* 11110111 */
553  { 1, { 3, 10, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
554  /* 11111000 */
555  { 1, { 8, 3, 2, 11, 9, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
556  /* 11111001 */
557  { 1, { 9, 0, 2, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
558  /* 11111010 */
559  { 1, { 8, 3, 2, 11, 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
560  /* 11111011 */
561  { 1, { 1, 2, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
562  /* 11111100 */
563  { 1, { 1, 9, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
564  /* 11111101 */
565  { 1, { 0, 1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
566  /* 11111110 */
567  { 1, { 0, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
568  /* 11111111 */
569  { 0, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}}
570 };
571 #endif
572 
573 #endif // MCUBE3_H
Definition: mc_table.h:50
int vertex[16]
Definition: mc_table.h:52
int n
Definition: mc_table.h:51