mode_setup;
scale# := 0.25pt#;
knotwid# = 8scale#;
croswid# = 1.25knotwid#;
thin# = 1scale#;
thick# = 2scale#;
sqwid# = 25scale#;
sqht# = 25scale#;
define_pixels(scale, thick, thin);
define_blacker_pixels(knotwid, croswid);
font_normal_space sqwid#;
def --- = .. tension 2 .. enddef;
numeric indist;
numeric knotstyle.ll, knotstyle.rr, knotstyle.l, knotstyle.r, knotstyle.c;
numeric knotstyle.solid;
% A knotstroke is composed of up to five strokes: l ll c rr r
% Each line can be drawn five ways. If knotstyle.x | | | | |
% is 0 it is not drawn, if it is 1 it is drawn with | | | | |
% the thin pen and if 2 it is drawn with the thick pen. | | | | |
% -1 and -2 undraw it with the thin & thick pen | | | | |
% respectively. knotstyle.solid can have four different | | | | |
% values. If it is zero, no solid filling is done. If | | | | |
% 1 then the stroke is filled from l to r. If it is |xxxxxxxxxxx|
% 2 it is filled from ll to rr. Lastly if it is | |xxxxxxx| |
% 3 it is filled from l to ll and rr to r. |x| | |x|
indist := 1/4;
knotstyle.l = 1;
knotstyle.r = 1;
knotstyle.ll = 0;
knotstyle.rr = 0;
knotstyle.c = 0;
knotstyle.solid = 0;
input do2knots
end.