Removed genfonts

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@119 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
sandalle 2003-07-02 15:23:27 +00:00
parent 50b032cec5
commit a37e97a6d8
9 changed files with 0 additions and 2791 deletions

8
.gitattributes vendored
View File

@ -56,14 +56,6 @@ freeglut/freeglut/freeglut13.plg svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/freeglut_static.dsp svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/freeglutdll.dsp svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/freeglutstatic.dsw svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/genfonts/Makefile.am svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/genfonts/Roman.src svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/genfonts/Roman_M.src svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/genfonts/genfonts.c svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/genfonts/genstroke.c svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/genfonts/lex.l svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/genfonts/to_stroke.y svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/genfonts/wfont.h svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/include/GL/Makefile.am svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/include/GL/freeglut.h svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/include/GL/freeglut_ext.h svn_keywords=Author+Date+Id+Revision

View File

@ -1,8 +0,0 @@
## Process this file with automake to produce Makefile.im
bin_PROGRAMS = genfonts genstroke
genfonts_SOURCES = genfonts.c
genstroke_SOURCES = genstroke.c
genfonts_LDADD = $(X_LIBS) -lglib -lX11 -lXext
genstroke_LDADD =
EXTRA_DIST = genfonts.c genstroke.c

View File

