3 from __future__ import print_function
6 signal.signal(signal.SIGINT, signal.SIG_DFL)
20 stl_point_indices = {}
24 print('module MoebiusCore(){ scale(%s) polyhedron(points=[' % nomsize)
25 for p in stl_points: print(p, ',')
27 for t in stl_triangles: print(repr(t), ',')
28 print('],convexity=10); }')
34 ix = stl_point_indices[s]
38 stl_point_indices[s] = ix
41 def stl_triangle(a,b,c):
42 ''' a b c are clockwise from inside '''
43 stl_triangles.append([ stl_point(p) for p in (a,b,c) ])
46 ''' cnrs[0] [1] [3] [2] are clockwise from inside '''
47 stl_triangle(cnrs[0], cnrs[1], cnrs[3])
48 stl_triangle(cnrs[0], cnrs[3], cnrs[2])
51 ''' cnrs[0] [1] [3] [2] are anticlockwise from inside '''
52 stl_triangle(cnrs[0], cnrs[3], cnrs[1])
53 stl_triangle(cnrs[0], cnrs[2], cnrs[3])
55 relthick = thick/(nomsize*2)
57 for v in range(0, nv):
58 for w in range(0, nw):
59 stl_quad([ m.point_offset(v+a, w+b, relthick)
62 stl_rquad([ m.point_offset(v+a, w+b, -relthick)
65 for q, w in ((stl_quad, 0), (stl_rquad, nw)):
66 q([ m.point_offset(v+a, w, b*relthick)