Replace the small QCAD CXF stroke-font set with the full LibreCAD LFF font library (46 fonts) and a new LFF parser/engine in src/scene/lff.rs. The parser reads the `[hex] char` glyph blocks, tessellates `,A<bulge>` arcs, and resolves `C<hex>` glyph references. Per LibreCAD's RS_Polyline convention a vertex's bulge curves the segment ending at that vertex — getting this wrong turned round letters like O into sideways capsules. Font name resolution mirrors LibreCAD: match by file stem, map common AutoCAD/DXF SHX names (txt, isocp, complex, italic, gothic*, gost, …) to the nearest LFF family, and fall back to `standard`. A missing glyph in the chosen family falls back to the broad `unicode` font so accented/Cyrillic/Greek text still renders. Cap height stays 9 units, so the text scale is unchanged. All text consumers move from cxf:: to lff::; complex linetypes still render embedded text but no longer draw embedded shapes (LibreCAD ships no shape file). The CXF module and every *.cxf asset are removed, and the MText / text style font pickers list the LFF families. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
582 lines
10 KiB
Text
582 lines
10 KiB
Text
# Format: LibreCAD Font 1
|
||
# Creator: LibreCAD
|
||
# Version: master
|
||
# Encoding: UTF-8
|
||
# LetterSpacing: 3
|
||
# WordSpacing: 6.75
|
||
# LineSpacingFactor: 1
|
||
# Created: 2011-10-10
|
||
# Last modified: 2011-10-10
|
||
# Author: Rallaz <rallazz@gmail.com>
|
||
# License: GPL v2 or later
|
||
#
|
||
# Notes: - This font is based in the file
|
||
# http://commons.wikimedia.org/wiki/File:ISO3098.svg
|
||
# released as public domain.
|
||
|
||
[0021] !
|
||
0,0;0.1341,0.5
|
||
0.80382,3;2.41172,9
|
||
|
||
[0022] "
|
||
0,7;1.03597,9
|
||
2.5,7;3.53588,9
|
||
|
||
[0023] #
|
||
0.6962,0;3.10764,9
|
||
3.6962,0;6.10764,9
|
||
0.80382,6;6.80382,6
|
||
0,3;6,3
|
||
|
||
[0024] $
|
||
1.6,0;4,9
|
||
0,1.5;2.366,1,A0.1095;4.287,2.60756,A0.329;3.852,3.80823,A0.30115;1.7555,5.1915;1.3205,6.3922,A-0.30115;3.24148,8,A-0.329;5.60756,7.5,A-0.11
|
||
|
||
[0025] %
|
||
0,0;10.41155,9
|
||
6.78956,0.04438;8.35545,1.35456,A0.22746;7.00562,2.96784,A0.63301;5.43973,1.65765,A0.22746;6.78956,0.04438,A0.633
|
||
3.39712,6.04438;4.96301,7.35456,A0.22746;3.61318,8.96784,A0.63301;2.04729,7.65765,A0.22746;3.39712,6.04438,A0.633
|
||
|
||
[0026] &
|
||
4.629,0;2.15764,6.682;3.47374,8.89183,A-0.37833;4.9128,8.635,A-0.3;4.638,6.62847,A-0.37;0.52536,2.3535;0.25742,0.35393,A0.37796;2.115,0.30205,A0.3525;6.5,3
|
||
|
||
[0027] '
|
||
0,7;1.03597,9
|
||
|
||
[0028] (
|
||
2.87,9.737;0.02902,-1,A0.15914
|
||
|
||
[0029] )
|
||
0,-1;2.84074,9.7368,A0.16118
|
||
|
||
[002a] *
|
||
0,3.927;2.8532,3;5.7,3.927
|
||
0.74,0.573;2.8532,3;4.2665,0.573
|
||
2.8532,3;3.657,6
|
||
|
||
[002b] +
|
||
1.4642,1;2.536,5
|
||
0,3;4,3
|
||
|
||
[002c] ,
|
||
0,-2;1.036,0
|
||
|
||
[002d] -
|
||
0,3;4,3
|
||
|
||
[002e] .
|
||
0,0;0.13384,0.5
|
||
|
||
[002f] /
|
||
0,0;6.41138,9
|
||
|
||
[0030] 0
|
||
2.28125,8.35847;0.119,0.61595,A0.21814;0.45858,0.1449,A0.21028;2.23845,0.46836,A0.316;4.40065,8.211,A0.21527;4.06112,8.68192,A0.21028;2.28125,8.35847,A0.31607
|
||
|
||
[0031] 1
|
||
0,7;2.53597,9;0.1245,0
|
||
|
||
[0032] 2
|
||
2.00942,7.5;2.41095,8;5.305,8.76,A-0.369;5.30564,5.9603,A-0.4656;0,0;4,0
|
||
|
||
[0033] 3
|
||
2.3411,5;3.5,5
|
||
2.5,9;4.515,9;5.94,7.5416,A-0.42345;3.5,5,A-0.38745;4.81584,3.06234,A-0.49365;4.53726,2;2.02983,0,A-0.31541;0,0
|
||
|
||
[0034] 4
|
||
4.07202,4;3,0
|
||
3.87567,9;0,2;5,2
|
||
|
||
[0035] 5
|
||
6.413,9;2.413,9;1.34,5;3.34,5;4.816,3.06234,A-0.52907;4.5375,2;2,-0,A-0.33353;0,0
|
||
|
||
[0036] 6
|
||
0.89087,5;2.89096,5;4.36554,3.06234,A-0.52827;4.08722,2;1.55,0,A-0.3186;0.07667,1.93766,A-0.52973;0.89087,5;4.84643,9,A-0.2469
|
||
|
||
[0037] 7
|
||
0.14344,8;0.4114,9;4.41155,9;0,0
|
||
|
||
[0038] 8
|
||
2.891,5;4.36554,3.06234,A-0.52827;4.08722,2;1.5497,0,A-0.31859;0.07667,1.93766,A-0.52973;0.35904,3;2.891,5,A-0.30861
|
||
3.74822,9;1.5575,7.3865,A0.2407;2.96715,5,A0.6108;5.47077,7.38648,A0.33751;3.74822,9,A0.47769
|
||
|
||
[0039] 9
|
||
3.956,4;1.95547,3.9874;0.4809,5.925,A-0.52827;0.7592,6.9877;3.29673,8.98738,A-0.3186;4.76976,7.0497,A-0.52973;3.956,4;-0,0,A-0.247
|
||
|
||
[003a] :
|
||
0,0.5;0.134,1
|
||
1.07176,4.5;1.20586,5
|
||
|
||
[003b] ;
|
||
0,-2;1.03597,0
|
||
1.97363,3.5;2.10773,4
|
||
|
||
[003c] <
|
||
3.59813,1.5;0,3;4.402,4.5
|
||
|
||
[003d] =
|
||
0,1.5;4,1.5
|
||
0.8038,4.5;4.8038,4.5
|
||
|
||
[003e] >
|
||
0,1.5;4.402,3;0.804,4.5
|
||
|
||
[003f] ?
|
||
0.27754,8.5;2.9,9,A-0.08942;3.96879,8.35492,A-0.2985;3.26664,6.42435,A-0.33435;1.701,5.2172;1.20586,4.5,A0.16022;0.80382,3
|
||
0.1341,0.5;0,0
|
||
|
||
[0040] @
|
||
2.72,-3;0.15,0.45,A-0.53555;1.3637,5;6.5,9,A-0.3223;9.3718,5.05836,A-0.52765;8.35893,1.24935;6.75492,0,A-0.322;5.8564,1.2312,A-0.528;7.1318,6;5.632,6;3.73624,4.5072,A0.32;2.926,1.5;4.02174,-0,A0.53678;5.8564,1.2312,A0.2744
|
||
|
||
[0041] A
|
||
0,0;5.41146,9;6,0
|
||
1.50313,2.5;5.83652,2.5
|
||
|
||
[0042] B
|
||
0,0;2.41146,9;4.9114,9;6.4368,7.3864,A-0.4388;3.83962,5,A-0.34894;5.72168,2.7432,A-0.4745;2.5,-0,A-0.32523;0,0
|
||
1.3397,5;3.83962,5
|
||
|
||
[0043] C
|
||
3.552,0;1.552,0;0.07754,1.93758,A-0.53136;1.42736,7;3.9353,9,A-0.3153;5.9634,9
|
||
|
||
[0044] D
|
||
2.41146,9;5.448,9;6.92246,7.06242,A-0.53136;5.57264,2;3.0647,-0,A-0.31531;0,0;2.41146,9
|
||
|
||
[0045] E
|
||
1.34,5;4.34,5
|
||
4,0;0,0;2.41172,9;6.41164,9
|
||
|
||
[0046] F
|
||
1.34,5;5.34,5
|
||
0,0;2.41146,9;6.41164,9
|
||
|
||
[0047] G
|
||
4.3902,5;5.8902,5;4.55045,0;1.473,0;0.07587,1.9396,A-0.512;1.426,7;3.93364,9,A-0.31474;6.962,9
|
||
|
||
[0048] H
|
||
0,0;2.41146,9
|
||
5,0;7.41155,9
|
||
1.34,5;6.34,5
|
||
|
||
[0049] I
|
||
0,0;2.41146,9
|
||
|
||
[004a] J
|
||
0,0;1,0;3.52767,2,A0.3185;5.41155,9
|
||
|
||
[004b] K
|
||
0,0;2.41146,9
|
||
7.41155,9;0.9348,3.4884
|
||
5,0;3.38075,5.57
|
||
|
||
[004c] L
|
||
2.41154,9;0,0;4.5,0
|
||
|
||
[004d] M
|
||
0,0;2.41146,9;4.07176,4;8.41146,9;6,0
|
||
|
||
[004e] N
|
||
0,0;2.41146,9;5,0;7.4117,9
|
||
|
||
[004f] O
|
||
0.10525,2.471;1.18194,6.50744;4.39,9.0146,A-0.32014;6.1872,6.54427,A-0.52535;5.11052,2.50778;1.9025,0,A-0.32014;0.10525,2.47095,A-0.52535
|
||
|
||
[0050] P
|
||
0,0;2.41146,9;4.913,9;6.6418,6.22082,A-0.57;3.6,4,A-0.29382;1.07176,4
|
||
|
||
[0051] Q
|
||
C004f
|
||
4,2;5.5,0
|
||
|
||
[0052] R
|
||
C0050
|
||
5.00164,0;4.06,4.05816
|
||
|
||
[0053] S
|
||
6.50968,8.52173;3.8046,9,A0.12451;2.22186,5.24,A0.6051;4.65407,3.80333;4.78247,1.092,A-0.43467;-0,1.02173,A-0.44183
|
||
|
||
[0054] T
|
||
0,9;5,9
|
||
2.41172,9;0,0
|
||
|
||
[0055] U
|
||
1.8548,9;0.11306,2.5;1.94066,-0,A0.5343;5.11834,2.53726,A0.3208;6.8549,9
|
||
|
||
[0056] V
|
||
0,9;0.58828,0;6,9
|
||
|
||
[0057] W
|
||
0.41138,9;0,0;3.60773,6;4,0;8.41146,9
|
||
|
||
[0058] X
|
||
0,0;8.41172,9
|
||
2.41172,9;6,0
|
||
|
||
[0059] Y
|
||
0.58828,0;1.836,4.65563
|
||
0,9;1.836,4.65563;6,9
|
||
|
||
[005a] Z
|
||
2.41155,9;7.41155,9;0,0;5,0
|
||
|
||
[005b] [
|
||
1,-1;0,-1;2.94735,10;3.94752,10
|
||
|
||
[005c] \
|
||
0,9;1.58845,0
|
||
|
||
[005d] ]
|
||
0,-1;1,-1;3.94752,10;2.94735,10
|
||
|
||
[005e] ^
|
||
0,7;2.5357,9;4,7
|
||
|
||
[005f] _
|
||
0,-3;11,-3
|
||
|
||
[0060] `
|
||
0,10;1.6,8.5
|
||
|
||
[0061] a
|
||
1.75693,6;3.757,6;4.85835,4.52222,A-0.52594;3.6494,0;1.0792,0;0.01182,1.23814,A-0.4583;1.932,3,A-0.35145;4.45143,3
|
||
|
||
[0062] b
|
||
2.41172,9;0,0;2.5,0;4.40252,1.5223,A0.35083;5.1972,4.44072;4.0868,6,A0.51553;1.60777,6
|
||
|
||
[0063] c
|
||
4.24795,6;2.7618,6;0.8593,4.4777,A0.35083;0.06462,1.55928;1.175,-0,A0.51553;2.64038,0
|
||
|
||
[0064] d
|
||
5.2618,6;2.7618,6;0.8593,4.4777,A0.35083;0.06462,1.55928;1.175,0,A0.51553;3.65404,0;6.06576,9
|
||
|
||
[0065] e
|
||
0.45692,3;4.455,3;4.7146,4;3.14915,6,A0.56237;0.723,4,A0.30794;0.06462,1.55928;1.175,-0,A0.51553;3.64038,0
|
||
|
||
[0066] f
|
||
0.60773,6;3.60773,6
|
||
4.41155,9;3.9122,9;2,7.47769,A0.35083;0,0
|
||
|
||
[0067] g
|
||
0,-3;2,-3;3.90782,-1.4777,A0.35083;5.91155,6;3.41155,6;1.509,4.4777,A0.35083;0.71436,1.55928;1.82474,-0,A0.51553;4.30378,0
|
||
|
||
[0068] h
|
||
0,0;2.41146,9
|
||
4,0;5.2092,4.44072;4.0988,6,A0.51553;1.6076,6
|
||
|
||
[0069] i
|
||
0,0;1.608,6
|
||
2.27762,8.5;2.41172,9
|
||
|
||
[006a] j
|
||
0,-3;0.5,-3;2.40185,-1.5,A0.31756;4.40816,6
|
||
5.07788,8.5;5.21198,9
|
||
|
||
[006b] k
|
||
2.41172,9;0,0
|
||
0.80408,3;5.60782,6
|
||
4.00017,0;2.88852,4.30176
|
||
|
||
[006c] l
|
||
2.1744,9;0.03087,1;0.75817,-0,A0.49193
|
||
|
||
[006d] m
|
||
3,0;4.60764,6
|
||
6,0;7.2092,4.44072;6.0988,6,A0.51553;1.60764,6;0,0
|
||
|
||
[006e] n
|
||
4,0;5.2092,4.44072;4.0988,6,A0.51553;1.60764,6;0,0
|
||
|
||
[006f] o
|
||
4.62554,3.9905;3.06,6,A0.56237;0.63392,3.99983,A0.30794;0.097,2.0095;1.66246,-0,A0.56237;4.08862,2.00017,A0.30794;4.62554,3.9905
|
||
|
||
[0070] p
|
||
0.80395,0.00026;3.30395,0.00026;5.20647,1.52257,A0.35083;6.00114,4.44098;4.89076,6.00026,A0.51553;2.41172,6.00026;0,-3
|
||
|
||
[0071] q
|
||
2.85008,-3;5.2618,6;2.7618,6;0.8593,4.4777,A0.35083;0.06462,1.55928;1.175,-0,A0.51553;3.65404,0
|
||
|
||
[0072] r
|
||
0,0;1.60764,6;4.60764,6;4.3397,4.99983
|
||
|
||
[0073] s
|
||
4.8398,5.49965;2.85167,6,A0.11487;1.2995,5.12952,A0.2646;1.54384,3.6238,A0.41646;3.79578,2.3754;4.20508,1.28316,A-0.33065;2.50245,0,A-0.337;0,0.5,A-0.095
|
||
|
||
[0074] t
|
||
0,0;2.41146,9
|
||
0.60747,6;3.60773,6
|
||
|
||
[0075] u
|
||
1.2738,6;0.06462,1.55928;1.175,-0,A0.51553;3.66616,0;5.2738,6
|
||
|
||
[0076] v
|
||
0,6;0.39218,0;4,6
|
||
|
||
[0077] w
|
||
0.10764,6;0,0;2.57176,4;3,0;6.10764,6
|
||
|
||
[0078] x
|
||
0,0;5.60782,6
|
||
1.60764,6;4,0
|
||
|
||
[0079] y
|
||
6.41164,6;1,-3;0,-3
|
||
2.41146,6;2.73413,0
|
||
|
||
[007a] z
|
||
1.60764,6;5.60782,6;0,0;4,0
|
||
|
||
[007b] {
|
||
0.76923,-1;0.03726,0,A-0.5114;0.97492,3.5;0.243,4.5,A0.5114;1.5108,5.5,A0.3016;2.44872,9;3.71658,10,A-0.3016
|
||
|
||
[007c] |
|
||
0,0;2.41185,9
|
||
|
||
[007d] }
|
||
2.94735,10;3.67932,9,A-0.5114;2.74166,5.5;3.47363,4.5,A0.5114;2.2058,3.5,A0.3016;1.26785,0;-0,-1,A-0.3016
|
||
|
||
[00b0] °
|
||
0,7.5;3,7.5,A1;0,7.5,A1
|
||
|
||
[00b1] ±
|
||
0,0;4,0
|
||
1.072,4;5.072,4
|
||
2.536,2;3.608,6
|
||
|
||
[00c0] À
|
||
C0041
|
||
5.4,13;7,11.5
|
||
|
||
[00c1] Á
|
||
C0041
|
||
5,11.5;7.4,13
|
||
|
||
[00c2] Â
|
||
C0041
|
||
4.5,11.5;6.4,13;7.5,11.5
|
||
|
||
[00c3] Ã
|
||
C0041
|
||
4.35,12.5;4.83,12.8;6,12.82,A-0.327;6.7,12.2;7.87,12.2,A0.34;8.35,12.5
|
||
|
||
[00c4] Ä
|
||
C0041
|
||
7.634,12;7.5,11.5
|
||
4.5,11.5;4.634,12
|
||
|
||
[00c5] Å
|
||
C0041
|
||
6.04,10.526;7.35,11.62,A0.2275;6.222,12.966,A0.633;4.915,11.872,A0.2275;6.04,10.526,A0.633
|
||
|
||
[00c6] Æ
|
||
0,0;5.4115,9;10.4122,9
|
||
7.4117,9;5,0;8,0
|
||
6.34,5;8.84,5
|
||
1.503,2.5;5.6705,2.5
|
||
|
||
[00c7] Ç
|
||
C0043
|
||
1.5,0;0.465,-2
|
||
|
||
[00c8] È
|
||
C0045
|
||
4.5,13;6.1,11.5
|
||
|
||
[00c9] É
|
||
C0045
|
||
4.1,11.5;6.5,13
|
||
|
||
[00ca] Ê
|
||
C0045
|
||
3.5,11.5;5.4,13;6.5,11.5
|
||
|
||
[00cb] Ë
|
||
C0045
|
||
6.634,12;6.5,11.5
|
||
3.5,11.5;3.634,12
|
||
|
||
[00cc] Ì
|
||
C0049
|
||
2.5,13;4.1,11.5
|
||
|
||
[00cd] Í
|
||
C0049
|
||
2.1,11.5;4.5,13
|
||
|
||
[00ce] Î
|
||
C0049
|
||
1.5,11.5;3.4,13;4.5,11.5
|
||
|
||
[00cf] Ï
|
||
C0049
|
||
4.634,12;4.5,11.5
|
||
1.5,11.5;1.634,12
|
||
|
||
[00d1] Ñ
|
||
C004E
|
||
3.85,12.5;4.33,12.8;5.5,12.82,A-0.327;6.2,12.2;7.37,12.2,A0.34;7.85,12.5
|
||
|
||
[00d2] Ò
|
||
C004F
|
||
4.5,13;6.1,11.5
|
||
|
||
[00d3] Ó
|
||
C004F
|
||
4.1,11.5;6.5,13
|
||
|
||
[00d4] Ô
|
||
C004F
|
||
3.5,11.5;5.4,13;6.5,11.5
|
||
|
||
[00d5] Õ
|
||
C004F
|
||
3.35,12.5;3.83,12.8;5,12.82,A-0.327;5.7,12.2;6.87,12.2,A0.34;7.35,12.5
|
||
|
||
[00d6] Ö
|
||
C004F
|
||
6.634,12;6.5,11.5
|
||
3.5,11.5;3.634,12
|
||
|
||
[00d9] Ù
|
||
C0055
|
||
4.5,13;6.1,11.5
|
||
|
||
[00da] Ú
|
||
C0055
|
||
4.1,11.5;6.5,13
|
||
|
||
[00db] Û
|
||
C0055
|
||
3.5,11.5;5.4,13;6.5,11.5
|
||
|
||
[00dc] Ü
|
||
C0055
|
||
6.634,12;6.5,11.5
|
||
3.5,11.5;3.634,12
|
||
|
||
[00dd] Ý
|
||
C0059
|
||
2.6,11.5;5,13
|
||
|
||
[00d7] ×
|
||
0,1;5.0717,5
|
||
1.072,5;4,1
|
||
|
||
[00e0] à
|
||
C0061
|
||
3.5,10;5.1,8.5
|
||
|
||
[00e1] á
|
||
C0061
|
||
3.1,8.5;5.5,10
|
||
|
||
[00e2] â
|
||
C0061
|
||
2.5,8.5;4.4,10;5.5,8.5
|
||
|
||
[00e3] ã
|
||
C0061
|
||
2.35,9;2.83,9.3;4,9.32,A-0.327;4.7,8.7;5.87,8.7,A0.34;6.35,9
|
||
|
||
[00e4] ä
|
||
C0061
|
||
5.634,9;5.5,8.5
|
||
2.5,8.5;2.634,9
|
||
|
||
[00e7] ç
|
||
C0063
|
||
1.5,0;1,-2
|
||
|
||
[00e8] è
|
||
C0065
|
||
3.5,10;5.1,8.5
|
||
|
||
[00e9] é
|
||
C0065
|
||
3.1,8.5;5.5,10
|
||
|
||
[00ea] ê
|
||
C0065
|
||
2.5,8.5;4.4,10;5.5,8.5
|
||
|
||
[00eb] ë
|
||
C0065
|
||
5.634,9;5.5,8.5
|
||
2.5,8.5;2.634,9
|
||
|
||
[00ec] ì
|
||
0,0;1.61,6
|
||
1.7,10;3.3,8.5
|
||
|
||
[00ed] í
|
||
0,0;1.61,6
|
||
1.3,8.5;3.7,10
|
||
|
||
[00ee] î
|
||
0,0;1.61,6
|
||
0.8,8.5;2.7,10;3.8,8.5
|
||
|
||
[00ef] ï
|
||
0,0;1.61,6
|
||
3.434,9;3.3,8.5
|
||
0.3,8.5;0.434,9
|
||
|
||
[00f1] ñ
|
||
C006e
|
||
2.35,9;2.83,9.3;4,9.32,A-0.327;4.7,8.7;5.87,8.7,A0.34;6.35,9
|
||
|
||
[00f2] ò
|
||
C006f
|
||
3.5,10;5.1,8.5
|
||
|
||
[00f3] ó
|
||
C006f
|
||
3.1,8.5;5.5,10
|
||
|
||
[00f4] ô
|
||
C006f
|
||
2.5,8.5;4.4,10;5.5,8.5
|
||
|
||
[00f5] õ
|
||
C006f
|
||
2.35,9;2.83,9.3;4,9.32,A-0.327;4.7,8.7;5.87,8.7,A0.34;6.35,9
|
||
|
||
[00f6] ö
|
||
C006f
|
||
5.634,9;5.5,8.5
|
||
2.5,8.5;2.634,9
|
||
|
||
[00f7] ÷
|
||
0,3;4,3
|
||
1.33,0.5;1.464,1
|
||
2.536,5;2.67,5.5
|
||
|
||
[00f9] ù
|
||
C0075
|
||
3.5,10;5.1,8.5
|
||
|
||
[00fa] ú
|
||
C0075
|
||
3.1,8.5;5.5,10
|
||
|
||
[00fb] û
|
||
C0075
|
||
2.5,8.5;4.4,10;5.5,8.5
|
||
|
||
[00fc] ü
|
||
C0075
|
||
5.634,9;5.5,8.5
|
||
2.5,8.5;2.634,9
|
||
|
||
[00fd] ý
|
||
C0079
|
||
3.6,8.5;6,10
|
||
|
||
[2075] ⁵
|
||
2,9;0,9;0,7;1,7;2,6,A-0.207107;2,5.5;1,4.5,A-0.207107;0,4.5
|
||
|
||
[2205] ∅
|
||
0.50173,0;5.9132,9
|
||
2.81333,7.2517;0.42703,5.07963,A0.17773;3.60107,1.74762,A0.7667;5.98712,3.9197,A0.177;2.81333,7.2517,A0.7667
|
||
|
||
[fffd] <20>
|
||
1,0;0,2;1,4;2,2;1,0
|