surfaces/bin/iterate.py

28 lines
690 B
Python

import argparse
import json
from surf.geometry import PolygonMesh
from surf.subd import cc
from surf.subd import butterfly
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Manually subdivide mesh '
'(first argument) and dump json to stdout')
parser.add_argument('type', choices=('cc', 'butterfly'))
parser.add_argument('mesh')
parser.add_argument('refines', type=int)
opt = parser.parse_args()
cube = json.load(open(opt.mesh, 'r'))
p = PolygonMesh(**cube)
if opt.type == 'cc':
refine = cc.refine
else:
refine = butterfly.refine
for i in range(opt.refines):
p = refine(p)
print(p)