March gen: refactor for easier testing
This commit is contained in:
parent
0f60c717f0
commit
f15151ff57
1 changed files with 367 additions and 353 deletions
|
@ -171,7 +171,7 @@ def all_transforms():
|
||||||
return output
|
return output
|
||||||
|
|
||||||
|
|
||||||
def do_main(base_cases):
|
def gen_index(base_cases):
|
||||||
transforms = all_transforms()
|
transforms = all_transforms()
|
||||||
index = [None for x in range(256)]
|
index = [None for x in range(256)]
|
||||||
for case in base_cases:
|
for case in base_cases:
|
||||||
|
@ -197,365 +197,379 @@ def do_main(base_cases):
|
||||||
if has_unbound:
|
if has_unbound:
|
||||||
raise RuntimeError("Some cases were not generated.")
|
raise RuntimeError("Some cases were not generated.")
|
||||||
|
|
||||||
print(PREAMBLE)
|
return index
|
||||||
print(("static const TriVect edges_of_intersection[256] = {"))
|
|
||||||
|
|
||||||
|
def pretty_print(index):
|
||||||
|
output = ""
|
||||||
|
output += PREAMBLE
|
||||||
|
output += "static const TriVect edges_of_intersection[256] = {\n"
|
||||||
|
|
||||||
for (case_id, case) in enumerate(index):
|
for (case_id, case) in enumerate(index):
|
||||||
print("\tTriVect({")
|
output += "\tTriVect({\n"
|
||||||
|
|
||||||
for (tri_id, tri) in enumerate(case.triangles):
|
for (tri_id, tri) in enumerate(case.triangles):
|
||||||
print('\t\t' + dump_tri(tri),
|
output += '\t\t{}{}'.format(
|
||||||
end=",\n" if tri_id != len(case.triangles) - 1 else '\n')
|
dump_tri(tri),
|
||||||
print('\t\t})', end=',\n' if case_id != len(index) - 1 else '\n')
|
",\n" if tri_id != len(case.triangles) - 1 else '\n')
|
||||||
print("};")
|
output += '\t\t})' + (',\n' if case_id != len(index) - 1 else '\n')
|
||||||
|
output += "};\n"
|
||||||
|
|
||||||
|
return output
|
||||||
|
|
||||||
|
|
||||||
|
def do_main(base_cases):
|
||||||
|
print(pretty_print(gen_index(base_cases)))
|
||||||
|
|
||||||
|
|
||||||
|
BASE_CASES = [
|
||||||
|
# Source: <https://en.wikipedia.org/wiki/File:MarchingCubes.svg>
|
||||||
|
# -- 1 --
|
||||||
|
TriangulatedCube(set(), []),
|
||||||
|
# -- 2 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_bot_l,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.bot_l,
|
||||||
|
Edg.frnt_l,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 3 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_bot_l,
|
||||||
|
Vert.frnt_bot_r,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_l,
|
||||||
|
Edg.bot_l,
|
||||||
|
Edg.bot_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_l,
|
||||||
|
Edg.frnt_r,
|
||||||
|
Edg.bot_r,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 4 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_bot_l,
|
||||||
|
Vert.frnt_top_r,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.bot_l,
|
||||||
|
Edg.frnt_l,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_top,
|
||||||
|
Edg.top_r,
|
||||||
|
Edg.frnt_r,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
|
||||||
|
# -- 5 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_bot_r,
|
||||||
|
Vert.back_bot_r,
|
||||||
|
Vert.back_bot_l,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_r,
|
||||||
|
Edg.back_r,
|
||||||
|
Edg.back_l,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.bot_l,
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.frnt_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_r,
|
||||||
|
Edg.back_l,
|
||||||
|
Edg.bot_l,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 6 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_bot_l,
|
||||||
|
Vert.back_bot_l,
|
||||||
|
Vert.frnt_bot_r,
|
||||||
|
Vert.back_bot_r,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_l,
|
||||||
|
Edg.frnt_r,
|
||||||
|
Edg.back_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.back_r,
|
||||||
|
Edg.back_l,
|
||||||
|
Edg.frnt_l,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 7 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_top_l,
|
||||||
|
Vert.back_bot_l,
|
||||||
|
Vert.frnt_bot_r,
|
||||||
|
Vert.back_bot_r,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_r,
|
||||||
|
Edg.back_r,
|
||||||
|
Edg.back_l,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.bot_l,
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.frnt_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_r,
|
||||||
|
Edg.back_l,
|
||||||
|
Edg.bot_l,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_l,
|
||||||
|
Edg.frnt_top,
|
||||||
|
Edg.top_l,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 8 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_bot_l,
|
||||||
|
Vert.back_bot_r,
|
||||||
|
Vert.frnt_top_r,
|
||||||
|
Vert.back_top_l,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.bot_l,
|
||||||
|
Edg.frnt_l,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_top,
|
||||||
|
Edg.top_r,
|
||||||
|
Edg.frnt_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.back_bot,
|
||||||
|
Edg.bot_r,
|
||||||
|
Edg.back_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.back_top,
|
||||||
|
Edg.top_l,
|
||||||
|
Edg.back_l,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 9 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.back_bot_l,
|
||||||
|
Vert.back_bot_r,
|
||||||
|
Vert.back_top_l,
|
||||||
|
Vert.frnt_bot_l,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.top_l,
|
||||||
|
Edg.frnt_l,
|
||||||
|
Edg.back_top,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_l,
|
||||||
|
Edg.back_top,
|
||||||
|
Edg.frnt_bot,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.back_top,
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.back_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.back_r,
|
||||||
|
Edg.bot_r,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 10 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.back_top_l,
|
||||||
|
Vert.back_bot_l,
|
||||||
|
Vert.back_bot_r,
|
||||||
|
Vert.frnt_bot_r,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.bot_l,
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.top_l,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.top_l,
|
||||||
|
Edg.back_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.top_l,
|
||||||
|
Edg.back_r,
|
||||||
|
Edg.back_top,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.back_r,
|
||||||
|
Edg.frnt_r,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 11 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_bot_l,
|
||||||
|
Vert.back_top_r,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.frnt_l,
|
||||||
|
Edg.bot_l,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.back_top,
|
||||||
|
Edg.back_r,
|
||||||
|
Edg.top_r,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 12 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_bot_l,
|
||||||
|
Vert.frnt_bot_r,
|
||||||
|
Vert.back_top_r,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_l,
|
||||||
|
Edg.bot_l,
|
||||||
|
Edg.bot_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_l,
|
||||||
|
Edg.frnt_r,
|
||||||
|
Edg.bot_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.back_top,
|
||||||
|
Edg.back_r,
|
||||||
|
Edg.top_r,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 13 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_top_l,
|
||||||
|
Vert.frnt_bot_r,
|
||||||
|
Vert.back_top_r,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_l,
|
||||||
|
Edg.frnt_top,
|
||||||
|
Edg.top_l,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_r,
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.bot_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.back_r,
|
||||||
|
Edg.back_top,
|
||||||
|
Edg.top_r,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 14 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_bot_l,
|
||||||
|
Vert.frnt_top_l,
|
||||||
|
Vert.back_bot_r,
|
||||||
|
Vert.back_top_r,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_top,
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.top_l,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.top_l,
|
||||||
|
Edg.bot_l,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.back_bot,
|
||||||
|
Edg.back_top,
|
||||||
|
Edg.bot_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.back_top,
|
||||||
|
Edg.bot_r,
|
||||||
|
Edg.top_r,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
# -- 15 --
|
||||||
|
TriangulatedCube(
|
||||||
|
{
|
||||||
|
Vert.frnt_bot_l,
|
||||||
|
Vert.back_bot_l,
|
||||||
|
Vert.back_bot_r,
|
||||||
|
Vert.back_top_r,
|
||||||
|
},
|
||||||
|
[
|
||||||
|
[
|
||||||
|
Edg.frnt_l,
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.back_l,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.back_l,
|
||||||
|
Edg.top_r,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.back_l,
|
||||||
|
Edg.top_r,
|
||||||
|
Edg.back_top,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Edg.frnt_bot,
|
||||||
|
Edg.top_r,
|
||||||
|
Edg.bot_r,
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
base_cases = [
|
do_main(BASE_CASES)
|
||||||
# Source: <https://en.wikipedia.org/wiki/File:MarchingCubes.svg>
|
|
||||||
# -- 1 --
|
|
||||||
TriangulatedCube(set(), []),
|
|
||||||
# -- 2 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_bot_l,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.bot_l,
|
|
||||||
Edg.frnt_l,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 3 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_bot_l,
|
|
||||||
Vert.frnt_bot_r,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_l,
|
|
||||||
Edg.bot_l,
|
|
||||||
Edg.bot_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_l,
|
|
||||||
Edg.frnt_r,
|
|
||||||
Edg.bot_r,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 4 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_bot_l,
|
|
||||||
Vert.frnt_top_r,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.bot_l,
|
|
||||||
Edg.frnt_l,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_top,
|
|
||||||
Edg.top_r,
|
|
||||||
Edg.frnt_r,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
|
|
||||||
# -- 5 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_bot_r,
|
|
||||||
Vert.back_bot_r,
|
|
||||||
Vert.back_bot_l,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_r,
|
|
||||||
Edg.back_r,
|
|
||||||
Edg.back_l,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.bot_l,
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.frnt_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_r,
|
|
||||||
Edg.back_l,
|
|
||||||
Edg.bot_l,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 6 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_bot_l,
|
|
||||||
Vert.back_bot_l,
|
|
||||||
Vert.frnt_bot_r,
|
|
||||||
Vert.back_bot_r,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_l,
|
|
||||||
Edg.frnt_r,
|
|
||||||
Edg.back_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.back_r,
|
|
||||||
Edg.back_l,
|
|
||||||
Edg.frnt_l,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 7 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_top_l,
|
|
||||||
Vert.back_bot_l,
|
|
||||||
Vert.frnt_bot_r,
|
|
||||||
Vert.back_bot_r,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_r,
|
|
||||||
Edg.back_r,
|
|
||||||
Edg.back_l,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.bot_l,
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.frnt_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_r,
|
|
||||||
Edg.back_l,
|
|
||||||
Edg.bot_l,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_l,
|
|
||||||
Edg.frnt_top,
|
|
||||||
Edg.top_l,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 8 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_bot_l,
|
|
||||||
Vert.back_bot_r,
|
|
||||||
Vert.frnt_top_r,
|
|
||||||
Vert.back_top_l,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.bot_l,
|
|
||||||
Edg.frnt_l,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_top,
|
|
||||||
Edg.top_r,
|
|
||||||
Edg.frnt_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.back_bot,
|
|
||||||
Edg.bot_r,
|
|
||||||
Edg.back_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.back_top,
|
|
||||||
Edg.top_l,
|
|
||||||
Edg.back_l,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 9 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.back_bot_l,
|
|
||||||
Vert.back_bot_r,
|
|
||||||
Vert.back_top_l,
|
|
||||||
Vert.frnt_bot_l,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.top_l,
|
|
||||||
Edg.frnt_l,
|
|
||||||
Edg.back_top,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_l,
|
|
||||||
Edg.back_top,
|
|
||||||
Edg.frnt_bot,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.back_top,
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.back_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.back_r,
|
|
||||||
Edg.bot_r,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 10 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.back_top_l,
|
|
||||||
Vert.back_bot_l,
|
|
||||||
Vert.back_bot_r,
|
|
||||||
Vert.frnt_bot_r,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.bot_l,
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.top_l,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.top_l,
|
|
||||||
Edg.back_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.top_l,
|
|
||||||
Edg.back_r,
|
|
||||||
Edg.back_top,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.back_r,
|
|
||||||
Edg.frnt_r,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 11 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_bot_l,
|
|
||||||
Vert.back_top_r,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.frnt_l,
|
|
||||||
Edg.bot_l,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.back_top,
|
|
||||||
Edg.back_r,
|
|
||||||
Edg.top_r,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 12 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_bot_l,
|
|
||||||
Vert.frnt_bot_r,
|
|
||||||
Vert.back_top_r,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_l,
|
|
||||||
Edg.bot_l,
|
|
||||||
Edg.bot_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_l,
|
|
||||||
Edg.frnt_r,
|
|
||||||
Edg.bot_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.back_top,
|
|
||||||
Edg.back_r,
|
|
||||||
Edg.top_r,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 13 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_top_l,
|
|
||||||
Vert.frnt_bot_r,
|
|
||||||
Vert.back_top_r,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_l,
|
|
||||||
Edg.frnt_top,
|
|
||||||
Edg.top_l,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_r,
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.bot_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.back_r,
|
|
||||||
Edg.back_top,
|
|
||||||
Edg.top_r,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 14 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_bot_l,
|
|
||||||
Vert.frnt_top_l,
|
|
||||||
Vert.back_bot_r,
|
|
||||||
Vert.back_top_r,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_top,
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.top_l,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.top_l,
|
|
||||||
Edg.bot_l,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.back_bot,
|
|
||||||
Edg.back_top,
|
|
||||||
Edg.bot_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.back_top,
|
|
||||||
Edg.bot_r,
|
|
||||||
Edg.top_r,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
# -- 15 --
|
|
||||||
TriangulatedCube(
|
|
||||||
{
|
|
||||||
Vert.frnt_bot_l,
|
|
||||||
Vert.back_bot_l,
|
|
||||||
Vert.back_bot_r,
|
|
||||||
Vert.back_top_r,
|
|
||||||
},
|
|
||||||
[
|
|
||||||
[
|
|
||||||
Edg.frnt_l,
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.back_l,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.back_l,
|
|
||||||
Edg.top_r,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.back_l,
|
|
||||||
Edg.top_r,
|
|
||||||
Edg.back_top,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
Edg.frnt_bot,
|
|
||||||
Edg.top_r,
|
|
||||||
Edg.bot_r,
|
|
||||||
],
|
|
||||||
]),
|
|
||||||
]
|
|
||||||
do_main(base_cases)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
Loading…
Reference in a new issue