chiark / gitweb /
mesh: introduce points_round_wire (nfc)
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 7 Nov 2017 16:22:21 +0000 (16:22 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 7 Nov 2017 16:22:21 +0000 (16:22 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
meshscad

index c8924b7ab6edf438137ef88cd7d9ccd6c59ef991..d56754498ac53bfb97f2276060177241c932ebf9 100755 (executable)
--- a/meshscad
+++ b/meshscad
@@ -30,8 +30,11 @@ m = Moebius(nv, nw)
 
 def dpr(v): return '%+3f %+3f %+3f' % tuple(v)
 
-def round_wire(p, vec_surfacenormal, vec_acrosswire, sigma):
-  return r
+def points_round_wire(p, norm, acrs, sigmas):
+  for sigma in sigmas:
+    delta = norm * sin(sigma) + acrs * cos(sigma)
+    r = p + wire/nomsize * delta
+    yield r
 
 def make_moebius(objname):
   print('module %s(){' % objname)
@@ -43,21 +46,18 @@ def make_moebius(objname):
     #print(' QCv,w,T',v,w,is_trav, file=sys.stderr)
     for ab in 0,1:
       p, norm, extt, trav = m.details(v + ab*(not is_trav), w + ab*is_trav)
-      for sx in 0,1:
-        sigma = sigmas[sx]
-        if is_trav: acrs = extt
-        else: acrs = trav
-        delta = norm * sin(sigma) + acrs * cos(sigma)
-        r = p + wire/nomsize * delta
-        #print(' RW,ab,sx',ab,sx,
-        #      'r=',dpr(r),
-        #      'p=',dpr(p),
-        #      'norm=',dpr(norm),
-        #      'extt=',dpr(extt),
-        #      'acrs=',dpr(acrs),
-        #      'delta=',dpr(delta),
-        #      's=','%4f' % sigma,
-        #      file=sys.stderr)
+      if is_trav: acrs = extt
+      else: acrs = trav
+      #print(' RW,ab,sx',ab,sx,
+      #      'r=',dpr(r),
+      #      'p=',dpr(p),
+      #      'norm=',dpr(norm),
+      #      'extt=',dpr(extt),
+      #      'acrs=',dpr(acrs),
+      #      'delta=',dpr(delta),
+      #      's=','%4f' % sigma,
+      #      file=sys.stderr)
+      for r in points_round_wire(p, norm, acrs, sigmas):
         yield r
 
   for v in range(0, nv):