chiark / gitweb /
break ScadObject out (nfc)
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 6 Nov 2017 13:24:45 +0000 (13:24 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 6 Nov 2017 13:24:45 +0000 (13:24 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
genscad
scad.py [new file with mode: 0644]

diff --git a/genscad b/genscad
index ca24c9b545e4a73128ef858a5c278643e969cb68..6e8bfd9e1032ef8c4221b9b15cb3c4cd322e4390 100755 (executable)
--- a/genscad
+++ b/genscad
@@ -6,6 +6,7 @@ import signal
 signal.signal(signal.SIGINT, signal.SIG_DFL)
 
 from moebius import *
+from scad import *
 
 nomsize = 30;
 thick = 2.000;
@@ -17,47 +18,6 @@ nw = 80
 
 m = Moebius(nv, nw)
 
-
-class ScadObject:
-  def __init__(so):
-    so._points = []
-    so._point_indices = {}
-    so._triangles = []
-
-  def writeout(so, objname, scalefactor=1):
-    print('module %s(){ scale(%s) polyhedron(points=[' %
-          (objname, scalefactor))
-    for p in so._points: print(p, ',')
-    print('],faces=[')
-    for t in so._triangles: print(repr(t), ',')
-    print('],convexity=10); }')
-    so._points = None
-
-  def _point(so, p):
-    l = list(p)
-    s = repr(l)
-    try:
-      ix = so._point_indices[s]
-    except KeyError:
-      ix = len(so._points)
-      so._points.append(s)
-      so._point_indices[s] = ix
-    return ix
-
-  def triangle(so, a,b,c):
-    ''' a b c  are clockwise from inside '''
-    so._triangles.append([ so._point(p) for p in (a,b,c) ])
-
-  def quad(so, cnrs):
-    ''' cnrs[0] [1] [3] [2] are clockwise from inside '''
-    so.triangle(cnrs[0], cnrs[1], cnrs[3])
-    so.triangle(cnrs[0], cnrs[3], cnrs[2])
-
-  def rquad(so, cnrs):
-    ''' cnrs[0] [1] [3] [2] are anticlockwise from inside '''
-    so.triangle(cnrs[0], cnrs[3], cnrs[1])
-    so.triangle(cnrs[0], cnrs[2], cnrs[3])
-
 relthick = thick/(nomsize*2)
 
 def make_moebius(objname):
diff --git a/scad.py b/scad.py
new file mode 100644 (file)
index 0000000..889818c
--- /dev/null
+++ b/scad.py
@@ -0,0 +1,43 @@
+
+from __future__ import print_function
+
+class ScadObject:
+  def __init__(so):
+    so._points = []
+    so._point_indices = {}
+    so._triangles = []
+
+  def writeout(so, objname, scalefactor=1):
+    print('module %s(){ scale(%s) polyhedron(points=[' %
+          (objname, scalefactor))
+    for p in so._points: print(p, ',')
+    print('],faces=[')
+    for t in so._triangles: print(repr(t), ',')
+    print('],convexity=10); }')
+    so._points = None
+
+  def _point(so, p):
+    l = list(p)
+    s = repr(l)
+    try:
+      ix = so._point_indices[s]
+    except KeyError:
+      ix = len(so._points)
+      so._points.append(s)
+      so._point_indices[s] = ix
+    return ix
+
+  def triangle(so, a,b,c):
+    ''' a b c  are clockwise from inside '''
+    so._triangles.append([ so._point(p) for p in (a,b,c) ])
+
+  def quad(so, cnrs):
+    ''' cnrs[0] [1] [3] [2] are clockwise from inside '''
+    so.triangle(cnrs[0], cnrs[1], cnrs[3])
+    so.triangle(cnrs[0], cnrs[3], cnrs[2])
+
+  def rquad(so, cnrs):
+    ''' cnrs[0] [1] [3] [2] are anticlockwise from inside '''
+    so.triangle(cnrs[0], cnrs[3], cnrs[1])
+    so.triangle(cnrs[0], cnrs[2], cnrs[3])
+