% TACallig.jam

(loadcallig) (
   (SirPressPackage.bcd).loadbcd
   (ComplexImpl.bcd).loadbcd
   (ComplexCmds.bcd).loadbcd
   (QuadraticImpl.bcd).loadbcd
   (CubicImpl.bcd).loadbcd
   (PolygonPenImpl.bcd).loadbcd
   (TACallig.bcd).loadbcd
   ).cvx .def
  
(broadpen) (0 0 .touch dot 2 .copy .moveto .touch 2 .copy .lineto 1 .drawpath .csub 2 .calligpen).cvx .def
(regpen) (.exch (nc) .exch .store
	0
	(mult) [ 0 3.1415926 2 .mul nc .div .cexp ] .store
	nc 1 .sub (2 .copy mult ().cvx .arrayforall .cmul).cvx .rept
	nc .calligpen).cvx .def

(dot) (.touch .calligdrawdot).cvx .def
(l) (.touch dot .touch .calligdrawline).cvx .def
(s) (.touch dot .touch dot .touch dot .touch dot .calligdrawbezier).cvx .def
(pressblob) (.touch dot .beginpressobject .pressmoveto
	(.touch dot .touch dot .touch dot .presscurveto).cvx .rept
	.endpressobject).cvx .def 

(startpressline)((cy) .exch .def (cx) .exch .def).cvx .def
(pressdrawto) ((y) .exch .def (x) .exch .def cx cy x y .calligdrawline (cy) y .def (cx) x .def).cvx .def