15 static int ref_type_num_children[8] = { 0, 2, 2, 4, 2, 4, 4, 8 };
20 static int quad_deref_table[3][4 + 4] =
22 { 0, 1, 1, 0, 1, 1, 0, 0 },
23 { 0, 0, 1, 1, 0, 0, 1, 1 },
24 { 0, 1, 2, 3, 1, 1, 3, 3 }
27 static int hex_deref_table[7][8 + 6] =
29 { 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0 },
30 { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1 },
31 { 0, 1, 2, 3, 0, 1, 2, 3, 1, 1, 1, 3, 3, 3 },
32 { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1 },
33 { 0, 1, 1, 0, 3, 2, 2, 3, 1, 1, 1, 3, 3, 3 },
34 { 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 3, 3, 3 },
35 { 0, 1, 2, 3, 4, 5, 6, 7, 1, 1, 1, 7, 7, 7 }
38 static int prism_deref_table[7][6 + 5] =
40 {-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1 },
41 {-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1 },
42 { 0, 1, 2, 0, 1, 2, 0, 0, 0, 1, 0 },
43 { 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0 },
44 {-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1 },
45 {-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1 },
46 { 0, 1, 2, 4, 5, 6, 0, 5, 0, 5, 0 }
52 static char quad_hilbert_child_order[8][4] =
54 {0,1,2,3}, {0,3,2,1}, {1,2,3,0}, {1,0,3,2},
55 {2,3,0,1}, {2,1,0,3}, {3,0,1,2}, {3,2,1,0}
58 static char quad_hilbert_child_state[8][4] =
60 {1,0,0,5}, {0,1,1,4}, {3,2,2,7}, {2,3,3,6},
61 {5,4,4,1}, {4,5,5,0}, {7,6,6,3}, {6,7,7,2}
64 static char hex_hilbert_child_order[24][8] =
66 {0,1,2,3,7,6,5,4}, {0,3,7,4,5,6,2,1}, {0,4,5,1,2,6,7,3},
67 {1,0,3,2,6,7,4,5}, {1,2,6,5,4,7,3,0}, {1,5,4,0,3,7,6,2},
68 {2,1,5,6,7,4,0,3}, {2,3,0,1,5,4,7,6}, {2,6,7,3,0,4,5,1},
69 {3,0,4,7,6,5,1,2}, {3,2,1,0,4,5,6,7}, {3,7,6,2,1,5,4,0},
70 {4,0,1,5,6,2,3,7}, {4,5,6,7,3,2,1,0}, {4,7,3,0,1,2,6,5},
71 {5,1,0,4,7,3,2,6}, {5,4,7,6,2,3,0,1}, {5,6,2,1,0,3,7,4},
72 {6,2,3,7,4,0,1,5}, {6,5,1,2,3,0,4,7}, {6,7,4,5,1,0,3,2},
73 {7,3,2,6,5,1,0,4}, {7,4,0,3,2,1,5,6}, {7,6,5,4,0,1,2,3}
76 static char hex_hilbert_child_state[24][8] =
78 {1,2,2,7,7,21,21,17}, {2,0,0,22,22,16,16,8}, {0,1,1,15,15,6,6,23},
79 {4,5,5,10,10,18,18,14}, {5,3,3,19,19,13,13,11}, {3,4,4,12,12,9,9,20},
80 {8,7,7,17,17,23,23,2}, {6,8,8,0,0,15,15,22}, {7,6,6,21,21,1,1,16},
81 {11,10,10,14,14,20,20,5}, {9,11,11,3,3,12,12,19}, {10,9,9,18,18,4,4,13},
82 {13,14,14,5,5,19,19,10}, {14,12,12,20,20,11,11,4}, {12,13,13,9,9,3,3,18},
83 {16,17,17,2,2,22,22,7}, {17,15,15,23,23,8,8,1}, {15,16,16,6,6,0,0,21},
84 {20,19,19,11,11,14,14,3}, {18,20,20,4,4,10,10,12}, {19,18,18,13,13,5,5,9},
85 {23,22,22,8,8,17,17,0}, {21,23,23,1,1,7,7,15}, {22,21,21,16,16,2,2,6}
110 static RefCoord quad_corners[4][3] =
130 static RefCoord prism_corners[6][3] =
160 static RefTrf quad_parent_rt1[2] =
166 static RefTrf quad_child_rt1[2] =
172 static RefTrf quad_parent_rt2[2] =
178 static RefTrf quad_child_rt2[2] =
184 static RefTrf quad_parent_rt3[4] =
192 static RefTrf quad_child_rt3[4] =
200 static RefTrf* quad_parent[4] =
208 static RefTrf* quad_child[4] =
216 static RefTrf hex_parent_rt1[2] =
222 static RefTrf hex_child_rt1[2] =
228 static RefTrf hex_parent_rt2[2] =
234 static RefTrf hex_child_rt2[2] =
240 static RefTrf hex_parent_rt3[4] =
248 static RefTrf hex_child_rt3[4] =
256 static RefTrf hex_parent_rt4[2] =
262 static RefTrf hex_child_rt4[2] =
268 static RefTrf hex_parent_rt5[4] =
276 static RefTrf hex_child_rt5[4] =
284 static RefTrf hex_parent_rt6[4] =
292 static RefTrf hex_child_rt6[4] =
300 static RefTrf hex_parent_rt7[8] =
312 static RefTrf hex_child_rt7[8] =
324 static RefTrf* hex_parent[8] =
336 static RefTrf* hex_child[8] =
348 static RefTrf tri_parent_rt3[4] =
356 static RefTrf tri_child_rt3[4] =
364 static RefTrf* tri_parent[4] =
370 static RefTrf* tri_child[4] =
376 static RefTrf prism_parent_rt3[4] =
384 static RefTrf prism_child_rt3[4] =
392 static RefTrf prism_parent_rt4[2] =
398 static RefTrf prism_child_rt4[2] =
404 static RefTrf prism_parent_rt7[8] =
416 static RefTrf prism_child_rt7[8] =
428 static RefTrf* prism_parent[8] =
437 static RefTrf* prism_child[8] =
446 static RefTrf** geom_parent[7] =
457 static RefTrf** geom_child[7] =
NCMesh::RefCoord RefCoord
void Apply(const RefCoord src[3], RefCoord dst[3]) const