chiark / gitweb /
vdbg infrastructure
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 27 Nov 2017 12:29:17 +0000 (12:29 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 27 Nov 2017 12:29:17 +0000 (12:29 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
helixish.py
moedebug.py
visual

index cf107ff0cfb461392b5f9247af3acb2dc6a7b7ea..910e3de1e2d8c42b465f0ae05f13bfc889a39272 100644 (file)
@@ -7,7 +7,7 @@ from numpy import cos, sin
 import sys
 import subprocess
 
-from moedebug import dbg
+from moedebug import *
 from moenp import *
 
 from math import atan2, atan, sqrt
@@ -170,6 +170,7 @@ class HelixishCurve():
       l = findcurve_subproc.stdout.readline()
       l = l.rstrip()
       dbg('GOT ', l)
+      if not l: vdbg().crashing('findcurve EOF')
       l = eval(l)
       if l is None: break
 
index 2e0be7af2a6f798c936f79b376235d4a5ba3954a..4f1ea7c15f60a82109c8eda9b895ea978322dc5c 100644 (file)
@@ -13,3 +13,19 @@ def dbg(*args):
   for f in _files:
     print('// D ', *args, file=f)
     f.flush()
+
+class NullVisdebug():
+  def curve(*a, **kw): pass
+  def crashing(*a, **kw): pass
+
+_nullvis = NullVisdebug()
+_vis = [ _nullvis ]
+
+def vdbg():
+  return _vis[0]
+
+def vdbg_enabled():
+  return _vis[0] != _nullvis
+
+def vdbg_enable(vis):
+  _vis[0] = vis
diff --git a/visual b/visual
index a7d329039bf03f208198ada312e2ab78590cfbf5..95125e8fd99556ce99f86b6fdbb75c6c0dea5c97 100755 (executable)
--- a/visual
+++ b/visual
@@ -1,17 +1,32 @@
 #!/usr/bin/python
 
+from __future__ import print_function
+
 import signal
 signal.signal(signal.SIGINT, signal.SIG_DFL)
 
 from visual import *
 from bezier import BezierSegment
 import numpy as np
+import sys
 
 from moebius import *
+from moedebug import *
 
 nv = 40
 nw = 40
 
+class Visdebug():
+  def curve(vd, fn):
+    # fn(t) => 3-tuple, 3-list, or similar, for t \elem [0,1]
+    curve(pos = [ list(fn(t)) for t in np.linspace(0,1,11) ])
+  def crashing(vd, msg):
+    print("CRASHING - VISDEBUG", msg, file=sys.stderr)
+    rate(1E-8)
+
+dbg_file(sys.stderr)
+vdbg_enable(Visdebug())
+
 m = Moebius(nv, nw)
 
 vs = range(0, nv+1)