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:
parent
50b032cec5
commit
a37e97a6d8
8
.gitattributes
vendored
8
.gitattributes
vendored
@ -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/freeglut_static.dsp svn_keywords=Author+Date+Id+Revision
|
||||||
freeglut/freeglut/freeglutdll.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/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/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.h svn_keywords=Author+Date+Id+Revision
|
||||||
freeglut/freeglut/include/GL/freeglut_ext.h svn_keywords=Author+Date+Id+Revision
|
freeglut/freeglut/include/GL/freeglut_ext.h svn_keywords=Author+Date+Id+Revision
|
||||||
|
@ -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
|
|
@ -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
|
|
||||||
|
|
@ -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)
|
|
@ -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 ***/
|
|
@ -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 ***/
|
|
@ -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;
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
@ -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*/
|
|
Reference in New Issue
Block a user