chiark / gitweb /
simplex wip: use gsl_vector_get for X, for abandonment
[moebius3.git] / moedebug.py
index 8c80c004bdb0a50f1467670bb3efc5f19eaaeaa7..a6d958a4a94bbac453022cd18dd291d153db7bdd 100644 (file)
@@ -18,16 +18,24 @@ def dbg(*args):
       print('// D ', l, file=f)
     f.flush()
 
+def vec2dbg(v): return '[%6.3f %6.3f %6.3f]' % tuple(v)
+
 class BaseVisdebug():
   def line(vd, p0, p1, **kw):
     vd.curve(lambda t: p0 + t * (p1-p0), **kw)
   def arrow(vd, p, d, **kw):
     vd.line(p, p+d, **kw)
+  def basis(vd, basis, hue=(1,1,1)):
+    for ax in range(0,3):
+      vd.arrow(basis[0:3,3], basis[0:3,ax],
+               color= tuple([ c * (1.0 - ax*0.25) for c in hue ]))
 
 class NullVisdebug():
   def curve(*a, **kw): pass
   def line(*a, **kw): pass
+  def circle(*a, **kw): pass
   def arrow(*a, **kw): pass
+  def basis(*a, **kw): pass
   def crashing(*a, **kw): pass
 
 class MatrixVisdebug(BaseVisdebug):
@@ -36,6 +44,14 @@ class MatrixVisdebug(BaseVisdebug):
     m._matrix = matrix
   def curve(m, fn, **kw):
     m._b.curve(lambda t: moenp.augmatmultiply(m._matrix, fn(t)), **kw)
+  def circle(m, c, axis, **kw):
+    m._b.circle(moenp.augmatmultiply(m._matrix, c),
+                moenp.augmatmultiply(m._matrix, axis, 0),
+                **kw)
+  def arrow(m, p, d, **kw):
+    m._b.arrow(moenp.augmatmultiply(m._matrix, p),
+               moenp.augmatmultiply(m._matrix, d, 0),
+               **kw)
   def crashing(m, *a, **kw): m._b.crashing(*a, **kw)
 
 _nullvis = NullVisdebug()