%AMR.jam %Maureen Stone December 12, 1984 12:47:02 pm PST % 20 120 .setoffset 4 .setscale %amr, amsl, (doAllFonts) { (///fit/AMR10.ac) (///fonts/amr10-fit03.sf) doFont (///fit/AMSL10.ac) (///fonts/amsl10-fit01.sf) doFont (///fit/AMSY10.ac) (///fonts/amsy10-fit00.sf) doFont (///fit/AMEX10.ac) (///fonts/amex10-fit00.sf) doFont (///fit/AMBX10.ac) (///fonts/ambx10-fit00.sf) doFont (///fit/AMTI10.ac) (///fonts/amti10-fit00.sf) doFont (///fit/AMTT10.ac) (///fonts/amtt10-fit00.sf) doFont }.cvx .def (setupac) (acfont Contour.openACFont).cvx .def (acfont) (///fit/AMSL10.ac) .def (sfName) (///fit/AMSL10-fit01-original.sf) .def (initAMR) {5 .5 0 0 .metrics setupac}.cvx .def (doFont) {(sfName) .exch .def (acfont) .exch .def acfont = .false log .openlogfile sfName .note ( From: ) .note acfont .noter ( Started at: ) .note .time () .noter .closelogfile acfont Contour.openACFont 5 .5 0 0 .metrics 0 128 doRange .false log .openlogfile ( Finished at: ) .note .time ( ) .noter .closelogfile }.cvx .def (doRange) { (last) .exch .def (first) .exch .def 5 .5 0 0 .metrics first last first .sub .cvi { .dup .cvchar dochar 1 .add}.cvx .rept }.cvx .def (dochar) ( .dup getChar {doContour .nextcon}.cvx .rept logChar ).cvx .def (getChar) {Contour.getACChar .outlineBlackEdge .resetallcon Outline.setallsa .true .closed .nextcon}.cvx .def (doContour) { e ds 5 0 .true PK.find90 %find special points so they don't move 2 .resettangents %but don't set the tangents before filtering .true .avefilter .true .avefilter .true PK.hvextremes 2 .resettangents 18 .1 .true PK.hvlines .25 20 40 PK.dynpoly 70 .true PK.quicktangents 2 PK.nearlyequal 1 .false PK.hvtangents 80 PK.forcecorners mn 1000 .true .dynspline }.cvx .def (log) (May-27.log) .def %(pts/inch)*(em/pts)/(pixels/inch) = 72.27*0.1/1200 (logChar) { sfName Contour.openSF 1.0 Contour.writeSFChar Contour.closeSF }.cvx .def (doContour0) { .true .closed e ds 1 PK.dynpoly 89 .true PK.quicktangents 5 .false PK.hvtangents 89 PK.nearlyninety mn .true .avefilter .true .avefilter .true .avefilter 1000 .true .dynspline }.cvx .def πStone, May 16, 1985 2:11:02 pm PDT change to doContour for AMSL changes to: (.5 (was 1) dynpoly, (75 (was 80) quicktangents, ( Stone, May 25, 1985 12:11:46 pm PDT Forcing a h/v tangent at an extreme is a bad idea. Soften to placing a potential knot there cleanup the tangent setting code, particularly the stuff that finds corners. Angle tolerances should make more sense now. Change parameters to quicktangents, nearly equal and hvtangents Change dynpoly to test for long lines changes to: (, (, ( Stone, May 27, 1985 0:51:57 am PDT Changed h/v lines and 90 corners to include adjacent samples in length calculations when appropriate. This fixes the problem of getting multiple joints near 90 corners. redefined length on PK.find90 to be 5 Change dynpoly to test for intersections of long lines. Needed for 40 degree bend in angle bracket. Decided basic philosophy for pre-filtering information: select points but not tangents. This works fine for the h/v finders. Tangents set correctly with a little help from PK.hvtangents. Changed LSPieceImpl to so its not forced to iterate the maximum number of times but must iterate at least once. Noted that second change made a visible effect changes to: (, (, (, (, (, (, (, (, (, (, (, (, (, (, } Κ˜Jšœ˜J˜0J˜ Jšœ ˜ ˜J˜2J˜4J˜4J˜4J˜4J˜4J˜4J˜ —J˜Jšœ.˜.Jšœ ˜ Jšœ/˜/J˜.˜1J˜J˜J˜,J˜%J˜ J˜J˜J˜ J˜J˜(J˜ J˜ —J˜˜ J˜$J˜J˜BJ˜ —˜ J˜J˜&J˜J˜ —J˜m˜ J˜J˜;J˜=J˜!J˜%J˜J˜J˜J˜Jšœ˜J˜J˜J˜J˜ —J˜J˜3˜ J˜J˜J˜J˜J˜ —˜J˜ J˜J˜ J˜J˜J˜J˜J˜2J˜J˜ —code™"K™Kšœ Οrœœ™>—™#K™\K™»K™%Kšœ ™—™"K™©K™%K™dK™ΌK™ŸK™Kšœ +™7—K™K™K™—…—"‘