X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=moedebug.py;h=a6d958a4a94bbac453022cd18dd291d153db7bdd;hb=29cb20f6187aeed6da1f1a7efa3473ee46015ece;hp=8c80c004bdb0a50f1467670bb3efc5f19eaaeaa7;hpb=d9363ecd4d27dfaaabdea4e82a2a7f52ae67939c;p=moebius3.git diff --git a/moedebug.py b/moedebug.py index 8c80c00..a6d958a 100644 --- a/moedebug.py +++ b/moedebug.py @@ -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()