@ -1,603 +0,0 @@
##
# $XConsortium: Roman.src,v 5.3 94/04/17 20:10:05 rws Exp $
##
## Copyright (c) 1989,1990, 1991 by Sun Microsystems, Inc. and the X Consortium.
##
## All Rights Reserved
##
## Permission to use, copy, modify, and distribute this software and its
## documentation for any purpose and without fee is hereby granted,
## provided that the above copyright notice appear in all copies and that
## both that copyright notice and this permission notice appear in
## supporting documentation, and that the names of Sun Microsystems
## and the X Consortium not be used in advertising or publicity
## pertaining to distribution of the software without specific, written
## prior permission.
##
## SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
## INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
## EVENT SHALL SUN MICROSYSTEMS OR THE X CONSORTIUM BE LIABLE FOR ANY SPECIAL,
## INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
## FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
## NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
## WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# Roman Simplex font.
FONTNAME Roman
TOP 119.0476
BOTTOM -33.3333
NUM_CH 128
PROPERTIES 3
(CHARSET_REGISTRY ISO8859)
(CHARSET_ENCODING "1")
(SPACING P)
INDEX 32 STROKE 0 CENTER 52.3810 RIGHT 104.7619
INDEX 33 STROKE 2 CENTER 4.7619 RIGHT 9.5238
OPEN 2 (4.7619 100.0000) (4.7619 33.3333)
OPEN 5 (4.7619 9.5238) (0.0000 4.7619) (4.7619 0.0000)
(9.5238 4.7619) (4.7619 9.5238)
INDEX 34 STROKE 2 CENTER 19.0476 RIGHT 38.0952
OPEN 2 (0.0000 100.0000) (0.0000 66.6667)
OPEN 2 (38.0952 100.0000) (38.0952 66.6667)
INDEX 35 STROKE 4 CENTER 33.3333 RIGHT 71.4286
OPEN 2 (38.0952 119.0476) (4.7619 -33.3333)
OPEN 2 (66.6667 119.0476) (33.3333 -33.3333)
OPEN 2 (4.7619 57.1429) (71.4286 57.1429)
OPEN 2 (0.0000 28.5714) (66.6667 28.5714)
INDEX 36 STROKE 3 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (23.8095 119.0476) (23.8095 -19.0476)
OPEN 2 (42.8571 119.0476) (42.8571 -19.0476)
OPEN 20 (66.6667 85.7143) (57.1429 95.2381) (42.8571 100.0000)
(23.8095 100.0000) (9.5238 95.2381) (0.0000 85.7143) (0.0000 76.1905)
(4.7619 66.6667) (9.5238 61.9048) (19.0476 57.1429) (47.6190 47.6190)
(57.1429 42.8571) (61.9048 38.0952) (66.6667 28.5714) (66.6667 14.2857)
(57.1429 4.7619) (42.8571 0.0000) (23.8095 0.0000) (9.5238 4.7619)
(0.0000 14.2857)
INDEX 37 STROKE 3 CENTER 42.8571 RIGHT 85.7143
OPEN 2 (85.7143 100.0000) (0.0000 0.0000)
OPEN 16 (23.8095 100.0000) (33.3333 90.4762) (33.3333 80.9524)
(28.5714 71.4286) (19.0476 66.6667) (9.5238 66.6667) (0.0000 76.1905)
(0.0000 85.7143) (4.7619 95.2381) (14.2857 100.0000) (23.8095 100.0000)
(33.3333 95.2381) (47.6190 90.4762) (61.9048 90.4762) (76.1905 95.2381)
(85.7143 100.0000)
OPEN 11 (66.6667 33.3333) (57.1429 28.5714) (52.3810 19.0476)
(52.3810 9.5238) (61.9048 0.0000) (71.4286 0.0000) (80.9524 4.7619)
(85.7143 14.2857) (85.7143 23.8095) (76.1905 33.3333) (66.6667 33.3333)
INDEX 38 STROKE 1 CENTER 47.6190 RIGHT 95.2381
OPEN 34 (95.2381 57.1429) (95.2381 61.9048) (90.4762 66.6667)
(85.7143 66.6667) (80.9524 61.9048) (76.1905 52.3810) (66.6667 28.5714)
(57.1429 14.2857) (47.6190 4.7619) (38.0952 0.0000) (19.0476 0.0000)
(9.5238 4.7619) (4.7619 9.5238) (0.0000 19.0476) (0.0000 28.5714)
(4.7619 38.0952) (9.5238 42.8571) (42.8571 61.9048) (47.6190 66.6667)
(52.3810 76.1905) (52.3810 85.7143) (47.6190 95.2381) (38.0952 100.0000)
(28.5714 95.2381) (23.8095 85.7143) (23.8095 76.1905) (28.5714 61.9048)
(38.0952 47.6190) (61.9048 14.2857) (71.4286 4.7619) (80.9524 0.0000)
(90.4762 0.0000) (95.2381 4.7619) (95.2381 9.5238)
INDEX 39 STROKE 1 CENTER 0.0000 RIGHT 0.0000
OPEN 2 (0.0000 100.0000) (0.0000 66.6667)
INDEX 40 STROKE 1 CENTER 14.2857 RIGHT 33.3333
OPEN 10 (33.3333 119.0476) (23.8095 109.5238) (14.2857 95.2381)
(4.7619 76.1905) (0.0000 52.3810) (0.0000 33.3333) (4.7619 9.5238)
(14.2857 -9.5238) (23.8095 -23.8095) (33.3333 -33.3333)
INDEX 41 STROKE 1 CENTER 19.0476 RIGHT 33.3333
OPEN 10 (0.0000 119.0476) (9.5238 109.5238) (19.0476 95.2381)
(28.5714 76.1905) (33.3333 52.3810) (33.3333 33.3333) (28.5714 9.5238)
(19.0476 -9.5238) (9.5238 -23.8095) (0.0000 -33.3333)
INDEX 42 STROKE 3 CENTER 23.8095 RIGHT 47.6190
OPEN 2 (23.8095 71.4286) (23.8095 14.2857)
OPEN 2 (0.0000 57.1429) (47.6190 28.5714)
OPEN 2 (47.6190 57.1429) (0.0000 28.5714)
INDEX 43 STROKE 2 CENTER 42.8571 RIGHT 85.7143
OPEN 2 (42.8571 85.7143) (42.8571 0.0000)
OPEN 2 (0.0000 42.8571) (85.7143 42.8571)
INDEX 44 STROKE 1 CENTER 4.7619 RIGHT 9.5238
OPEN 8 (9.5238 4.7619) (4.7619 0.0000) (0.0000 4.7619)
(4.7619 9.5238) (9.5238 4.7619) (9.5238 -4.7619) (4.7619 -14.2857)
(0.0000 -19.0476)
INDEX 45 STROKE 1 CENTER 42.8571 RIGHT 85.7143
OPEN 2 (0.0000 42.8571) (85.7143 42.8571)
INDEX 46 STROKE 1 CENTER 4.7619 RIGHT 9.5238
OPEN 5 (4.7619 9.5238) (0.0000 4.7619) (4.7619 0.0000)
(9.5238 4.7619) (4.7619 9.5238)
INDEX 47 STROKE 1 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (0.0000 -14.2857) (66.6667 100.0000)
INDEX 48 STROKE 1 CENTER 33.3333 RIGHT 66.6667
OPEN 17 (28.5714 100.0000) (14.2857 95.2381) (4.7619 80.9524)
(0.0000 57.1429) (0.0000 42.8571) (4.7619 19.0476) (14.2857 4.7619)
(28.5714 0.0000) (38.0952 0.0000) (52.3810 4.7619) (61.9048 19.0476)
(66.6667 42.8571) (66.6667 57.1429) (61.9048 80.9524) (52.3810 95.2381)
(38.0952 100.0000) (28.5714 100.0000)
INDEX 49 STROKE 1 CENTER 19.0476 RIGHT 23.8095
OPEN 4 (0.0000 80.9524) (9.5238 85.7143) (23.8095 100.0000)
(23.8095 0.0000)
INDEX 50 STROKE 1 CENTER 33.3333 RIGHT 66.6667
OPEN 14 (4.7619 76.1905) (4.7619 80.9524) (9.5238 90.4762)
(14.2857 95.2381) (23.8095 100.0000) (42.8571 100.0000) (52.3810 95.2381)
(57.1429 90.4762) (61.9048 80.9524) (61.9048 71.4286) (57.1429 61.9048)
(47.6190 47.6190) (0.0000 0.0000) (66.6667 0.0000)
INDEX 51 STROKE 1 CENTER 33.3333 RIGHT 66.6667
OPEN 15 (9.5238 100.0000) (61.9048 100.0000) (33.3333 61.9048)
(47.6190 61.9048) (57.1429 57.1429) (61.9048 52.3810) (66.6667 38.0952)
(66.6667 28.5714) (61.9048 14.2857) (52.3810 4.7619) (38.0952 0.0000)
(23.8095 0.0000) (9.5238 4.7619) (4.7619 9.5238) (0.0000 19.0476)
INDEX 52 STROKE 2 CENTER 33.3333 RIGHT 71.4286
OPEN 3 (47.6190 100.0000) (0.0000 33.3333) (71.4286 33.3333)
OPEN 2 (47.6190 100.0000) (47.6190 0.0000)
INDEX 53 STROKE 1 CENTER 33.3333 RIGHT 66.6667
OPEN 17 (57.1429 100.0000) (9.5238 100.0000) (4.7619 57.1429)
(9.5238 61.9048) (23.8095 66.6667) (38.0952 66.6667) (52.3810 61.9048)
(61.9048 52.3810) (66.6667 38.0952) (66.6667 28.5714) (61.9048 14.2857)
(52.3810 4.7619) (38.0952 0.0000) (23.8095 0.0000) (9.5238 4.7619)
(4.7619 9.5238) (0.0000 19.0476)
INDEX 54 STROKE 1 CENTER 28.5714 RIGHT 61.9048
OPEN 23 (57.1429 85.7143) (52.3810 95.2381) (38.0952 100.0000)
(28.5714 100.0000) (14.2857 95.2381) (4.7619 80.9524) (0.0000 57.1429)
(0.0000 33.3333) (4.7619 14.2857) (14.2857 4.7619) (28.5714 0.0000)
(33.3333 0.0000) (47.6190 4.7619) (57.1429 14.2857) (61.9048 28.5714)
(61.9048 33.3333) (57.1429 47.6190) (47.6190 57.1429) (33.3333 61.9048)
(28.5714 61.9048) (14.2857 57.1429) (4.7619 47.6190) (0.0000 33.3333)
INDEX 55 STROKE 2 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (66.6667 100.0000) (19.0476 0.0000)
OPEN 2 (0.0000 100.0000) (66.6667 100.0000)
INDEX 56 STROKE 1 CENTER 33.3333 RIGHT 66.6667
OPEN 29 (23.8095 100.0000) (9.5238 95.2381) (4.7619 85.7143)
(4.7619 76.1905) (9.5238 66.6667) (19.0476 61.9048) (38.0952 57.1429)
(52.3810 52.3810) (61.9048 42.8571) (66.6667 33.3333) (66.6667 19.0476)
(61.9048 9.5238) (57.1429 4.7619) (42.8571 0.0000) (23.8095 0.0000)
(9.5238 4.7619) (4.7619 9.5238) (0.0000 19.0476) (0.0000 33.3333)
(4.7619 42.8571) (14.2857 52.3810) (28.5714 57.1429) (47.6190 61.9048)
(57.1429 66.6667) (61.9048 76.1905) (61.9048 85.7143) (57.1429 95.2381)
(42.8571 100.0000) (23.8095 100.0000)
INDEX 57 STROKE 1 CENTER 33.3333 RIGHT 61.9048
OPEN 23 (61.9048 66.6667) (57.1429 52.3810) (47.6190 42.8571)
(33.3333 38.0952) (28.5714 38.0952) (14.2857 42.8571) (4.7619 52.3810)
(0.0000 66.6667) (0.0000 71.4286) (4.7619 85.7143) (14.2857 95.2381)
(28.5714 100.0000) (33.3333 100.0000) (47.6190 95.2381) (57.1429 85.7143)
(61.9048 66.6667) (61.9048 42.8571) (57.1429 19.0476) (47.6190 4.7619)
(33.3333 0.0000) (23.8095 0.0000) (9.5238 4.7619) (4.7619 14.2857)
INDEX 58 STROKE 2 CENTER 4.7619 RIGHT 9.5238
OPEN 5 (4.7619 66.6667) (0.0000 61.9048) (4.7619 57.1429)
(9.5238 61.9048) (4.7619 66.6667)
OPEN 5 (4.7619 9.5238) (0.0000 4.7619) (4.7619 0.0000)
(9.5238 4.7619) (4.7619 9.5238)
INDEX 59 STROKE 2 CENTER 4.7619 RIGHT 9.5238
OPEN 5 (4.7619 66.6667) (0.0000 61.9048) (4.7619 57.1429)
(9.5238 61.9048) (4.7619 66.6667)
OPEN 8 (9.5238 4.7619) (4.7619 0.0000) (0.0000 4.7619)
(4.7619 9.5238) (9.5238 4.7619) (9.5238 -4.7619) (4.7619 -14.2857)
(0.0000 -19.0476)
INDEX 60 STROKE 1 CENTER 38.0952 RIGHT 76.1905
OPEN 3 (76.1905 85.7143) (0.0000 42.8571) (76.1905 0.0000)
INDEX 61 STROKE 2 CENTER 42.8571 RIGHT 85.7143
OPEN 2 (0.0000 57.1429) (85.7143 57.1429)
OPEN 2 (0.0000 28.5714) (85.7143 28.5714)
INDEX 62 STROKE 1 CENTER 38.0952 RIGHT 76.1905
OPEN 3 (0.0000 85.7143) (76.1905 42.8571) (0.0000 0.0000)
INDEX 63 STROKE 2 CENTER 28.5714 RIGHT 57.1429
OPEN 14 (0.0000 76.1905) (0.0000 80.9524) (4.7619 90.4762)
(9.5238 95.2381) (19.0476 100.0000) (38.0952 100.0000) (47.6190 95.2381)
(52.3810 90.4762) (57.1429 80.9524) (57.1429 71.4286) (52.3810 61.9048)
(47.6190 57.1429) (28.5714 47.6190) (28.5714 33.3333)
OPEN 5 (28.5714 9.5238) (23.8095 4.7619) (28.5714 0.0000)
(33.3333 4.7619) (28.5714 9.5238)
INDEX 64 STROKE 2 CENTER 28.5714 RIGHT 61.9048
OPEN 8 (42.8571 52.3810) (33.3333 57.1429) (23.8095 57.1429)
(19.0476 47.6190) (19.0476 42.8571) (23.8095 33.3333) (33.3333 33.3333)
(42.8571 38.0952)
OPEN 19 (42.8571 57.1429) (42.8571 38.0952) (47.6190 33.3333)
(57.1429 33.3333) (61.9048 42.8571) (61.9048 47.6190) (57.1429 61.9048)
(47.6190 71.4286) (33.3333 76.1905) (28.5714 76.1905) (14.2857 71.4286)
(4.7619 61.9048) (0.0000 47.6190) (0.0000 42.8571) (4.7619 28.5714)
(14.2857 19.0476) (28.5714 14.2857) (33.3333 14.2857) (47.6190 19.0476)
INDEX 65 STROKE 3 CENTER 38.0952 RIGHT 76.1905
OPEN 2 (38.0952 100.0000) (0.0000 0.0000)
OPEN 2 (38.0952 100.0000) (76.1905 0.0000)
OPEN 2 (14.2857 33.3333) (61.9048 33.3333)
INDEX 66 STROKE 3 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 9 (0.0000 100.0000) (42.8571 100.0000) (57.1429 95.2381)
(61.9048 90.4762) (66.6667 80.9524) (66.6667 71.4286) (61.9048 61.9048)
(57.1429 57.1429) (42.8571 52.3810)
OPEN 10 (0.0000 52.3810) (42.8571 52.3810) (57.1429 47.6190)
(61.9048 42.8571) (66.6667 33.3333) (66.6667 19.0476) (61.9048 9.5238)
(57.1429 4.7619) (42.8571 0.0000) (0.0000 0.0000)
INDEX 67 STROKE 1 CENTER 33.3333 RIGHT 71.4286
OPEN 18 (71.4286 76.1905) (66.6667 85.7143) (57.1429 95.2381)
(47.6190 100.0000) (28.5714 100.0000) (19.0476 95.2381) (9.5238 85.7143)
(4.7619 76.1905) (0.0000 61.9048) (0.0000 38.0952) (4.7619 23.8095)
(9.5238 14.2857) (19.0476 4.7619) (28.5714 0.0000) (47.6190 0.0000)
(57.1429 4.7619) (66.6667 14.2857) (71.4286 23.8095)
INDEX 68 STROKE 2 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 12 (0.0000 100.0000) (33.3333 100.0000) (47.6190 95.2381)
(57.1429 85.7143) (61.9048 76.1905) (66.6667 61.9048) (66.6667 38.0952)
(61.9048 23.8095) (57.1429 14.2857) (47.6190 4.7619) (33.3333 0.0000)
(0.0000 0.0000)
INDEX 69 STROKE 4 CENTER 28.5714 RIGHT 61.9048
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 2 (0.0000 100.0000) (61.9048 100.0000)
OPEN 2 (0.0000 52.3810) (38.0952 52.3810)
OPEN 2 (0.0000 0.0000) (61.9048 0.0000)
INDEX 70 STROKE 3 CENTER 28.5714 RIGHT 61.9048
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 2 (0.0000 100.0000) (61.9048 100.0000)
OPEN 2 (0.0000 52.3810) (38.0952 52.3810)
INDEX 71 STROKE 2 CENTER 33.3333 RIGHT 71.4286
OPEN 19 (71.4286 76.1905) (66.6667 85.7143) (57.1429 95.2381)
(47.6190 100.0000) (28.5714 100.0000) (19.0476 95.2381) (9.5238 85.7143)
(4.7619 76.1905) (0.0000 61.9048) (0.0000 38.0952) (4.7619 23.8095)
(9.5238 14.2857) (19.0476 4.7619) (28.5714 0.0000) (47.6190 0.0000)
(57.1429 4.7619) (66.6667 14.2857) (71.4286 23.8095) (71.4286 38.0952)
OPEN 2 (47.6190 38.0952) (71.4286 38.0952)
INDEX 72 STROKE 3 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 2 (66.6667 100.0000) (66.6667 0.0000)
OPEN 2 (0.0000 52.3810) (66.6667 52.3810)
INDEX 73 STROKE 1 CENTER 0.0000 RIGHT 0.0000
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
INDEX 74 STROKE 1 CENTER 28.5714 RIGHT 47.6190
OPEN 10 (47.6190 100.0000) (47.6190 23.8095) (42.8571 9.5238)
(38.0952 4.7619) (28.5714 0.0000) (19.0476 0.0000) (9.5238 4.7619)
(4.7619 9.5238) (0.0000 23.8095) (0.0000 33.3333)
INDEX 75 STROKE 3 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 2 (66.6667 100.0000) (0.0000 33.3333)
OPEN 2 (23.8095 57.1429) (66.6667 0.0000)
INDEX 76 STROKE 2 CENTER 28.5714 RIGHT 57.1429
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 2 (0.0000 0.0000) (57.1429 0.0000)
INDEX 77 STROKE 4 CENTER 38.0952 RIGHT 76.1905
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 2 (0.0000 100.0000) (38.0952 0.0000)
OPEN 2 (76.1905 100.0000) (38.0952 0.0000)
OPEN 2 (76.1905 100.0000) (76.1905 0.0000)
INDEX 78 STROKE 3 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 2 (0.0000 100.0000) (66.6667 0.0000)
OPEN 2 (66.6667 100.0000) (66.6667 0.0000)
INDEX 79 STROKE 1 CENTER 38.0952 RIGHT 76.1905
OPEN 21 (28.5714 100.0000) (19.0476 95.2381) (9.5238 85.7143)
(4.7619 76.1905) (0.0000 61.9048) (0.0000 38.0952) (4.7619 23.8095)
(9.5238 14.2857) (19.0476 4.7619) (28.5714 0.0000) (47.6190 0.0000)
(57.1429 4.7619) (66.6667 14.2857) (71.4286 23.8095) (76.1905 38.0952)
(76.1905 61.9048) (71.4286 76.1905) (66.6667 85.7143) (57.1429 95.2381)
(47.6190 100.0000) (28.5714 100.0000)
INDEX 80 STROKE 2 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 10 (0.0000 100.0000) (42.8571 100.0000) (57.1429 95.2381)
(61.9048 90.4762) (66.6667 80.9524) (66.6667 66.6667) (61.9048 57.1429)
(57.1429 52.3810) (42.8571 47.6190) (0.0000 47.6190)
INDEX 81 STROKE 2 CENTER 38.0952 RIGHT 76.1905
OPEN 21 (28.5714 100.0000) (19.0476 95.2381) (9.5238 85.7143)
(4.7619 76.1905) (0.0000 61.9048) (0.0000 38.0952) (4.7619 23.8095)
(9.5238 14.2857) (19.0476 4.7619) (28.5714 0.0000) (47.6190 0.0000)
(57.1429 4.7619) (66.6667 14.2857) (71.4286 23.8095) (76.1905 38.0952)
(76.1905 61.9048) (71.4286 76.1905) (66.6667 85.7143) (57.1429 95.2381)
(47.6190 100.0000) (28.5714 100.0000)
OPEN 2 (42.8571 19.0476) (71.4286 -9.5238)
INDEX 82 STROKE 3 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 10 (0.0000 100.0000) (42.8571 100.0000) (57.1429 95.2381)
(61.9048 90.4762) (66.6667 80.9524) (66.6667 71.4286) (61.9048 61.9048)
(57.1429 57.1429) (42.8571 52.3810) (0.0000 52.3810)
OPEN 2 (33.3333 52.3810) (66.6667 0.0000)
INDEX 83 STROKE 1 CENTER 33.3333 RIGHT 66.6667
OPEN 20 (66.6667 85.7143) (57.1429 95.2381) (42.8571 100.0000)
(23.8095 100.0000) (9.5238 95.2381) (0.0000 85.7143) (0.0000 76.1905)
(4.7619 66.6667) (9.5238 61.9048) (19.0476 57.1429) (47.6190 47.6190)
(57.1429 42.8571) (61.9048 38.0952) (66.6667 28.5714) (66.6667 14.2857)
(57.1429 4.7619) (42.8571 0.0000) (23.8095 0.0000) (9.5238 4.7619)
(0.0000 14.2857)
INDEX 84 STROKE 2 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (33.3333 100.0000) (33.3333 0.0000)
OPEN 2 (0.0000 100.0000) (66.6667 100.0000)
INDEX 85 STROKE 1 CENTER 33.3333 RIGHT 66.6667
OPEN 10 (0.0000 100.0000) (0.0000 28.5714) (4.7619 14.2857)
(14.2857 4.7619) (28.5714 0.0000) (38.0952 0.0000) (52.3810 4.7619)
(61.9048 14.2857) (66.6667 28.5714) (66.6667 100.0000)
INDEX 86 STROKE 2 CENTER 38.0952 RIGHT 76.1905
OPEN 2 (0.0000 100.0000) (38.0952 0.0000)
OPEN 2 (76.1905 100.0000) (38.0952 0.0000)
INDEX 87 STROKE 4 CENTER 47.6190 RIGHT 95.2381
OPEN 2 (0.0000 100.0000) (23.8095 0.0000)
OPEN 2 (47.6190 100.0000) (23.8095 0.0000)
OPEN 2 (47.6190 100.0000) (71.4286 0.0000)
OPEN 2 (95.2381 100.0000) (71.4286 0.0000)
INDEX 88 STROKE 2 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (0.0000 100.0000) (66.6667 0.0000)
OPEN 2 (66.6667 100.0000) (0.0000 0.0000)
INDEX 89 STROKE 2 CENTER 38.0952 RIGHT 76.1905
OPEN 3 (0.0000 100.0000) (38.0952 52.3810) (38.0952 0.0000)
OPEN 2 (76.1905 100.0000) (38.0952 52.3810)
INDEX 90 STROKE 3 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (66.6667 100.0000) (0.0000 0.0000)
OPEN 2 (0.0000 100.0000) (66.6667 100.0000)
OPEN 2 (0.0000 0.0000) (66.6667 0.0000)
INDEX 91 STROKE 4 CENTER 14.2857 RIGHT 33.3333
OPEN 2 (0.0000 119.0476) (0.0000 -33.3333)
OPEN 2 (4.7619 119.0476) (4.7619 -33.3333)
OPEN 2 (0.0000 119.0476) (33.3333 119.0476)
OPEN 2 (0.0000 -33.3333) (33.3333 -33.3333)
INDEX 92 STROKE 1 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (0.0000 100.0000) (66.6667 -14.2857)
INDEX 93 STROKE 4 CENTER 19.0476 RIGHT 33.3333
OPEN 2 (28.5714 119.0476) (28.5714 -33.3333)
OPEN 2 (33.3333 119.0476) (33.3333 -33.3333)
OPEN 2 (0.0000 119.0476) (33.3333 119.0476)
OPEN 2 (0.0000 -33.3333) (33.3333 -33.3333)
INDEX 94 STROKE 2 CENTER 38.0952 RIGHT 76.1905
OPEN 2 (38.0952 109.5238) (0.0000 42.8571)
OPEN 2 (38.0952 109.5238) (76.1905 42.8571)
INDEX 95 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 5 (0.0000 -33.3333) (104.7619 -33.3333) (104.7619 -28.5714)
(0.0000 -28.5714) (0.0000 -33.3333)
INDEX 96 STROKE 2 CENTER 14.2857 RIGHT 28.5714
OPEN 2 (4.7619 100.0000) (28.5714 71.4286)
OPEN 3 (4.7619 100.0000) (0.0000 95.2381) (28.5714 71.4286)
INDEX 97 STROKE 2 CENTER 28.5714 RIGHT 57.1429
OPEN 2 (57.1429 66.6667) (57.1429 0.0000)
OPEN 14 (57.1429 52.3810) (47.6190 61.9048) (38.0952 66.6667)
(23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952)
(0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000)
(38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
INDEX 98 STROKE 2 CENTER 28.5714 RIGHT 57.1429
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 14 (0.0000 52.3810) (9.5238 61.9048) (19.0476 66.6667)
(33.3333 66.6667) (42.8571 61.9048) (52.3810 52.3810) (57.1429 38.0952)
(57.1429 28.5714) (52.3810 14.2857) (42.8571 4.7619) (33.3333 0.0000)
(19.0476 0.0000) (9.5238 4.7619) (0.0000 14.2857)
INDEX 99 STROKE 1 CENTER 28.5714 RIGHT 57.1429
OPEN 14 (57.1429 52.3810) (47.6190 61.9048) (38.0952 66.6667)
(23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952)
(0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000)
(38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
INDEX 100 STROKE 2 CENTER 28.5714 RIGHT 57.1429
OPEN 2 (57.1429 100.0000) (57.1429 0.0000)
OPEN 14 (57.1429 52.3810) (47.6190 61.9048) (38.0952 66.6667)
(23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952)
(0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000)
(38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
INDEX 101 STROKE 1 CENTER 28.5714 RIGHT 57.1429
OPEN 17 (0.0000 38.0952) (57.1429 38.0952) (57.1429 47.6190)
(52.3810 57.1429) (47.6190 61.9048) (38.0952 66.6667) (23.8095 66.6667)
(14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952) (0.0000 28.5714)
(4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000) (38.0952 0.0000)
(47.6190 4.7619) (57.1429 14.2857)
INDEX 102 STROKE 2 CENTER 14.2857 RIGHT 38.0952
OPEN 5 (38.0952 100.0000) (28.5714 100.0000) (19.0476 95.2381)
(14.2857 80.9524) (14.2857 0.0000)
OPEN 2 (0.0000 66.6667) (33.3333 66.6667)
INDEX 103 STROKE 2 CENTER 28.5714 RIGHT 57.1429
OPEN 7 (57.1429 66.6667) (57.1429 -9.5238) (52.3810 -23.8095)
(47.6190 -28.5714) (38.0952 -33.3333) (23.8095 -33.3333) (14.2857 -28.5714)
OPEN 14 (57.1429 52.3810) (47.6190 61.9048) (38.0952 66.6667)
(23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952)
(0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000)
(38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
INDEX 104 STROKE 2 CENTER 23.8095 RIGHT 52.3810
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 7 (0.0000 47.6190) (14.2857 61.9048) (23.8095 66.6667)
(38.0952 66.6667) (47.6190 61.9048) (52.3810 47.6190) (52.3810 0.0000)
INDEX 105 STROKE 2 CENTER 4.7619 RIGHT 9.5238
OPEN 5 (0.0000 100.0000) (4.7619 95.2381) (9.5238 100.0000)
(4.7619 104.7619) (0.0000 100.0000)
OPEN 2 (4.7619 66.6667) (4.7619 0.0000)
INDEX 106 STROKE 2 CENTER 19.0476 RIGHT 28.5714
OPEN 5 (19.0476 100.0000) (23.8095 95.2381) (28.5714 100.0000)
(23.8095 104.7619) (19.0476 100.0000)
OPEN 5 (23.8095 66.6667) (23.8095 -14.2857) (19.0476 -28.5714)
(9.5238 -33.3333) (0.0000 -33.3333)
INDEX 107 STROKE 3 CENTER 23.8095 RIGHT 52.3810
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
OPEN 2 (47.6190 66.6667) (0.0000 19.0476)
OPEN 2 (19.0476 38.0952) (52.3810 0.0000)
INDEX 108 STROKE 1 CENTER 0.0000 RIGHT 0.0000
OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
INDEX 109 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (0.0000 66.6667) (0.0000 0.0000)
OPEN 7 (0.0000 47.6190) (14.2857 61.9048) (23.8095 66.6667)
(38.0952 66.6667) (47.6190 61.9048) (52.3810 47.6190) (52.3810 0.0000)
OPEN 7 (52.3810 47.6190) (66.6667 61.9048) (76.1905 66.6667)
(90.4762 66.6667) (100.0000 61.9048) (104.7619 47.6190) (104.7619 0.0000)
INDEX 110 STROKE 2 CENTER 23.8095 RIGHT 52.3810
OPEN 2 (0.0000 66.6667) (0.0000 0.0000)
OPEN 7 (0.0000 47.6190) (14.2857 61.9048) (23.8095 66.6667)
(38.0952 66.6667) (47.6190 61.9048) (52.3810 47.6190) (52.3810 0.0000)
INDEX 111 STROKE 1 CENTER 28.5714 RIGHT 61.9048
OPEN 17 (23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810)
(0.0000 38.0952) (0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619)
(23.8095 0.0000) (38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
(61.9048 28.5714) (61.9048 38.0952) (57.1429 52.3810) (47.6190 61.9048)
(38.0952 66.6667) (23.8095 66.6667)
INDEX 112 STROKE 2 CENTER 28.5714 RIGHT 57.1429
OPEN 2 (0.0000 66.6667) (0.0000 -33.3333)
OPEN 14 (0.0000 52.3810) (9.5238 61.9048) (19.0476 66.6667)
(33.3333 66.6667) (42.8571 61.9048) (52.3810 52.3810) (57.1429 38.0952)
(57.1429 28.5714) (52.3810 14.2857) (42.8571 4.7619) (33.3333 0.0000)
(19.0476 0.0000) (9.5238 4.7619) (0.0000 14.2857)
INDEX 113 STROKE 2 CENTER 28.5714 RIGHT 57.1429
OPEN 2 (57.1429 66.6667) (57.1429 -33.3333)
OPEN 14 (57.1429 52.3810) (47.6190 61.9048) (38.0952 66.6667)
(23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952)
(0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000)
(38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
INDEX 114 STROKE 2 CENTER 14.2857 RIGHT 38.0952
OPEN 2 (0.0000 66.6667) (0.0000 0.0000)
OPEN 5 (0.0000 38.0952) (4.7619 52.3810) (14.2857 61.9048)
(23.8095 66.6667) (38.0952 66.6667)
INDEX 115 STROKE 1 CENTER 23.8095 RIGHT 52.3810
OPEN 17 (52.3810 52.3810) (47.6190 61.9048) (33.3333 66.6667)
(19.0476 66.6667) (4.7619 61.9048) (0.0000 52.3810) (4.7619 42.8571)
(14.2857 38.0952) (38.0952 33.3333) (47.6190 28.5714) (52.3810 19.0476)
(52.3810 14.2857) (47.6190 4.7619) (33.3333 0.0000) (19.0476 0.0000)
(4.7619 4.7619) (0.0000 14.2857)
INDEX 116 STROKE 2 CENTER 14.2857 RIGHT 38.0952
OPEN 5 (14.2857 100.0000) (14.2857 19.0476) (19.0476 4.7619)
(28.5714 0.0000) (38.0952 0.0000)
OPEN 2 (0.0000 66.6667) (33.3333 66.6667)
INDEX 117 STROKE 2 CENTER 23.8095 RIGHT 52.3810
OPEN 7 (0.0000 66.6667) (0.0000 19.0476) (4.7619 4.7619)
(14.2857 0.0000) (28.5714 0.0000) (38.0952 4.7619) (52.3810 19.0476)
OPEN 2 (52.3810 66.6667) (52.3810 0.0000)
INDEX 118 STROKE 2 CENTER 28.5714 RIGHT 57.1429
OPEN 2 (0.0000 66.6667) (28.5714 0.0000)
OPEN 2 (57.1429 66.6667) (28.5714 0.0000)
INDEX 119 STROKE 4 CENTER 38.0952 RIGHT 76.1905
OPEN 2 (0.0000 66.6667) (19.0476 0.0000)
OPEN 2 (38.0952 66.6667) (19.0476 0.0000)
OPEN 2 (38.0952 66.6667) (57.1429 0.0000)
OPEN 2 (76.1905 66.6667) (57.1429 0.0000)
INDEX 120 STROKE 2 CENTER 23.8095 RIGHT 52.3810
OPEN 2 (0.0000 66.6667) (52.3810 0.0000)
OPEN 2 (52.3810 66.6667) (0.0000 0.0000)
INDEX 121 STROKE 2 CENTER 33.3333 RIGHT 61.9048
OPEN 2 (4.7619 66.6667) (33.3333 0.0000)
OPEN 6 (61.9048 66.6667) (33.3333 0.0000) (23.8095 -19.0476)
(14.2857 -28.5714) (4.7619 -33.3333) (0.0000 -33.3333)
INDEX 122 STROKE 3 CENTER 23.8095 RIGHT 52.3810
OPEN 2 (52.3810 66.6667) (0.0000 0.0000)
OPEN 2 (0.0000 66.6667) (52.3810 66.6667)
OPEN 2 (0.0000 0.0000) (52.3810 0.0000)
INDEX 123 STROKE 3 CENTER 14.2857 RIGHT 23.8095
OPEN 10 (23.8095 119.0476) (14.2857 114.2857) (9.5238 109.5238)
(4.7619 100.0000) (4.7619 90.4762) (9.5238 80.9524) (14.2857 76.1905)
(19.0476 66.6667) (19.0476 57.1429) (9.5238 47.6190)
OPEN 17 (14.2857 114.2857) (9.5238 104.7619) (9.5238 95.2381)
(14.2857 85.7143) (19.0476 80.9524) (23.8095 71.4286) (23.8095 61.9048)
(19.0476 52.3810) (0.0000 42.8571) (19.0476 33.3333) (23.8095 23.8095)
(23.8095 14.2857) (19.0476 4.7619) (14.2857 0.0000) (9.5238 -9.5238)
(9.5238 -19.0476) (14.2857 -28.5714)
OPEN 10 (9.5238 38.0952) (19.0476 28.5714) (19.0476 19.0476)
(14.2857 9.5238) (9.5238 4.7619) (4.7619 -4.7619) (4.7619 -14.2857)
(9.5238 -23.8095) (14.2857 -28.5714) (23.8095 -33.3333)
INDEX 124 STROKE 1 CENTER 0.0000 RIGHT 0.0000
OPEN 2 (0.0000 119.0476) (0.0000 -33.3333)
INDEX 125 STROKE 3 CENTER 9.5238 RIGHT 23.8095
OPEN 10 (0.0000 119.0476) (9.5238 114.2857) (14.2857 109.5238)
(19.0476 100.0000) (19.0476 90.4762) (14.2857 80.9524) (9.5238 76.1905)
(4.7619 66.6667) (4.7619 57.1429) (14.2857 47.6190)
OPEN 17 (9.5238 114.2857) (14.2857 104.7619) (14.2857 95.2381)
(9.5238 85.7143) (4.7619 80.9524) (0.0000 71.4286) (0.0000 61.9048)
(4.7619 52.3810) (23.8095 42.8571) (4.7619 33.3333) (0.0000 23.8095)
(0.0000 14.2857) (4.7619 4.7619) (9.5238 0.0000) (14.2857 -9.5238)
(14.2857 -19.0476) (9.5238 -28.5714)
OPEN 10 (14.2857 38.0952) (4.7619 28.5714) (4.7619 19.0476)
(9.5238 9.5238) (14.2857 4.7619) (19.0476 -4.7619) (19.0476 -14.2857)
(14.2857 -23.8095) (9.5238 -28.5714) (0.0000 -33.3333)
INDEX 126 STROKE 2 CENTER 42.8571 RIGHT 85.7143
OPEN 11 (0.0000 28.5714) (0.0000 38.0952) (4.7619 52.3810)
(14.2857 57.1429) (23.8095 57.1429) (33.3333 52.3810) (52.3810 38.0952)
(61.9048 33.3333) (71.4286 33.3333) (80.9524 38.0952) (85.7143 47.6190)
OPEN 11 (0.0000 38.0952) (4.7619 47.6190) (14.2857 52.3810)
(23.8095 52.3810) (33.3333 47.6190) (52.3810 33.3333) (61.9048 28.5714)
(71.4286 28.5714) (80.9524 33.3333) (85.7143 47.6190) (85.7143 57.1429)
INDEX 127 STROKE 2 CENTER 33.3333 RIGHT 66.6667
OPEN 2 (52.3810 100.0000) (14.2857 -33.3333)
OPEN 17 (28.5714 66.6667) (14.2857 61.9048) (4.7619 52.3810)
(0.0000 38.0952) (0.0000 23.8095) (4.7619 14.2857) (14.2857 4.7619)
(28.5714 0.0000) (38.0952 0.0000) (52.3810 4.7619) (61.9048 14.2857)
(66.6667 28.5714) (66.6667 42.8571) (61.9048 52.3810) (52.3810 61.9048)
(38.0952 66.6667) (28.5714 66.6667)
#/* NCGA GRAFNET:SANS-SERIF NORMAL*/
BEARING 32 L_SPACE 0.0 WIDTH 20.0 R_SPACE 0.0
BEARING 33 L_SPACE 8.62 WIDTH 13.64 R_SPACE 8.48
BEARING 34 L_SPACE 4.02 WIDTH 32.86 R_SPACE 9.32
BEARING 35 L_SPACE 3.2 WIDTH 68.94 R_SPACE 4.86
BEARING 36 L_SPACE 4.82 WIDTH 67.44 R_SPACE 4.72
BEARING 37 L_SPACE 6.36 WIDTH 112.38 R_SPACE 4.5
BEARING 38 L_SPACE 5.98 WIDTH 82.02 R_SPACE 0.54
BEARING 39 L_SPACE 4.44 WIDTH 13.36 R_SPACE 9.18
BEARING 40 L_SPACE 7.58 WIDTH 24.72 R_SPACE 6.26
BEARING 41 L_SPACE 5.28 WIDTH 24.34 R_SPACE 8.92
BEARING 42 L_SPACE 6.96 WIDTH 42.06 R_SPACE 4.86
BEARING 43 L_SPACE 5.98 WIDTH 96.36 R_SPACE 5.56
BEARING 44 L_SPACE 8.76 WIDTH 14.2 R_SPACE 7.78
BEARING 45 L_SPACE 7.38 WIDTH 38.84 R_SPACE 7.66
BEARING 46 L_SPACE 8.34 WIDTH 13.78 R_SPACE 8.62
BEARING 47 L_SPACE 7.24 WIDTH 38.44 R_SPACE 8.2
BEARING 48 L_SPACE 4.98 WIDTH 66.58 R_SPACE 5.42
BEARING 49 L_SPACE 11.82 WIDTH 34.26 R_SPACE 30.9
BEARING 50 L_SPACE 5.42 WIDTH 66.0 R_SPACE 5.56
BEARING 51 L_SPACE 5.0 WIDTH 66.62 R_SPACE 5.38
BEARING 52 L_SPACE 3.88 WIDTH 68.24 R_SPACE 4.86
BEARING 53 L_SPACE 4.86 WIDTH 65.96 R_SPACE 6.16
BEARING 54 L_SPACE 5.58 WIDTH 65.08 R_SPACE 6.32
BEARING 55 L_SPACE 5.56 WIDTH 66.42 R_SPACE 5.0
BEARING 56 L_SPACE 5.6 WIDTH 65.98 R_SPACE 5.4
BEARING 57 L_SPACE 6.6 WIDTH 64.82 R_SPACE 5.56
BEARING 58 L_SPACE 9.32 WIDTH 14.06 R_SPACE 7.38
BEARING 59 L_SPACE 8.2 WIDTH 13.96 R_SPACE 8.58
BEARING 60 L_SPACE 3.06 WIDTH 102.5 R_SPACE 2.36
BEARING 61 L_SPACE 5.7 WIDTH 96.36 R_SPACE 5.84
BEARING 62 L_SPACE 2.78 WIDTH 102.5 R_SPACE 2.64
BEARING 63 L_SPACE 8.42 WIDTH 60.22 R_SPACE 8.34
BEARING 64 L_SPACE 6.36 WIDTH 126.24 R_SPACE 6.1
BEARING 65 L_SPACE 2.5 WIDTH 88.16 R_SPACE 1.8
BEARING 66 L_SPACE 11.42 WIDTH 75.5 R_SPACE 5.54
BEARING 67 L_SPACE 6.66 WIDTH 87.06 R_SPACE 6.4
BEARING 68 L_SPACE 11.96 WIDTH 81.48 R_SPACE 6.66
BEARING 69 L_SPACE 11.42 WIDTH 72.28 R_SPACE 4.86
BEARING 70 L_SPACE 11.42 WIDTH 67.96 R_SPACE 5.42
BEARING 71 L_SPACE 7.06 WIDTH 89.56 R_SPACE 11.28
BEARING 72 L_SPACE 11.42 WIDTH 77.7 R_SPACE 11.0
BEARING 73 L_SPACE 10.86 WIDTH 13.36 R_SPACE 10.44
BEARING 74 L_SPACE 2.5 WIDTH 56.96 R_SPACE 9.88
BEARING 75 L_SPACE 11.28 WIDTH 79.8 R_SPACE 1.38
BEARING 76 L_SPACE 11.68 WIDTH 62.8 R_SPACE 2.5
BEARING 77 L_SPACE 10.86 WIDTH 94.56 R_SPACE 10.16
BEARING 78 L_SPACE 11.14 WIDTH 77.98 R_SPACE 11.0
BEARING 79 L_SPACE 6.24 WIDTH 95.28 R_SPACE 6.4
BEARING 80 L_SPACE 12.1 WIDTH 73.44 R_SPACE 6.9
BEARING 81 L_SPACE 5.3 WIDTH 96.0 R_SPACE 6.6
BEARING 82 L_SPACE 11.68 WIDTH 80.64 R_SPACE 4.02
BEARING 83 L_SPACE 8.0 WIDTH 78.28 R_SPACE 6.16
BEARING 84 L_SPACE 2.36 WIDTH 79.52 R_SPACE 2.92
BEARING 85 L_SPACE 11.54 WIDTH 77.28 R_SPACE 11.28
BEARING 86 L_SPACE 2.36 WIDTH 87.04 R_SPACE 3.06
BEARING 87 L_SPACE 2.22 WIDTH 125.76 R_SPACE 3.06
BEARING 88 L_SPACE 2.5 WIDTH 86.76 R_SPACE 3.2
BEARING 89 L_SPACE 1.52 WIDTH 88.98 R_SPACE 1.94
BEARING 90 L_SPACE 2.5 WIDTH 77.7 R_SPACE 4.58
BEARING 91 L_SPACE 7.78 WIDTH 25.76 R_SPACE 5.0
BEARING 92 L_SPACE 5.84 WIDTH 73.24 R_SPACE 5.7
BEARING 93 L_SPACE 4.44 WIDTH 25.48 R_SPACE 8.62
BEARING 94 L_SPACE 5.98 WIDTH 55.28 R_SPACE 8.06
BEARING 95 L_SPACE -1.1 WIDTH 70.04 R_SPACE 0.4
BEARING 96 L_SPACE 28.26 WIDTH 25.9 R_SPACE 26.74
BEARING 97 L_SPACE 6.68 WIDTH 67.54 R_SPACE 2.78
BEARING 98 L_SPACE 8.76 WIDTH 63.66 R_SPACE 4.56
BEARING 99 L_SPACE 5.52 WIDTH 61.46 R_SPACE 6.26
BEARING 100 L_SPACE 4.64 WIDTH 63.88 R_SPACE 8.48
BEARING 101 L_SPACE 5.72 WIDTH 65.62 R_SPACE 5.66
BEARING 102 L_SPACE 0.68 WIDTH 34.12 R_SPACE -0.12
BEARING 103 L_SPACE 5.36 WIDTH 63.16 R_SPACE 8.48
BEARING 104 L_SPACE 9.6 WIDTH 58.34 R_SPACE 9.04
BEARING 105 L_SPACE 10.02 WIDTH 11.42 R_SPACE 9.32
BEARING 106 L_SPACE -1.66 WIDTH 23.1 R_SPACE 9.32
BEARING 107 L_SPACE 9.6 WIDTH 59.18 R_SPACE 0.54
BEARING 108 L_SPACE 10.02 WIDTH 11.42 R_SPACE 9.32
BEARING 109 L_SPACE 9.6 WIDTH 96.36 R_SPACE 9.6
BEARING 110 L_SPACE 9.18 WIDTH 58.48 R_SPACE 9.32
BEARING 111 L_SPACE 4.98 WIDTH 67.14 R_SPACE 4.86
BEARING 112 L_SPACE 9.46 WIDTH 63.34 R_SPACE 4.2
BEARING 113 L_SPACE 4.84 WIDTH 63.38 R_SPACE 8.76
BEARING 114 L_SPACE 9.46 WIDTH 34.8 R_SPACE 1.94
BEARING 115 L_SPACE 4.7 WIDTH 59.4 R_SPACE 5.24
BEARING 116 L_SPACE 0.54 WIDTH 33.42 R_SPACE 0.68
BEARING 117 L_SPACE 9.46 WIDTH 58.2 R_SPACE 9.32
BEARING 118 L_SPACE 1.8 WIDTH 65.86 R_SPACE 1.66
BEARING 119 L_SPACE 2.5 WIDTH 95.82 R_SPACE 1.8
BEARING 120 L_SPACE 1.66 WIDTH 65.32 R_SPACE 2.36
BEARING 121 L_SPACE 1.8 WIDTH 65.18 R_SPACE 2.36
BEARING 122 L_SPACE 4.44 WIDTH 59.88 R_SPACE 5.0
BEARING 123 L_SPACE 7.38 WIDTH 36.06 R_SPACE 10.44
BEARING 124 L_SPACE 11.54 WIDTH 6.96 R_SPACE 12.24
BEARING 125 L_SPACE 9.18 WIDTH 36.2 R_SPACE 8.48
BEARING 126 L_SPACE 2.92 WIDTH 102.36 R_SPACE 2.64

View File

@ -1,503 +0,0 @@
##
# $XConsortium: Roman_M.src,v 5.3 94/04/17 20:10:06 rws Exp $
##
## Copyright (c) 1989,1990, 1991 by Sun Microsystems, Inc. and the X Consortium.
##
## All Rights Reserved
##
## Permission to use, copy, modify, and distribute this software and its
## documentation for any purpose and without fee is hereby granted,
## provided that the above copyright notice appear in all copies and that
## both that copyright notice and this permission notice appear in
## supporting documentation, and that the names of Sun Microsystems
## and the X Consortium not be used in advertising or publicity
## pertaining to distribution of the software without specific, written
## prior permission.
##
## SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
## INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
## EVENT SHALL SUN MICROSYSTEMS OR THE X CONSORTIUM BE LIABLE FOR ANY SPECIAL,
## INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
## FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
## NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
## WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# Mono-spaced version of Roman Simplex font.
FONTNAME MonoRoman
TOP 119.0476
BOTTOM -33.3333
NUM_CH 128
PROPERTIES 3
(CHARSET_REGISTRY ISO8859)
(CHARSET_ENCODING "1")
(SPACING M)
INDEX 32 STROKE 0 CENTER 52.3810 RIGHT 104.7619
INDEX 33 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (52.3810 100.0000) (52.3810 33.3333)
OPEN 5 (52.3810 9.5238) (47.6191 4.7619) (52.3810 0.0000)
(57.1429 4.7619) (52.3810 9.5238)
INDEX 34 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (33.3334 100.0000) (33.3334 66.6667)
OPEN 2 (71.4286 100.0000) (71.4286 66.6667)
INDEX 35 STROKE 4 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (54.7619 119.0476) (21.4286 -33.3333)
OPEN 2 (83.3334 119.0476) (50.0000 -33.3333)
OPEN 2 (21.4286 57.1429) (88.0952 57.1429)
OPEN 2 (16.6667 28.5714) (83.3334 28.5714)
INDEX 36 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (42.8571 119.0476) (42.8571 -19.0476)
OPEN 2 (61.9047 119.0476) (61.9047 -19.0476)
OPEN 20 (85.7143 85.7143) (76.1905 95.2381) (61.9047 100.0000)
(42.8571 100.0000) (28.5714 95.2381) (19.0476 85.7143) (19.0476 76.1905)
(23.8095 66.6667) (28.5714 61.9048) (38.0952 57.1429) (66.6666 47.6190)
(76.1905 42.8571) (80.9524 38.0952) (85.7143 28.5714) (85.7143 14.2857)
(76.1905 4.7619) (61.9047 0.0000) (42.8571 0.0000) (28.5714 4.7619)
(19.0476 14.2857)
INDEX 37 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (95.2381 100.0000) (9.5238 0.0000)
OPEN 16 (33.3333 100.0000) (42.8571 90.4762) (42.8571 80.9524)
(38.0952 71.4286) (28.5714 66.6667) (19.0476 66.6667) (9.5238 76.1905)
(9.5238 85.7143) (14.2857 95.2381) (23.8095 100.0000) (33.3333 100.0000)
(42.8571 95.2381) (57.1428 90.4762) (71.4286 90.4762) (85.7143 95.2381)
(95.2381 100.0000)
OPEN 11 (76.1905 33.3333) (66.6667 28.5714) (61.9048 19.0476)
(61.9048 9.5238) (71.4286 0.0000) (80.9524 0.0000) (90.4762 4.7619)
(95.2381 14.2857) (95.2381 23.8095) (85.7143 33.3333) (76.1905 33.3333)
INDEX 38 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 34 (100.0000 57.1429) (100.0000 61.9048) (95.2381 66.6667)
(90.4762 66.6667) (85.7143 61.9048) (80.9524 52.3810) (71.4286 28.5714)
(61.9048 14.2857) (52.3809 4.7619) (42.8571 0.0000) (23.8095 0.0000)
(14.2857 4.7619) (9.5238 9.5238) (4.7619 19.0476) (4.7619 28.5714)
(9.5238 38.0952) (14.2857 42.8571) (47.6190 61.9048) (52.3809 66.6667)
(57.1429 76.1905) (57.1429 85.7143) (52.3809 95.2381) (42.8571 100.0000)
(33.3333 95.2381) (28.5714 85.7143) (28.5714 76.1905) (33.3333 61.9048)
(42.8571 47.6190) (66.6667 14.2857) (76.1905 4.7619) (85.7143 0.0000)
(95.2381 0.0000) (100.0000 4.7619) (100.0000 9.5238)
INDEX 39 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (52.3810 100.0000) (52.3810 66.6667)
INDEX 40 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 10 (69.0476 119.0476) (59.5238 109.5238) (50.0000 95.2381)
(40.4762 76.1905) (35.7143 52.3810) (35.7143 33.3333) (40.4762 9.5238)
(50.0000 -9.5238) (59.5238 -23.8095) (69.0476 -33.3333)
INDEX 41 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 10 (35.7143 119.0476) (45.2381 109.5238) (54.7619 95.2381)
(64.2857 76.1905) (69.0476 52.3810) (69.0476 33.3333) (64.2857 9.5238)
(54.7619 -9.5238) (45.2381 -23.8095) (35.7143 -33.3333)
INDEX 42 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (52.3810 71.4286) (52.3810 14.2857)
OPEN 2 (28.5715 57.1429) (76.1905 28.5714)
OPEN 2 (76.1905 57.1429) (28.5715 28.5714)
INDEX 43 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (52.3809 85.7143) (52.3809 0.0000)
OPEN 2 (9.5238 42.8571) (95.2381 42.8571)
INDEX 44 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 8 (57.1429 4.7619) (52.3810 0.0000) (47.6191 4.7619)
(52.3810 9.5238) (57.1429 4.7619) (57.1429 -4.7619) (52.3810 -14.2857)
(47.6191 -19.0476)
INDEX 45 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (9.5238 42.8571) (95.2381 42.8571)
INDEX 46 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 5 (52.3810 9.5238) (47.6191 4.7619) (52.3810 0.0000)
(57.1429 4.7619) (52.3810 9.5238)
INDEX 47 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (19.0476 -14.2857) (85.7143 100.0000)
INDEX 48 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 17 (47.6190 100.0000) (33.3333 95.2381) (23.8095 80.9524)
(19.0476 57.1429) (19.0476 42.8571) (23.8095 19.0476) (33.3333 4.7619)
(47.6190 0.0000) (57.1428 0.0000) (71.4286 4.7619) (80.9524 19.0476)
(85.7143 42.8571) (85.7143 57.1429) (80.9524 80.9524) (71.4286 95.2381)
(57.1428 100.0000) (47.6190 100.0000)
INDEX 49 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 4 (40.4762 80.9524) (50.0000 85.7143) (64.2857 100.0000)
(64.2857 0.0000)
INDEX 50 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 14 (23.8095 76.1905) (23.8095 80.9524) (28.5714 90.4762)
(33.3333 95.2381) (42.8571 100.0000) (61.9047 100.0000) (71.4286 95.2381)
(76.1905 90.4762) (80.9524 80.9524) (80.9524 71.4286) (76.1905 61.9048)
(66.6666 47.6190) (19.0476 0.0000) (85.7143 0.0000)
INDEX 51 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 15 (28.5714 100.0000) (80.9524 100.0000) (52.3809 61.9048)
(66.6666 61.9048) (76.1905 57.1429) (80.9524 52.3810) (85.7143 38.0952)
(85.7143 28.5714) (80.9524 14.2857) (71.4286 4.7619) (57.1428 0.0000)
(42.8571 0.0000) (28.5714 4.7619) (23.8095 9.5238) (19.0476 19.0476)
INDEX 52 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 3 (64.2857 100.0000) (16.6667 33.3333) (88.0952 33.3333)
OPEN 2 (64.2857 100.0000) (64.2857 0.0000)
INDEX 53 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 17 (76.1905 100.0000) (28.5714 100.0000) (23.8095 57.1429)
(28.5714 61.9048) (42.8571 66.6667) (57.1428 66.6667) (71.4286 61.9048)
(80.9524 52.3810) (85.7143 38.0952) (85.7143 28.5714) (80.9524 14.2857)
(71.4286 4.7619) (57.1428 0.0000) (42.8571 0.0000) (28.5714 4.7619)
(23.8095 9.5238) (19.0476 19.0476)
INDEX 54 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 23 (78.5714 85.7143) (73.8096 95.2381) (59.5238 100.0000)
(50.0000 100.0000) (35.7143 95.2381) (26.1905 80.9524) (21.4286 57.1429)
(21.4286 33.3333) (26.1905 14.2857) (35.7143 4.7619) (50.0000 0.0000)
(54.7619 0.0000) (69.0476 4.7619) (78.5714 14.2857) (83.3334 28.5714)
(83.3334 33.3333) (78.5714 47.6190) (69.0476 57.1429) (54.7619 61.9048)
(50.0000 61.9048) (35.7143 57.1429) (26.1905 47.6190) (21.4286 33.3333)
INDEX 55 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (85.7143 100.0000) (38.0952 0.0000)
OPEN 2 (19.0476 100.0000) (85.7143 100.0000)
INDEX 56 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 29 (42.8571 100.0000) (28.5714 95.2381) (23.8095 85.7143)
(23.8095 76.1905) (28.5714 66.6667) (38.0952 61.9048) (57.1428 57.1429)
(71.4286 52.3810) (80.9524 42.8571) (85.7143 33.3333) (85.7143 19.0476)
(80.9524 9.5238) (76.1905 4.7619) (61.9047 0.0000) (42.8571 0.0000)
(28.5714 4.7619) (23.8095 9.5238) (19.0476 19.0476) (19.0476 33.3333)
(23.8095 42.8571) (33.3333 52.3810) (47.6190 57.1429) (66.6666 61.9048)
(76.1905 66.6667) (80.9524 76.1905) (80.9524 85.7143) (76.1905 95.2381)
(61.9047 100.0000) (42.8571 100.0000)
INDEX 57 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 23 (83.3334 66.6667) (78.5714 52.3810) (69.0476 42.8571)
(54.7619 38.0952) (50.0000 38.0952) (35.7143 42.8571) (26.1905 52.3810)
(21.4286 66.6667) (21.4286 71.4286) (26.1905 85.7143) (35.7143 95.2381)
(50.0000 100.0000) (54.7619 100.0000) (69.0476 95.2381) (78.5714 85.7143)
(83.3334 66.6667) (83.3334 42.8571) (78.5714 19.0476) (69.0476 4.7619)
(54.7619 0.0000) (45.2381 0.0000) (30.9524 4.7619) (26.1905 14.2857)
INDEX 58 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 5 (52.3810 66.6667) (47.6191 61.9048) (52.3810 57.1429)
(57.1429 61.9048) (52.3810 66.6667)
OPEN 5 (52.3810 9.5238) (47.6191 4.7619) (52.3810 0.0000)
(57.1429 4.7619) (52.3810 9.5238)
INDEX 59 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 5 (52.3810 66.6667) (47.6191 61.9048) (52.3810 57.1429)
(57.1429 61.9048) (52.3810 66.6667)
OPEN 8 (57.1429 4.7619) (52.3810 0.0000) (47.6191 4.7619)
(52.3810 9.5238) (57.1429 4.7619) (57.1429 -4.7619) (52.3810 -14.2857)
(47.6191 -19.0476)
INDEX 60 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 3 (90.4762 85.7143) (14.2857 42.8571) (90.4762 0.0000)
INDEX 61 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (9.5238 57.1429) (95.2381 57.1429)
OPEN 2 (9.5238 28.5714) (95.2381 28.5714)
INDEX 62 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 3 (14.2857 85.7143) (90.4762 42.8571) (14.2857 0.0000)
INDEX 63 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 14 (23.8095 76.1905) (23.8095 80.9524) (28.5714 90.4762)
(33.3333 95.2381) (42.8571 100.0000) (61.9047 100.0000) (71.4285 95.2381)
(76.1905 90.4762) (80.9524 80.9524) (80.9524 71.4286) (76.1905 61.9048)
(71.4285 57.1429) (52.3809 47.6190) (52.3809 33.3333)
OPEN 5 (52.3809 9.5238) (47.6190 4.7619) (52.3809 0.0000)
(57.1428 4.7619) (52.3809 9.5238)
INDEX 64 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 8 (64.2857 52.3810) (54.7619 57.1429) (45.2381 57.1429)
(40.4762 47.6190) (40.4762 42.8571) (45.2381 33.3333) (54.7619 33.3333)
(64.2857 38.0952)
OPEN 19 (64.2857 57.1429) (64.2857 38.0952) (69.0476 33.3333)
(78.5714 33.3333) (83.3334 42.8571) (83.3334 47.6190) (78.5714 61.9048)
(69.0476 71.4286) (54.7619 76.1905) (50.0000 76.1905) (35.7143 71.4286)
(26.1905 61.9048) (21.4286 47.6190) (21.4286 42.8571) (26.1905 28.5714)
(35.7143 19.0476) (50.0000 14.2857) (54.7619 14.2857) (69.0476 19.0476)
INDEX 65 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (52.3809 100.0000) (14.2857 0.0000)
OPEN 2 (52.3809 100.0000) (90.4762 0.0000)
OPEN 2 (28.5714 33.3333) (76.1905 33.3333)
INDEX 66 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (19.0476 100.0000) (19.0476 0.0000)
OPEN 9 (19.0476 100.0000) (61.9047 100.0000) (76.1905 95.2381)
(80.9524 90.4762) (85.7143 80.9524) (85.7143 71.4286) (80.9524 61.9048)
(76.1905 57.1429) (61.9047 52.3810)
OPEN 10 (19.0476 52.3810) (61.9047 52.3810) (76.1905 47.6190)
(80.9524 42.8571) (85.7143 33.3333) (85.7143 19.0476) (80.9524 9.5238)
(76.1905 4.7619) (61.9047 0.0000) (19.0476 0.0000)
INDEX 67 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 18 (88.0952 76.1905) (83.3334 85.7143) (73.8096 95.2381)
(64.2857 100.0000) (45.2381 100.0000) (35.7143 95.2381) (26.1905 85.7143)
(21.4286 76.1905) (16.6667 61.9048) (16.6667 38.0952) (21.4286 23.8095)
(26.1905 14.2857) (35.7143 4.7619) (45.2381 0.0000) (64.2857 0.0000)
(73.8096 4.7619) (83.3334 14.2857) (88.0952 23.8095)
INDEX 68 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (19.0476 100.0000) (19.0476 0.0000)
OPEN 12 (19.0476 100.0000) (52.3809 100.0000) (66.6666 95.2381)
(76.1905 85.7143) (80.9524 76.1905) (85.7143 61.9048) (85.7143 38.0952)
(80.9524 23.8095) (76.1905 14.2857) (66.6666 4.7619) (52.3809 0.0000)
(19.0476 0.0000)
INDEX 69 STROKE 4 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (21.4286 100.0000) (21.4286 0.0000)
OPEN 2 (21.4286 100.0000) (83.3334 100.0000)
OPEN 2 (21.4286 52.3810) (59.5238 52.3810)
OPEN 2 (21.4286 0.0000) (83.3334 0.0000)
INDEX 70 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (21.4286 100.0000) (21.4286 0.0000)
OPEN 2 (21.4286 100.0000) (83.3334 100.0000)
OPEN 2 (21.4286 52.3810) (59.5238 52.3810)
INDEX 71 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 19 (88.0952 76.1905) (83.3334 85.7143) (73.8096 95.2381)
(64.2857 100.0000) (45.2381 100.0000) (35.7143 95.2381) (26.1905 85.7143)
(21.4286 76.1905) (16.6667 61.9048) (16.6667 38.0952) (21.4286 23.8095)
(26.1905 14.2857) (35.7143 4.7619) (45.2381 0.0000) (64.2857 0.0000)
(73.8096 4.7619) (83.3334 14.2857) (88.0952 23.8095) (88.0952 38.0952)
OPEN 2 (64.2857 38.0952) (88.0952 38.0952)
INDEX 72 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (19.0476 100.0000) (19.0476 0.0000)
OPEN 2 (85.7143 100.0000) (85.7143 0.0000)
OPEN 2 (19.0476 52.3810) (85.7143 52.3810)
INDEX 73 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (52.3810 100.0000) (52.3810 0.0000)
INDEX 74 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 10 (76.1905 100.0000) (76.1905 23.8095) (71.4286 9.5238)
(66.6667 4.7619) (57.1429 0.0000) (47.6191 0.0000) (38.0953 4.7619)
(33.3334 9.5238) (28.5715 23.8095) (28.5715 33.3333)
INDEX 75 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (19.0476 100.0000) (19.0476 0.0000)
OPEN 2 (85.7143 100.0000) (19.0476 33.3333)
OPEN 2 (42.8571 57.1429) (85.7143 0.0000)
INDEX 76 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (23.8095 100.0000) (23.8095 0.0000)
OPEN 2 (23.8095 0.0000) (80.9524 0.0000)
INDEX 77 STROKE 4 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (14.2857 100.0000) (14.2857 0.0000)
OPEN 2 (14.2857 100.0000) (52.3809 0.0000)
OPEN 2 (90.4762 100.0000) (52.3809 0.0000)
OPEN 2 (90.4762 100.0000) (90.4762 0.0000)
INDEX 78 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (19.0476 100.0000) (19.0476 0.0000)
OPEN 2 (19.0476 100.0000) (85.7143 0.0000)
OPEN 2 (85.7143 100.0000) (85.7143 0.0000)
INDEX 79 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 21 (42.8571 100.0000) (33.3333 95.2381) (23.8095 85.7143)
(19.0476 76.1905) (14.2857 61.9048) (14.2857 38.0952) (19.0476 23.8095)
(23.8095 14.2857) (33.3333 4.7619) (42.8571 0.0000) (61.9047 0.0000)
(71.4286 4.7619) (80.9524 14.2857) (85.7143 23.8095) (90.4762 38.0952)
(90.4762 61.9048) (85.7143 76.1905) (80.9524 85.7143) (71.4286 95.2381)
(61.9047 100.0000) (42.8571 100.0000)
INDEX 80 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (19.0476 100.0000) (19.0476 0.0000)
OPEN 10 (19.0476 100.0000) (61.9047 100.0000) (76.1905 95.2381)
(80.9524 90.4762) (85.7143 80.9524) (85.7143 66.6667) (80.9524 57.1429)
(76.1905 52.3810) (61.9047 47.6190) (19.0476 47.6190)
INDEX 81 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 21 (42.8571 100.0000) (33.3333 95.2381) (23.8095 85.7143)
(19.0476 76.1905) (14.2857 61.9048) (14.2857 38.0952) (19.0476 23.8095)
(23.8095 14.2857) (33.3333 4.7619) (42.8571 0.0000) (61.9047 0.0000)
(71.4286 4.7619) (80.9524 14.2857) (85.7143 23.8095) (90.4762 38.0952)
(90.4762 61.9048) (85.7143 76.1905) (80.9524 85.7143) (71.4286 95.2381)
(61.9047 100.0000) (42.8571 100.0000)
OPEN 2 (57.1428 19.0476) (85.7143 -9.5238)
INDEX 82 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (19.0476 100.0000) (19.0476 0.0000)
OPEN 10 (19.0476 100.0000) (61.9047 100.0000) (76.1905 95.2381)
(80.9524 90.4762) (85.7143 80.9524) (85.7143 71.4286) (80.9524 61.9048)
(76.1905 57.1429) (61.9047 52.3810) (19.0476 52.3810)
OPEN 2 (52.3809 52.3810) (85.7143 0.0000)
INDEX 83 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 20 (85.7143 85.7143) (76.1905 95.2381) (61.9047 100.0000)
(42.8571 100.0000) (28.5714 95.2381) (19.0476 85.7143) (19.0476 76.1905)
(23.8095 66.6667) (28.5714 61.9048) (38.0952 57.1429) (66.6666 47.6190)
(76.1905 42.8571) (80.9524 38.0952) (85.7143 28.5714) (85.7143 14.2857)
(76.1905 4.7619) (61.9047 0.0000) (42.8571 0.0000) (28.5714 4.7619)
(19.0476 14.2857)
INDEX 84 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (52.3809 100.0000) (52.3809 0.0000)
OPEN 2 (19.0476 100.0000) (85.7143 100.0000)
INDEX 85 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 10 (19.0476 100.0000) (19.0476 28.5714) (23.8095 14.2857)
(33.3333 4.7619) (47.6190 0.0000) (57.1428 0.0000) (71.4286 4.7619)
(80.9524 14.2857) (85.7143 28.5714) (85.7143 100.0000)
INDEX 86 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (14.2857 100.0000) (52.3809 0.0000)
OPEN 2 (90.4762 100.0000) (52.3809 0.0000)
INDEX 87 STROKE 4 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (4.7619 100.0000) (28.5714 0.0000)
OPEN 2 (52.3809 100.0000) (28.5714 0.0000)
OPEN 2 (52.3809 100.0000) (76.1905 0.0000)
OPEN 2 (100.0000 100.0000) (76.1905 0.0000)
INDEX 88 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (19.0476 100.0000) (85.7143 0.0000)
OPEN 2 (85.7143 100.0000) (19.0476 0.0000)
INDEX 89 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 3 (14.2857 100.0000) (52.3809 52.3810) (52.3809 0.0000)
OPEN 2 (90.4762 100.0000) (52.3809 52.3810)
INDEX 90 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (85.7143 100.0000) (19.0476 0.0000)
OPEN 2 (19.0476 100.0000) (85.7143 100.0000)
OPEN 2 (19.0476 0.0000) (85.7143 0.0000)
INDEX 91 STROKE 4 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (35.7143 119.0476) (35.7143 -33.3333)
OPEN 2 (40.4762 119.0476) (40.4762 -33.3333)
OPEN 2 (35.7143 119.0476) (69.0476 119.0476)
OPEN 2 (35.7143 -33.3333) (69.0476 -33.3333)
INDEX 92 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (19.0476 100.0000) (85.7143 -14.2857)
INDEX 93 STROKE 4 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (64.2857 119.0476) (64.2857 -33.3333)
OPEN 2 (69.0476 119.0476) (69.0476 -33.3333)
OPEN 2 (35.7143 119.0476) (69.0476 119.0476)
OPEN 2 (35.7143 -33.3333) (69.0476 -33.3333)
INDEX 94 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (52.3809 109.5238) (14.2857 42.8571)
OPEN 2 (52.3809 109.5238) (90.4762 42.8571)
INDEX 95 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 5 (0.0000 -33.3333) (104.7619 -33.3333) (104.7619 -28.5714)
(0.0000 -28.5714) (0.0000 -33.3333)
INDEX 96 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (42.8572 100.0000) (66.6667 71.4286)
OPEN 3 (42.8572 100.0000) (38.0953 95.2381) (66.6667 71.4286)
INDEX 97 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (80.9524 66.6667) (80.9524 0.0000)
OPEN 14 (80.9524 52.3810) (71.4285 61.9048) (61.9047 66.6667)
(47.6190 66.6667) (38.0952 61.9048) (28.5714 52.3810) (23.8095 38.0952)
(23.8095 28.5714) (28.5714 14.2857) (38.0952 4.7619) (47.6190 0.0000)
(61.9047 0.0000) (71.4285 4.7619) (80.9524 14.2857)
INDEX 98 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (23.8095 100.0000) (23.8095 0.0000)
OPEN 14 (23.8095 52.3810) (33.3333 61.9048) (42.8571 66.6667)
(57.1428 66.6667) (66.6666 61.9048) (76.1905 52.3810) (80.9524 38.0952)
(80.9524 28.5714) (76.1905 14.2857) (66.6666 4.7619) (57.1428 0.0000)
(42.8571 0.0000) (33.3333 4.7619) (23.8095 14.2857)
INDEX 99 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 14 (80.9524 52.3810) (71.4285 61.9048) (61.9047 66.6667)
(47.6190 66.6667) (38.0952 61.9048) (28.5714 52.3810) (23.8095 38.0952)
(23.8095 28.5714) (28.5714 14.2857) (38.0952 4.7619) (47.6190 0.0000)
(61.9047 0.0000) (71.4285 4.7619) (80.9524 14.2857)
INDEX 100 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (80.9524 100.0000) (80.9524 0.0000)
OPEN 14 (80.9524 52.3810) (71.4285 61.9048) (61.9047 66.6667)
(47.6190 66.6667) (38.0952 61.9048) (28.5714 52.3810) (23.8095 38.0952)
(23.8095 28.5714) (28.5714 14.2857) (38.0952 4.7619) (47.6190 0.0000)
(61.9047 0.0000) (71.4285 4.7619) (80.9524 14.2857)
INDEX 101 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 17 (23.8095 38.0952) (80.9524 38.0952) (80.9524 47.6190)
(76.1905 57.1429) (71.4285 61.9048) (61.9047 66.6667) (47.6190 66.6667)
(38.0952 61.9048) (28.5714 52.3810) (23.8095 38.0952) (23.8095 28.5714)
(28.5714 14.2857) (38.0952 4.7619) (47.6190 0.0000) (61.9047 0.0000)
(71.4285 4.7619) (80.9524 14.2857)
INDEX 102 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 5 (71.4286 100.0000) (61.9048 100.0000) (52.3810 95.2381)
(47.6191 80.9524) (47.6191 0.0000)
OPEN 2 (33.3334 66.6667) (66.6667 66.6667)
INDEX 103 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 7 (80.9524 66.6667) (80.9524 -9.5238) (76.1905 -23.8095)
(71.4285 -28.5714) (61.9047 -33.3333) (47.6190 -33.3333) (38.0952 -28.5714)
OPEN 14 (80.9524 52.3810) (71.4285 61.9048) (61.9047 66.6667)
(47.6190 66.6667) (38.0952 61.9048) (28.5714 52.3810) (23.8095 38.0952)
(23.8095 28.5714) (28.5714 14.2857) (38.0952 4.7619) (47.6190 0.0000)
(61.9047 0.0000) (71.4285 4.7619) (80.9524 14.2857)
INDEX 104 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (26.1905 100.0000) (26.1905 0.0000)
OPEN 7 (26.1905 47.6190) (40.4762 61.9048) (50.0000 66.6667)
(64.2857 66.6667) (73.8095 61.9048) (78.5715 47.6190) (78.5715 0.0000)
INDEX 105 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 5 (47.6191 100.0000) (52.3810 95.2381) (57.1429 100.0000)
(52.3810 104.7619) (47.6191 100.0000)
OPEN 2 (52.3810 66.6667) (52.3810 0.0000)
INDEX 106 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 5 (57.1429 100.0000) (61.9048 95.2381) (66.6667 100.0000)
(61.9048 104.7619) (57.1429 100.0000)
OPEN 5 (61.9048 66.6667) (61.9048 -14.2857) (57.1429 -28.5714)
(47.6191 -33.3333) (38.0953 -33.3333)
INDEX 107 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (26.1905 100.0000) (26.1905 0.0000)
OPEN 2 (73.8095 66.6667) (26.1905 19.0476)
OPEN 2 (45.2381 38.0952) (78.5715 0.0000)
INDEX 108 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (52.3810 100.0000) (52.3810 0.0000)
INDEX 109 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (0.0000 66.6667) (0.0000 0.0000)
OPEN 7 (0.0000 47.6190) (14.2857 61.9048) (23.8095 66.6667)
(38.0952 66.6667) (47.6190 61.9048) (52.3810 47.6190) (52.3810 0.0000)
OPEN 7 (52.3810 47.6190) (66.6667 61.9048) (76.1905 66.6667)
(90.4762 66.6667) (100.0000 61.9048) (104.7619 47.6190) (104.7619 0.0000)
INDEX 110 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (26.1905 66.6667) (26.1905 0.0000)
OPEN 7 (26.1905 47.6190) (40.4762 61.9048) (50.0000 66.6667)
(64.2857 66.6667) (73.8095 61.9048) (78.5715 47.6190) (78.5715 0.0000)
INDEX 111 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 17 (45.2381 66.6667) (35.7143 61.9048) (26.1905 52.3810)
(21.4286 38.0952) (21.4286 28.5714) (26.1905 14.2857) (35.7143 4.7619)
(45.2381 0.0000) (59.5238 0.0000) (69.0476 4.7619) (78.5714 14.2857)
(83.3334 28.5714) (83.3334 38.0952) (78.5714 52.3810) (69.0476 61.9048)
(59.5238 66.6667) (45.2381 66.6667)
INDEX 112 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (23.8095 66.6667) (23.8095 -33.3333)
OPEN 14 (23.8095 52.3810) (33.3333 61.9048) (42.8571 66.6667)
(57.1428 66.6667) (66.6666 61.9048) (76.1905 52.3810) (80.9524 38.0952)
(80.9524 28.5714) (76.1905 14.2857) (66.6666 4.7619) (57.1428 0.0000)
(42.8571 0.0000) (33.3333 4.7619) (23.8095 14.2857)
INDEX 113 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (80.9524 66.6667) (80.9524 -33.3333)
OPEN 14 (80.9524 52.3810) (71.4285 61.9048) (61.9047 66.6667)
(47.6190 66.6667) (38.0952 61.9048) (28.5714 52.3810) (23.8095 38.0952)
(23.8095 28.5714) (28.5714 14.2857) (38.0952 4.7619) (47.6190 0.0000)
(61.9047 0.0000) (71.4285 4.7619) (80.9524 14.2857)
INDEX 114 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (33.3334 66.6667) (33.3334 0.0000)
OPEN 5 (33.3334 38.0952) (38.0953 52.3810) (47.6191 61.9048)
(57.1429 66.6667) (71.4286 66.6667)
INDEX 115 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 17 (78.5715 52.3810) (73.8095 61.9048) (59.5238 66.6667)
(45.2381 66.6667) (30.9524 61.9048) (26.1905 52.3810) (30.9524 42.8571)
(40.4762 38.0952) (64.2857 33.3333) (73.8095 28.5714) (78.5715 19.0476)
(78.5715 14.2857) (73.8095 4.7619) (59.5238 0.0000) (45.2381 0.0000)
(30.9524 4.7619) (26.1905 14.2857)
INDEX 116 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 5 (47.6191 100.0000) (47.6191 19.0476) (52.3810 4.7619)
(61.9048 0.0000) (71.4286 0.0000)
OPEN 2 (33.3334 66.6667) (66.6667 66.6667)
INDEX 117 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 7 (26.1905 66.6667) (26.1905 19.0476) (30.9524 4.7619)
(40.4762 0.0000) (54.7619 0.0000) (64.2857 4.7619) (78.5715 19.0476)
OPEN 2 (78.5715 66.6667) (78.5715 0.0000)
INDEX 118 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (23.8095 66.6667) (52.3809 0.0000)
OPEN 2 (80.9524 66.6667) (52.3809 0.0000)
INDEX 119 STROKE 4 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (14.2857 66.6667) (33.3333 0.0000)
OPEN 2 (52.3809 66.6667) (33.3333 0.0000)
OPEN 2 (52.3809 66.6667) (71.4286 0.0000)
OPEN 2 (90.4762 66.6667) (71.4286 0.0000)
INDEX 120 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (26.1905 66.6667) (78.5715 0.0000)
OPEN 2 (78.5715 66.6667) (26.1905 0.0000)
INDEX 121 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (26.1905 66.6667) (54.7619 0.0000)
OPEN 6 (83.3334 66.6667) (54.7619 0.0000) (45.2381 -19.0476)
(35.7143 -28.5714) (26.1905 -33.3333) (21.4286 -33.3333)
INDEX 122 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (78.5715 66.6667) (26.1905 0.0000)
OPEN 2 (26.1905 66.6667) (78.5715 66.6667)
OPEN 2 (26.1905 0.0000) (78.5715 0.0000)
INDEX 123 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 10 (64.2857 119.0476) (54.7619 114.2857) (50.0000 109.5238)
(45.2381 100.0000) (45.2381 90.4762) (50.0000 80.9524) (54.7619 76.1905)
(59.5238 66.6667) (59.5238 57.1429) (50.0000 47.6190)
OPEN 17 (54.7619 114.2857) (50.0000 104.7619) (50.0000 95.2381)
(54.7619 85.7143) (59.5238 80.9524) (64.2857 71.4286) (64.2857 61.9048)
(59.5238 52.3810) (40.4762 42.8571) (59.5238 33.3333) (64.2857 23.8095)
(64.2857 14.2857) (59.5238 4.7619) (54.7619 0.0000) (50.0000 -9.5238)
(50.0000 -19.0476) (54.7619 -28.5714)
OPEN 10 (50.0000 38.0952) (59.5238 28.5714) (59.5238 19.0476)
(54.7619 9.5238) (50.0000 4.7619) (45.2381 -4.7619) (45.2381 -14.2857)
(50.0000 -23.8095) (54.7619 -28.5714) (64.2857 -33.3333)
INDEX 124 STROKE 1 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (52.3810 119.0476) (52.3810 -33.3333)
INDEX 125 STROKE 3 CENTER 52.3810 RIGHT 104.7619
OPEN 10 (40.4762 119.0476) (50.0000 114.2857) (54.7619 109.5238)
(59.5238 100.0000) (59.5238 90.4762) (54.7619 80.9524) (50.0000 76.1905)
(45.2381 66.6667) (45.2381 57.1429) (54.7619 47.6190)
OPEN 17 (50.0000 114.2857) (54.7619 104.7619) (54.7619 95.2381)
(50.0000 85.7143) (45.2381 80.9524) (40.4762 71.4286) (40.4762 61.9048)
(45.2381 52.3810) (64.2857 42.8571) (45.2381 33.3333) (40.4762 23.8095)
(40.4762 14.2857) (45.2381 4.7619) (50.0000 0.0000) (54.7619 -9.5238)
(54.7619 -19.0476) (50.0000 -28.5714)
OPEN 10 (54.7619 38.0952) (45.2381 28.5714) (45.2381 19.0476)
(50.0000 9.5238) (54.7619 4.7619) (59.5238 -4.7619) (59.5238 -14.2857)
(54.7619 -23.8095) (50.0000 -28.5714) (40.4762 -33.3333)
INDEX 126 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 11 (9.5238 28.5714) (9.5238 38.0952) (14.2857 52.3810)
(23.8095 57.1429) (33.3333 57.1429) (42.8571 52.3810) (61.9048 38.0952)
(71.4286 33.3333) (80.9524 33.3333) (90.4762 38.0952) (95.2381 47.6190)
OPEN 11 (9.5238 38.0952) (14.2857 47.6190) (23.8095 52.3810)
(33.3333 52.3810) (42.8571 47.6190) (61.9048 33.3333) (71.4286 28.5714)
(80.9524 28.5714) (90.4762 33.3333) (95.2381 47.6190) (95.2381 57.1429)
INDEX 127 STROKE 2 CENTER 52.3810 RIGHT 104.7619
OPEN 2 (71.4286 100.0000) (33.3333 -33.3333)
OPEN 17 (47.6190 66.6667) (33.3333 61.9048) (23.8095 52.3810)
(19.0476 38.0952) (19.0476 23.8095) (23.8095 14.2857) (33.3333 4.7619)
(47.6190 0.0000) (57.1428 0.0000) (71.4286 4.7619) (80.9524 14.2857)
(85.7143 28.5714) (85.7143 42.8571) (80.9524 52.3810) (71.4286 61.9048)
(57.1428 66.6667) (47.6190 66.6667)

View File

@ -1,486 +0,0 @@
/*
* main.c
*
* A simple utility to generate the bitmap fonts to be used in freeglut.
*
* Copyright (c) 1999-2000 by Pawel W. Olszta
* Written by Pawel W. Olszta, <olszta@sourceforge.net>
* Creation date: nie gru 26 21:52:36 CET 1999
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software")
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Sotware.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
/*
* Define the log domain
*/
#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN "genfonts"
/*
* The alphabet we want to export.
*/
char* g_Alphabet = " abcdefghijklmnopqrstuwvxyzABCDEFGHIJKLMNOPQRSTUWVXYZ0123456789`~!@#$%^&*()-_=+[{}];:,.<>/?\\\"";
int g_AlphabetLength = 0;
/*
* All undefined characters will get replaced by this one:
*/
char g_NoChar = '*';
/*
* The stream we want to redirect our output to
*/
FILE* g_Output = NULL;
/*
* The display we're getting the fonts from
*/
Display* g_Display;
/*
* Our argv[0]
*/
char *g_ProgName = "";
/*
* This function outputs the font file prologue
*/
void OutputPrologue( char* fileName )
{
/*
* Output the copyright and permission notices:
*/
fprintf( g_Output, "/*\n * %s\n *\n * This file has been automatically generated by the genfonts utility.\n *\n", fileName );
fprintf( g_Output, " * Copyright (c) 1999-2000 by Pawel W. Olszta\n * Written by Pawel W. Olszta, <olszta@sourceforge.net>\n * \n" );
fprintf( g_Output, " * Permission is hereby granted, free of charge, to any person obtaining a\n" );
fprintf( g_Output, " * copy of this software and associated documentation files (the \"Software\"),\n" );
fprintf( g_Output, " * to deal in the Software without restriction, including without limitation\n" );
fprintf( g_Output, " * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n" );
fprintf( g_Output, " * and/or sell copies of the Software, and to permit persons to whom the\n" );
fprintf( g_Output, " * Software is furnished to do so, subject to the following conditions:\n *\n" );
fprintf( g_Output, " * The above copyright notice and this permission notice shall be included\n" );
fprintf( g_Output, " * in all copies or substantial portions of the Sotware.\n *\n" );
fprintf( g_Output, " * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n" );
fprintf( g_Output, " * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" );
fprintf( g_Output, " * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\n" );
fprintf( g_Output, " * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n" );
fprintf( g_Output, " * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n" );
fprintf( g_Output, " * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n" );
/*
* The obvious include headers
*/
fprintf( g_Output, "\n#ifdef HAVE_CONFIG_H\n#include \"config.h\"\n#endif\n\n#include \"../include/GL/freeglut.h\"\n#include \"../include/GL/freeglut_internal.h\"\n" );
}
/*
* This function outputs a font set
*/
void OutputFont( char* freeglutFontName, char* fontName )
{
int character, lineWidth, maxWidth = 0, maxHeight = 0;
XFontStruct* fontStruct = NULL;
XGCValues contextValues;
XImage* image = NULL;
unsigned char* lineBuffer;
Pixmap buffer;
GC context;
/*
* Check if there is a font that meets our requirements
*/
fontStruct = XLoadQueryFont( g_Display, fontName );
if( fontStruct == NULL )
{
/*
* Whoops, the font was not found
*/
fprintf( stderr, "%s: couldn't get font `%s' using local display\n",
g_ProgName, fontName );
exit( 1 );
}
/*
* Get the maximum size of the font characters
*/
maxWidth = fontStruct->max_bounds.rbearing - fontStruct->min_bounds.lbearing;
maxHeight = fontStruct->max_bounds.ascent + fontStruct->max_bounds.descent;
/*
* Allocate the line buffer for storing the font bitmap lines
*/
lineBuffer = malloc( maxWidth );
/*
* Create a pixmap buffer where we'll be rendering our fonts to.
*/
buffer = XCreatePixmap(
g_Display,
RootWindow( g_Display, DefaultScreen( g_Display ) ),
maxWidth,
maxHeight,
1
);
/*
* We'll need a graphics context to handle the font writes and buffer clears
*/
context = XCreateGC(
g_Display,
buffer,
0,
&contextValues
);
/*
* Have the font assigned to the graphics context
*/
XSetFont( g_Display, context, fontStruct->fid );
/*
* For every character we want to have outputted...
*/
for( character=0; character<g_AlphabetLength; character++ )
{
int x, y, start_x, stop_x;
/*
* Clear the context black (0 is black in our case)...
*/
XSetForeground( g_Display, context, 0x00 );
XFillRectangle( g_Display, buffer, context, 0, 0, maxWidth, maxHeight );
/*
* Be kind and draw the characters white (which is 1 for us)
*/
XSetForeground( g_Display, context, 0xff );
/*
* Draw the n-th character of the alphabet
*/
XDrawString(
g_Display,
buffer,
context,
-fontStruct->min_bounds.lbearing,
fontStruct->max_bounds.ascent,
(g_Alphabet + character),
1
);
/*
* We need some a way to access the font we've just drawn:
*/
image = XGetImage(
g_Display,
buffer,
0, 0,
maxWidth, maxHeight,
1, XYPixmap
);
/*
* Find the first non-empty column:
*/
start_x = -1; stop_x = -1;
for( x=0; x<maxWidth; x++ )
for( y=0; y<maxHeight; y++ )
if( (XGetPixel( image, x, y ) == 1) && (start_x == -1) )
start_x = x;
/*
* Find the last empty column
*/
for( x=maxWidth-1; x>=0; x-- )
for( y=0; y<maxHeight; y++ )
if( (XGetPixel( image, x, y) == 1) && (stop_x == -1) )
stop_x = x + 1;
/*
* If the size is too little, enhance it a bit
*/
if( stop_x - start_x < 1 )
{
start_x = 0; stop_x = maxWidth - 1;
}
/*
* Output the character we have just grabbed
*/
fprintf( g_Output, "static const GLubyte %s_Character_%03i[] = {%3i",
freeglutFontName, (int) g_Alphabet[ character ], stop_x-start_x
);
for( y=maxHeight-1; y>=0; y-- )
{
/*
* Prepare the line buffer for being used again
*/
memset( lineBuffer, 0, maxWidth );
/*
* Grab the rasterized character face into the line buffer
*/
for( x=start_x, lineWidth=0; x<stop_x; x++, lineWidth++ )
if( XGetPixel( image, x, y ) )
lineBuffer[ lineWidth / 8 ] |= 1 << (7 - (lineWidth % 8));
/*
* Feel free to output the final line bitmap now
*/
for( x=0; x<(stop_x - start_x + 7) / 8; x++ )
fprintf( g_Output, ",%3i", lineBuffer[ x ] );
}
fprintf( g_Output, "};\n" );
/*
* Free the image, and get to the next character...
*/
XDestroyImage( image );
}
/*
* Now we are ready to output the final data concerning the font charset
*/
fprintf( g_Output, "\n/* The font characters mapping: */\n" );
fprintf( g_Output, "static const GLubyte* %s_Character_Map[] = {", freeglutFontName );
/*
* I have decided to change the characters mapping a bit...
*/
for( character=1; character<256; character++ )
{
char ourCharacter[ 2 ] = { 0, 0 };
/*
* Do we have the character defined or not?
*/
ourCharacter[ 0 ] = (char) character;
if( strstr( g_Alphabet, ourCharacter ) == NULL )
{
/*
* Nope, output the g_NoChar character instead:
*/
fprintf( g_Output, "%s_Character_%03i,", freeglutFontName, (int) g_NoChar );
}
else
{
/*
* Otherwise we're welcome to output the character:
*/
fprintf( g_Output, "%s_Character_%03i,", freeglutFontName, (int) ourCharacter[ 0 ] );
}
}
fprintf( g_Output, "NULL};\n\n" );
/*
* And finally have the font structure written to the output stream
*/
fprintf( g_Output, "/* The font structure: */\n" );
fprintf( g_Output, "const SFG_Font fgFont%s = { \"%s\", %i, %i, %s_Character_Map };\n\n",
freeglutFontName, fontName, g_AlphabetLength, maxHeight, freeglutFontName
);
/*
* Done, clean up behind...
*/
XFreeGC( g_Display, context );
XFreePixmap( g_Display, buffer );
free( lineBuffer );
}
/*
* This function outputs the font file epilogue
*/
void OutputEpilogue( void )
{
fprintf( g_Output, "/*** END OF FILE ***/\n" );
}
/*
* The main function processes the command line arguments
* and outputs all the fonts we need to have rasterized.
*/
int main( int argc, char** argv )
{
char ourCharacter[ 2 ] = { 0, 0 };
char* outputFileName = NULL;
char* displayName = NULL;
int i = 1;
/*
* The fonts that are going to be rasterized and added to the output file:
*/
int fontsQuantity = 7;
char* fontsList[] = {
"Fixed8x13", "-misc-fixed-medium-r-normal--13-120-75-75-C-80-iso8859-1",
"Fixed9x15", "-misc-fixed-medium-r-normal--15-140-75-75-C-90-iso8859-1",
"Helvetica10", "-adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1",
"Helvetica12", "-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1",
"Helvetica18", "-adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1",
"TimesRoman10", "-adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1",
"TimesRoman24", "-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1"
};
g_ProgName = argv[0];
/*
* Initialize the alphabet's length
*/
g_AlphabetLength = strlen( g_Alphabet );
/*
* Make sure that the no-character character is in the alphabet
*/
ourCharacter[ 0 ] = g_NoChar;
if( strstr( g_Alphabet, ourCharacter ) == NULL )
{
fprintf( stderr, "%s the g_NoChar `%c' character not found in the alphabet `%s'\n",
g_ProgName, g_NoChar, g_Alphabet );
exit( 1 );
}
/*
* Grab the display name to be used
*/
displayName = strdup( getenv( "DISPLAY" ) );
/*
* Define the default output file name
*/
outputFileName = strdup( "freeglut_font_data.c" );
/*
* Process the command line arguments now. Command line arguments expected:
*
* -display <DISPLAYNAME> -- the display to connect to
* -file <FILENAME> -- the destination file name
*/
while( i < argc )
{
/*
* See what the current token is
*/
if( strcasecmp( argv[ i ], "-display" ) == 0 )
{
assert( (i + 1) < argc );
free( displayName );
/*
* The next token is expected to contain the X display name to use
*/
displayName = strdup( argv[ ++i ] );
}
else if( strcasecmp( argv[ i ], "-file" ) == 0 )
{
assert( (i + 1) < argc );
free( outputFileName );
/*
* The next token is expected to contain the destination file name
*/
outputFileName = strdup( argv[ ++i ] );
}
/*
* Get to the next argument
*/
i++;
}
/*
* Connect to the X display
*/
g_Display = XOpenDisplay( displayName );
assert( g_Display != NULL );
/*
* Have the destination file opened
*/
g_Output = fopen( outputFileName, "wt" );
assert( g_Output != NULL );
/*
* Output the file header first
*/
OutputPrologue( outputFileName );
/*
* In the file header, have the list of the fonts written:
*/
fprintf( g_Output, "\n/*\n * Following fonts are defined in this file:\n * \n" );
for( i=0; i<fontsQuantity; i++ )
fprintf( g_Output, " * %i. fgFont%s <%s>\n",
i + 1, fontsList[ i*2 + 0 ], fontsList[ i*2 + 1 ]
);
fprintf( g_Output, " */\n\n" );
/*
* Output all of the fonts we want to output
*/
for( i=0; i<fontsQuantity; i++ )
OutputFont( fontsList[ i*2 + 0 ], fontsList[ i*2 + 1 ] );
/*
* Finally, have the file epilogue outputted
*/
OutputEpilogue();
/*
* Close the output stream
*/
fclose( g_Output );
/*
* Close the X display
*/
XCloseDisplay( g_Display );
/*
* Clean up all the rest of the mess
*/
free( outputFileName );
free( displayName );
/*
* Return successful!
*/
return( EXIT_SUCCESS );
}
/*** END OF FILE ***/

View File

@ -1,217 +0,0 @@
/*
* main.c
*
* A simple utility to generate the stroke fonts to be used in freeglut.
*
* Copyright (c) 1999-2000 by Pawel W. Olszta
* Written by Pawel W. Olszta, <olszta@sourceforge.net>
* Creation date: czw sty 06 19:42:30 CET 2000
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software")
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Sotware.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
/*
* Define the log domain
*/
#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN "genstroke"
/*
* The alphabet we want to export.
*/
char* g_Alphabet = " abcdefghijklmnopqrstuwvxyzABCDEFGHIJKLMNOPQRSTUWVXYZ0123456789`~!@#$%^&*()-_=+[{}];:,.<>/?\\\"";
int g_AlphabetLength = 0;
/*
* All undefined characters will get replaced by this one:
*/
char g_NoChar = '*';
/*
* The stream we want to redirect our output to
*/
FILE* g_Output = NULL;
/*
* Our argv[0]
*/
char *g_ProgName = "";
/*
* This function outputs the font file prologue
*/
void OutputPrologue( char* fileName )
{
/*
* Output the copyright and permission notices:
*/
fprintf( g_Output, "/*\n * %s\n *\n * This file has been automatically generated by the genfonts utility.\n *\n", fileName );
fprintf( g_Output, " * Copyright (c) 1999-2000 by Pawel W. Olszta\n * Written by Pawel W. Olszta, <olszta@sourceforge.net>\n * \n" );
fprintf( g_Output, " * Permission is hereby granted, free of charge, to any person obtaining a\n" );
fprintf( g_Output, " * copy of this software and associated documentation files (the \"Software\"),\n" );
fprintf( g_Output, " * to deal in the Software without restriction, including without limitation\n" );
fprintf( g_Output, " * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n" );
fprintf( g_Output, " * and/or sell copies of the Software, and to permit persons to whom the\n" );
fprintf( g_Output, " * Software is furnished to do so, subject to the following conditions:\n *\n" );
fprintf( g_Output, " * The above copyright notice and this permission notice shall be included\n" );
fprintf( g_Output, " * in all copies or substantial portions of the Sotware.\n *\n" );
fprintf( g_Output, " * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n" );
fprintf( g_Output, " * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" );
fprintf( g_Output, " * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\n" );
fprintf( g_Output, " * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n" );
fprintf( g_Output, " * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n" );
fprintf( g_Output, " * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n" );
/*
* The obvious include headers
*/
fprintf( g_Output, "\n#ifdef HAVE_CONFIG_H\n#include \"config.h\"\n#endif\n\n#include \"../include/GL/freeglut.h\"\n#include \"../include/GL/freeglut_internal.h\"\n" );
}
/*
* This function outputs a font set
*/
void OutputFont( char* freeglutFontName, char* fontName )
{
/*
* This is an easy one. I just have to write a parser for the SRC files
* and dump their contents to the output file. Expect this to be done
* this weekend. The output data should be organized just like the bitmap
* fonts data, as it shown to be good.
*/
}
/*
* This function outputs the font file epilogue
*/
void OutputEpilogue( void )
{
fprintf( g_Output, "/*** END OF FILE ***/\n" );
}
/*
* The main function processes the command line arguments
* and outputs all the fonts we need to have rasterized.
*/
int main( int argc, char** argv )
{
char ourCharacter[ 2 ] = { 0, 0 };
char* outputFileName = NULL;
int i = 1;
g_ProgName = argv[0];
/*
* Initialize the alphabet's length
*/
g_AlphabetLength = strlen( g_Alphabet );
/*
* Make sure that the no-character character is in the alphabet
*/
ourCharacter[ 0 ] = g_NoChar;
if( strstr( g_Alphabet, ourCharacter ) == NULL )
{
fprintf( stderr,
"%s: the g_NoChar `%c' character not found in the alphabet `%s'\n",
g_ProgName, g_NoChar, g_Alphabet );
exit( 1 );
}
/*
* Define the default output file name
*/
outputFileName = strdup( "freeglut_font_stroke.c" );
/*
* Process the command line arguments now. Command line arguments expected:
*
* -file <FILENAME> -- the destination file name
*/
while( i < argc )
{
/*
* See what the current token is
*/
if( strcasecmp( argv[ i ], "-file" ) == 0 )
{
assert( (i + 1) < argc );
free( outputFileName );
/*
* The next token is expected to contain the destination file name
*/
outputFileName = strdup( argv[ ++i ] );
}
/*
* Get to the next argument
*/
i++;
}
/*
* Have the destination file opened
*/
g_Output = fopen( outputFileName, "wt" );
assert( g_Output != NULL );
/*
* Output the file header first
*/
OutputPrologue( outputFileName );
/*
* Output all of the fonts we want to output
*/
OutputFont( "Roman", "Roman.src" );
OutputFont( "RomanMono", "Roman_M.src" );
/*
* Finally, have the file epilogue outputted
*/
OutputEpilogue();
/*
* Close the output stream
*/
fclose( g_Output );
/*
* Clean up all the rest of the mess
*/
free( outputFileName );
/*
* Return successful!
*/
return( EXIT_SUCCESS );
}
/*** END OF FILE ***/

View File

@ -1,143 +0,0 @@
%{
/* $XConsortium: lex.l,v 5.9 95/01/05 19:18:40 kaleb Exp $ */
/* $XFree86: xc/fonts/PEX/lex.l,v 3.9 1996/10/17 15:10:45 dawes Exp $ */
/*****************************************************************
Copyright (c) 1989,1990, 1991 X Consortium
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of the X Consortium shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from the X Consortium.
Copyright (c) 1989,1990, 1991 by Sun Microsystems, Inc.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Sun Microsystems,
and the X Consortium, not be used in advertising or publicity
pertaining to distribution of the software without specific, written
prior permission.
SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
#include <ctype.h>
#include <math.h>
#include <stdlib.h>
int string(char *, int), res_words(char *);
%}
%%
\'[^']*\' |
\"[^"]*\" return string(yytext, yyleng);
#.* ;
[ ,;\t\n\r]* /* natural dilimters */ ;
[a-zA-Z][a-zA-Z0-9_.]* {
int token;
if ( (token = res_words(yytext)) )
return token;
return string(yytext, yyleng);
}
[+-]?[0-9]+\.?[0-9]*[eE][+-]?[0-9]+ |
[+-]?[0-9]+\.[0-9]* |
\.[0-9]+ {
yylval.dval = atof((char *)yytext);
return REAL;
}
[+-]?[0-9]+#[0-9]+ {
return INTEGER;
}
[+-]?[0-9]+ {
yylval.ival = atoi((char *)yytext);
return INTEGER;
}
[()] ;
%%
int res_words(char *str)
{
static struct res_strct {
char *word;
int token;
} res_table[] = {
{"BOTTOM", BOTTOM},
{"CENTER", CENTER},
{"PROPERTIES", PROPERTIES},
{"CLOSE", CLOSE},
{"FONTNAME", FONTNAME},
{"INDEX", INDEX},
{"MAGIC", MAGIC},
{"OPEN", OPEN},
{"RIGHT", RIGHT},
{"STROKE", STROKE},
{"TOP", TOP},
{"VERTICES", VERTICES},
{"BEARING", BEARING},
{"L_SPACE", L_SPACE},
{"WIDTH", WIDTH},
{"R_SPACE", R_SPACE},
{"NUM_CH", NUM_CH},
{0, 0}
};
{
register struct res_strct *reserved;
reserved = res_table;
do
if (!strcmp(str, reserved->word))
break;
while ((++reserved)->word != 0);
return reserved->token;
}
}
int string(char *str, int n)
{
if (*str == '\"' || *str == '\'')
{
str++;
n -= 2; /* one for EOL, one for end quote */
}
if ((yylval.cval = (char *)malloc(n + 1)) != NULL)
{
strncpy(yylval.cval, str, n);
yylval.cval[n] = '\0';
return STRING;
}
else
return 0;
}

View File

@ -1,659 +0,0 @@
%{
/* $XConsortium: to_wfont.y /main/9 1996/06/11 07:38:48 kaleb $ */
/* $XFree86: xc/fonts/PEX/to_wfont.y,v 3.6.2.1 1998/12/22 11:23:04 hohndel Exp $ */
/*****************************************************************
Copyright (c) 1989,1990, 1991 X Consortium
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of the X Consortium shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from the X Consortium.
Copyright (c) 1989,1990, 1991 by Sun Microsystems, Inc.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Sun Microsystems,
and the X Consortium, not be used in advertising or publicity
pertaining to distribution of the software without specific, written
prior permission.
SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
#define YYMAXDEPTH 10000
#define YY_NO_UNPUT
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#ifndef L_SET
#define L_SET SEEK_SET
#endif
#include "wfont.h"
typedef struct {
float std_left, /* NCGA standard left spacing */
std_wide, /* character width */
std_rght; /* Right spacing */
} Standard;
char fname[80];
Dispatch *Table; /* dispatch table */
Standard *sp_table; /* NCGA font spacings */
Path *strokes; /* strokes of each character */
Property *property; /* property list */
struct {
int path, point, props;
} count, expect;
Path_subpath *current_path;
Font_header head; /* font header */
int tableindex; /* which character */
int yyerrno; /* error number */
int yylex(void);
void yyerror(char *);
void set_num_ch(int);
void init_properties(int);
void check_num_props(void);
void add_property(char *, char *);
void check_num_ch(void);
void wf_header(char *, float, float);
void glyph_header(int, float, float, int);
void std_space(float, float, float);
void init_path(int, int);
void add_point(float, float);
void fini(void);
void freeall(void);
void check_nstroke(void);
void check_npts(void);
%}
%union {
int nil; /* void is reserved */
int ival;
float dval;
char *cval;
}
%start font
%token <dval> REAL
%token <ival> INTEGER
%token <cval> STRING
%token <nil> BOTTOM
%token <nil> CENTER
%token <nil> CLOSE
%token <nil> FONTNAME
%token <nil> PROPERTIES
%token <nil> NUM_CH
%token <nil> INDEX
%token <nil> L_SPACE
%token <nil> MAGIC
%token <nil> OPEN
%token <nil> RIGHT
%token <nil> R_SPACE
%token <nil> STROKE
%token <nil> TOP
%token <nil> VERTICES
%token <nil> BEARING
%token <nil> WIDTH
%type <cval> fontname
%type <dval> top bottom center right
%type <ival> nstroke nvertice n_pts index num_ch
%type <ival> closeflag
%type <ival> counter
%type <dval> sp_left wide sp_right
%%
font : fontheader num_ch fontprops fontbody spacing { fini(); }|
fontheader fontbody { fini(); };
fontheader : fontname top bottom
{ wf_header($1, $2, $3); };
fontname : FONTNAME STRING
{ $$ = $2; };
top : TOP REAL { $$ = $2;};
bottom : BOTTOM REAL { $$ = $2;};
num_ch: NUM_CH INTEGER { set_num_ch($2);};
fontprops : /* empty */ | properties;
properties : PROPERTIES INTEGER { init_properties ($2); } property_list
{ check_num_props (); };
property_list : /* empty */ | single_property property_list ;
single_property : STRING STRING { add_property($1, $2); };
fontbody : /* empty */
| glyph fontbody;
glyph : glyph_header strokes
{ check_nstroke(); };
glyph_header : index { tableindex = $1; } sym_headinfo;
sym_headinfo : nstroke center right nvertice
{ glyph_header($1, $2, $3, $4); };
index : INDEX INTEGER { check_num_ch(); $$ = $2; };
nstroke : STROKE INTEGER { $$ = $2; expect.path = $2; };
nvertice: {$$ = 0;} | VERTICES INTEGER { $$ = $2; } ;
center : CENTER REAL{ $$ = $2; };
right : RIGHT REAL{ $$ = $2; };
strokes : /* empty */ | path strokes;
path : closeflag n_pts { init_path($1, $2); } points
{ check_npts(); };
points : /* empty */ | coord points;
closeflag : CLOSE { $$ = $1 == CLOSE; } | OPEN { $$ = $1 == CLOSE; } ;
n_pts : INTEGER { $$ = $1; };
coord : REAL REAL { add_point($1, $2); };
spacing : /* empty */
| item spacing;
item : counter {tableindex = $1;} sp_left wide sp_right
{ std_space($3, $4, $5); };
counter : BEARING INTEGER {$$ = $2;};
sp_left: L_SPACE REAL {$$ = $2;};
wide : WIDTH REAL {$$ = $2;};
sp_right: R_SPACE REAL {$$ = $2;};
%%
#define BYE(err) yyerrno = (err), yyerror(NULL)
#define ERR_BASE 1000
#define OPEN_ERROR 1001
#define WRITE_ERROR 1002
#define WRONG_NAME 1003
#define NO_MEMORY 1004
#define EXCEED_PATH 1005
#define EXCEED_POINT 1006
#define PATH_MISMATCH 1007
#define POINT_MISMATCH 1008
#define PROP_MISMATCH 1009
#define EXCEED_PROPS 1010
#include "lex.c"
char *prog;
int main(int argc, char **argv)
{
/* Usage : genstroke [-o outfile] [infile] */
char *s;
fname[0] = 0;
tableindex = 0;
head.num_ch = -1;
prog = *argv;
while (--argc > 0 && *++argv != NULL)
{
s = *argv;
if (*s++ == '-')
{
switch (*s)
{
case 'o':
if (*++argv != NULL)
{
--argc;
(void) strcpy(fname, *argv);
}
break;
default: /* ignore other options */
;
}
}
else
{
int fd;
/* standard input redirection */
fd = open(*argv, O_RDONLY);
if (fd > 0)
{
if (close(fileno(stdin)) < 0)
{
perror(prog);
return (1);
}
if (dup(fd) < 0)
{
perror(prog);
return (1);
}
close(fd);
}
}
}
return (yyparse());
}
/* set number of characters */
void set_num_ch(int num_ch)
{
yyerrno = 0;
head.num_ch = num_ch;
if (num_ch > 0)
{
Table = (Dispatch *) malloc(num_ch * sizeof(Dispatch));
sp_table = (Standard *) malloc(num_ch * sizeof(Standard));
strokes = (Path *) malloc(num_ch * sizeof(Path));
}
for (tableindex = 0; tableindex < num_ch; tableindex++)
{
Table[tableindex].center = 0.0;
Table[tableindex].right = 0.0;
Table[tableindex].offset = 0;
sp_table[tableindex].std_left = 0.0;
sp_table[tableindex].std_wide = 0.0;
sp_table[tableindex].std_rght = 0.0;
strokes[tableindex].n_subpaths = 0;
strokes[tableindex].n_vertices = 0;
strokes[tableindex].subpaths = NULL;
}
}
/* initialize the property info in the header */
void init_properties(int num_props)
{
if (num_props > 0)
{
head.properties = malloc(num_props * sizeof(Property));
head.num_props = expect.props = num_props;
}
else
{
head.properties = NULL;
head.num_props = expect.props = 0;
}
count.props = -1;
property = head.properties; /* initialize the list pointer */
}
void check_num_props(void)
{
count.props++;
if (count.props != expect.props)
BYE (PROP_MISMATCH);
}
/* add individual property info into the buffer */
void add_property(char *name, char *value)
{
/* check if the property exceeds allocated space */
if (++count.props >= head.num_props)
BYE(EXCEED_PROPS);
/* copy the strings into the buffer */
(void) strcpy(property->propname, name);
(void) strcpy(property->propvalue, value);
/* increment the property pointer */
property++;
}
void check_num_ch(void)
{
if (head.num_ch == -1)
set_num_ch(128);
}
void yyerror(char *str)
{
# define ERR_SIZE (sizeof(err_string) / sizeof(char *))
static char *err_string[] = {
"Cannot open file",
"Write fails",
"Illegal font name",
"Memory allocation failure",
"Specified number of strokes exceeded",
"Specified number of points exceeded",
"Number of strokes do not match",
"Number of points do not match",
"Number of properties do not match",
"Specified number of properties exceeded",
0};
if (str == NULL)
{
yyerrno -= ERR_BASE;
if (yyerrno > 0 && yyerrno < ERR_SIZE)
str = err_string[yyerrno-1];
else
str = "Syntax error";
}
fprintf(stderr, "%s.\n", str);
freeall();
(void) unlink(fname);
exit(1);
}
/* create wfont header */
void wf_header(char *name, float top, float bottom)
{
if (name == NULL)
BYE(WRONG_NAME);
head.top = top;
head.bottom = bottom;
head.magic = WFONT_MAGIC_PEX;
(void) strcpy(head.name, name);
free(name);
}
/* create header for each glyph */
void glyph_header(int npath, float center, float right, int npts)
{
{
register Path *strk = strokes + tableindex;
if (npath > 0) /* Don't allocate space unless the character
has strokes associated with it. */
{
strk->subpaths = malloc(npath * sizeof(Path_subpath));
if (strk->subpaths == NULL)
BYE(NO_MEMORY);
strk->type = PATH_2DF;
strk->n_subpaths = npath;
strk->n_vertices = npts;
}
else /* Just initialize the entry */
{
strk->subpaths = NULL;
strk->type = PATH_2DF;
strk->n_subpaths = 0;
strk->n_vertices = 0;
}
}
{
register Dispatch *tbl = Table + tableindex;
tbl->offset = 0;
tbl->center = center;
tbl->right = right;
}
count.path = -1; /* initialize path counter, not to
* exceed n_subpath */
}
/* create standard spacing info for each glyph */
void std_space(float l_bear, float wide, float r_bear)
{
register Standard *tbl = sp_table + tableindex;
tbl->std_left = l_bear;
tbl->std_wide = wide;
tbl->std_rght = r_bear;
}
/* initialize each sub_path */
void init_path(int close, int n)
{
register Path_subpath *path;
if (++count.path >= strokes[tableindex].n_subpaths)
BYE(EXCEED_PATH);
path = current_path = strokes[tableindex].subpaths + count.path;
path->n_pts = n;
path->closed = close;
if (n > 0)
path->pts.pt2df = malloc(n * sizeof(Path_point2df));
if (path->pts.pt2df == NULL)
BYE(NO_MEMORY);
expect.point = path->n_pts;
count.point = -1; /* initialize point counter, not to
* exceed n_pts */
}
/* accumulating points for each sub_path */
void add_point(float x, float y)
{
register Path_subpath *path;
register Path_point2df *pt_ptr;
path = current_path;
if (++count.point >= path->n_pts)
BYE(EXCEED_POINT);
pt_ptr = path->pts.pt2df + count.point;
pt_ptr->x = x;
pt_ptr->y = y;
}
/* Path_type + n_subpaths + n_vertices */
#define STROKE_HEAD (sizeof(Path_type) + sizeof(int) + sizeof(int))
/* write out file, close everything, free everything */
void fini(void)
{
/* pointers used to walk the arrays */
register Path_subpath *spath;
register Dispatch *tbl_ptr;
register Path *strptr;
FILE *fp;
int npath;
register int i, j, k;
Standard *sp_ptr;
Path_point2df *pt;
if (fname[0] == 0) /* default output file name */
{
(void) strcpy(fname, head.name);
(void) strcat(fname, ".c");
}
if ((fp = fopen(fname, "w")) == NULL)
BYE(OPEN_ERROR);
fprintf(fp, "\n/* This file has been automatically generated by the genstroke utility. */\n");
fprintf(fp, "\n#include \"../include/GL/freeglut_internal.h\"\n");
# define BY_BYE(err) fclose(fp), BYE(err)
/* adjust the characters for spacing, note max char width */
head.max_width = 0.0;
for (i = 0, tbl_ptr = Table, strptr = strokes, sp_ptr = sp_table;
i < head.num_ch; i++, tbl_ptr++, strptr++, sp_ptr++)
{
tbl_ptr->center += sp_ptr->std_left;
tbl_ptr->right += sp_ptr->std_left + sp_ptr->std_rght;
if (tbl_ptr->right > head.max_width)
head.max_width = tbl_ptr->right;
npath = strptr->n_subpaths;
if (npath > 0 || tbl_ptr->center != 0.0 ||
tbl_ptr->right != 0.0)
{
for (j = 0, spath = strptr->subpaths;
j < npath; j++, spath++)
{
for(k=0, pt = spath->pts.pt2df;
k<spath->n_pts; k++, pt++)
{
pt->x += sp_ptr->std_left;
}
}
}
}
/* write the stroke table */
for (i = 0, tbl_ptr = Table, strptr = strokes;
i < head.num_ch; i++, tbl_ptr++, strptr++)
{
npath = strptr->n_subpaths;
if (npath > 0 || tbl_ptr->center != 0.0 ||
tbl_ptr->right != 0.0)
{
fprintf(fp, "\n/* char: 0x%x */\n", i);
for (j = 0, spath = strptr->subpaths;
j < npath; j++, spath++)
{
fprintf(fp, "\nstatic const SFG_StrokeVertex ch%ust%u[] =\n{\n", i, j);
for(k = 0; k < spath->n_pts; k++)
{
fprintf(fp, " {%g,%g}%s\n",
spath->pts.pt2df[k].x,
spath->pts.pt2df[k].y,
k+1 < spath->n_pts ? "," : "");
}
fprintf(fp, "};\n");
}
fprintf(fp, "\nstatic const SFG_StrokeStrip ch%ust[] =\n{\n", i);
for (j = 0, spath = strptr->subpaths;
j < npath; j++, spath++)
{
fprintf(fp, " {%u,ch%ust%u}%s\n",
spath->n_pts, i, j,
j+1 < npath ? "," : "");
}
fprintf(fp, "};\n");
fprintf(fp, "\nstatic const SFG_StrokeChar ch%u = {%g,%u,ch%ust};\n",
i, tbl_ptr->right, npath, i);
}
}
fprintf(fp, "\nstatic const SFG_StrokeChar *chars[] =\n{\n");
for (i = 0, tbl_ptr = Table, strptr = strokes;
i < head.num_ch; )
{
for (j = 0; j < 8 && i < head.num_ch;
j++, i++, tbl_ptr++, strptr++)
{
fprintf(fp, " ");
npath = strptr->n_subpaths;
if (npath > 0 || tbl_ptr->center != 0.0 ||
tbl_ptr->right != 0.0)
fprintf(fp, "&ch%u", i);
else
fprintf(fp, "0");
if (i+1 < head.num_ch)
fprintf(fp, ",");
}
fprintf(fp, "\n");
}
fprintf(fp, "};\n");
fprintf(fp, "\nconst SFG_StrokeFont fgStroke%s = {\"%s\",%d,%g,chars};\n",
head.name, head.name, head.num_ch, head.top - head.bottom);
(void) fclose(fp);
freeall();
# undef BY_BYE
}
void freeall(void)
{
register Path *path;
register Path_subpath *spath;
register int i, j, n;
path = strokes;
for (i = 0; i < head.num_ch; i++, path++)
{
n = path->n_subpaths;
if (n <= 0)
continue;
spath = path->subpaths;
for (j = 0; j < n; j++, spath++)
if (spath->pts.pt2df != NULL)
free((char *) spath->pts.pt2df);
if (path->subpaths != NULL)
free((char *) path->subpaths);
}
if (Table)
free(Table);
if (sp_table)
free(sp_table);
if (strokes)
free(strokes);
if (head.properties != NULL)
free((char *) head.properties);
}
void check_nstroke(void)
{
count.path++;
if (expect.path != count.path)
BYE(PATH_MISMATCH);
}
void check_npts(void)
{
count.point++;
if (expect.point != count.point)
BYE(POINT_MISMATCH);
}

View File

@ -1,164 +0,0 @@
/* $XConsortium: wfont.h,v 5.2 94/04/17 20:10:09 rws Exp $ */
/*****************************************************************
Copyright (c) 1989,1990, 1991 X Consortium
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of the X Consortium shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from the X Consortium.
Copyright (c) 1989,1990, 1991 by Sun Microsystems, Inc.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Sun Microsystems,
and the X Consortium, not be used in advertising or publicity
pertaining to distribution of the software without specific, written
prior permission.
SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
#ifndef WFONT_INCLUDED
#define WFONT_INCLUDED
#define WFONT_MAGIC 0x813
#define WFONT_MAGIC_PLUS 0x715
#define WFONT_MAGIC_PEX 0x70686e74
#define START_PROPS 0x100
#define START_DISPATCH(_num_props) (START_PROPS + 160 * _num_props)
#define START_PATH(_num_ch_, _num_props) (START_DISPATCH(_num_props) + sizeof(Dispatch) * _num_ch_)
#define NUM_DISPATCH 128
typedef struct {
unsigned short x;
unsigned short y;
} Path_point2dpx;
typedef struct {
float x;
float y;
} Path_point2df;
typedef struct {
int x;
int y;
int z;
} Path_point3di;
typedef struct {
float x;
float y;
float z;
} Path_point3df;
typedef struct {
float x;
float y;
float z;
float w;
} Path_point4df;
typedef union {
Path_point2dpx *pt2dpx;
Path_point2df *pt2df;
Path_point3di *pt3di;
Path_point3df *pt3df;
Path_point4df *pt4df;
} Path_pt_ptr;
typedef enum {
PATH_2DF,
PATH_2DPX,
PATH_3DF,
PATH_3DI,
PATH_4DF
} Path_type;
typedef struct {
int n_pts; /* number of points in the subpath */
Path_pt_ptr pts; /* pointer to them */
int closed; /* true if the subpath is closed */
int dcmp_flag; /* flag for pgon dcmp, pgon type
and dcmped triangle type */
} Path_subpath;
typedef struct {
Path_type type; /* type of vertices in this path */
int n_subpaths; /* number of subpaths */
int n_vertices; /* total number of vertices */
Path_subpath *subpaths; /* array of subpaths */
} Path;
typedef Path *Path_handle;
typedef struct {
char propname[80]; /* font property name */
char propvalue[80]; /* font property value */
}Property;
typedef struct {
int magic; /* magic number */
char name[80]; /* name of this font */
float top, /* extreme values */
bottom,
max_width;
int num_ch; /* no. of fonts in the set */
int num_props; /* no. of font properties */
Property *properties; /* array of properties */
} Font_header;
typedef struct {
float center, /* center of the character */
right; /* right edge */
long offset; /* offset in the file of the character
* description*/
} Dispatch;
typedef struct {
float center,
right;
Path strokes;
} Ch_font;
typedef struct {
char name[80];
float top,
bottom,
max_width;
int num_ch; /* # characters in the font*/
Ch_font **ch_data;
} Phg_font;
#endif /*WFONT_INCLUDED*/