2 from __future__ import print_function
10 def writeout_core(so, scalefactor=1):
11 if not so._points: return
12 print('scale(%s) polyhedron(points=[' % scalefactor)
13 for p in so._points: print(p, ',')
15 for t in so._triangles: print(repr(t), ',')
17 print('],convexity=10);')
19 def writeout(so, objname, scalefactor=1):
20 print('module %s(){' % objname)
21 so.writeout_core(scalefactor)
28 ix = so._point_indices[s]
32 so._point_indices[s] = ix
35 def triangle(so, a,b,c):
36 ''' a b c are clockwise from inside '''
37 so._triangles.append([ so._point(p) for p in (a,b,c) ])
40 ''' cnrs[0] [1] [3] [2] are clockwise from inside '''
41 so.triangle(cnrs[0], cnrs[1], cnrs[3])
42 so.triangle(cnrs[0], cnrs[3], cnrs[2])
45 ''' cnrs[0] [1] [3] [2] are anticlockwise from inside '''
46 so.triangle(cnrs[0], cnrs[3], cnrs[1])
47 so.triangle(cnrs[0], cnrs[2], cnrs[3])