Skip to content

Commit 71ef1de

Browse files
authored
Refactor of the u-bowl shape function (be5invis#2573)
1 parent 072a307 commit 71ef1de

24 files changed

+249
-206
lines changed

packages/font-glyphs/src/letter/armenian/lower-u-group.ptl

+60-70
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ glyph-module
88
glyph-block Letter-Armenian-Lower-U-Group : begin
99
glyph-block-import CommonShapes
1010
glyph-block-import Common-Derivatives
11-
glyph-block-import Letter-Shared-Shapes : nShoulder nShoulderKnots SerifFrame
11+
glyph-block-import Letter-Shared-Shapes : nShoulder uBowl SerifFrame
1212
glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar TwoNeck
1313
glyph-block-import Letter-Latin-U : USerifs
1414
glyph-block-import Letter-Latin-Lower-M : SmallMArches
@@ -48,7 +48,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
4848
local df : include : DivFrame 1
4949
include : df.markSet.p
5050
include : VBar.l df.leftSB Descender XH df.mvs
51-
include : nShoulder
51+
include : nShoulder.shape
5252
left -- (df.leftSB + [HSwToV df.mvs])
5353
right -- df.rightSB
5454
top -- XH
@@ -67,7 +67,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
6767
local df : include : DivFrame 1
6868
include : df.markSet.p
6969
include : VBar.l df.leftSB 0 XH df.mvs
70-
include : nShoulder
70+
include : nShoulder.shape
7171
left -- (df.leftSB + [HSwToV df.mvs])
7272
right -- df.rightSB
7373
top -- XH
@@ -86,13 +86,12 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
8686
create-glyph 'armn/ech' 0x565 : glyph-proc
8787
local df : include : DivFrame 1
8888
include : df.markSet.b
89-
include : nShoulder
90-
top -- 0
91-
bottom -- (-Ascender)
92-
left -- (df.leftSB + [HSwToV df.mvs])
93-
right -- df.rightSB
89+
include : uBowl.shape
90+
top -- Ascender
91+
bottom -- 0
92+
left -- df.leftSB
93+
right -- (df.rightSB - [HSwToV df.mvs])
9494
stroke -- df.mvs
95-
include : FlipAround df.middle 0
9695
include : VBar.r df.rightSB 0 [mix 0 XH 0.6] df.mvs
9796
include : [ArmHBar.normal df 0].high
9897
if SLAB : include : USerifs.Toothed df Ascender df.mvs
@@ -103,7 +102,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
103102
local df : include : DivFrame 1
104103
include : df.markSet.b
105104
include : VBar.l df.leftSB Descender XH df.mvs
106-
include : nShoulder
105+
include : nShoulder.shape
107106
left -- (df.leftSB + [HSwToV df.mvs])
108107
right -- df.rightSB
109108
top -- XH
@@ -121,7 +120,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
121120
local df : include : DivFrame 1
122121
include : df.markSet.bp
123122
include : VBar.l df.leftSB Descender Ascender df.mvs
124-
include : nShoulder
123+
include : nShoulder.shape
125124
left -- (df.leftSB + [HSwToV df.mvs])
126125
right -- df.rightSB
127126
top -- XH
@@ -137,14 +136,13 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
137136
create-glyph 'armn/xeh' 0x56D : glyph-proc
138137
local df : include : DivFrame para.diversityM 3
139138
include : df.markSet.bp
140-
include : nShoulder
141-
top -- XH
142-
bottom -- (XH / 2)
143-
left -- (df.leftSB + [HSwToV df.mvs])
144-
right -- (df.middle + [HSwToV : df.mvs / 2])
139+
include : uBowl.shape
140+
top -- (XH / 2)
141+
bottom -- 0
142+
left -- (df.middle - [HSwToV : df.mvs / 2])
143+
right -- (df.rightSB - [HSwToV df.mvs])
145144
stroke -- df.mvs
146-
include : FlipAround df.middle (XH / 2)
147-
include : nShoulder
145+
include : nShoulder.shape
148146
top -- XH
149147
bottom -- (XH / 2)
150148
left -- (df.leftSB + [HSwToV df.mvs])
@@ -164,13 +162,12 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
164162
create-glyph 'armn/ken' 0x56F : glyph-proc
165163
local df : include : DivFrame 1
166164
include : df.markSet.bp
167-
include : nShoulder
168-
top -- 0
169-
bottom -- (-Ascender)
170-
left -- (df.leftSB + [HSwToV df.mvs])
171-
right -- df.rightSB
165+
include : uBowl.shape
166+
top -- Ascender
167+
bottom -- 0
168+
left -- df.leftSB
169+
right -- (df.rightSB - [HSwToV df.mvs])
172170
stroke -- df.mvs
173-
include : FlipAround df.middle 0
174171
include : VBar.r df.rightSB Descender XH df.mvs
175172
if SLAB : begin
176173
local sf : SerifFrame.fromDf df Ascender 0
@@ -185,7 +182,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
185182
local df : include : DivFrame 1
186183
include : df.markSet.b
187184
include : VBar.l df.leftSB 0 Ascender df.mvs
188-
include : nShoulder
185+
include : nShoulder.shape
189186
left -- (df.leftSB + [HSwToV df.mvs])
190187
right -- df.rightSB
191188
top -- XH
@@ -202,7 +199,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
202199
local df : include : DivFrame 1
203200
include : df.markSet.p
204201
include : VBar.l df.leftSB 0 XH df.mvs
205-
include : nShoulder
202+
include : nShoulder.shape
206203
left -- (df.leftSB + [HSwToV df.mvs])
207204
right -- df.rightSB
208205
top -- XH
@@ -218,13 +215,12 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
218215
create-glyph 'armn/men' 0x574 : glyph-proc
219216
local df : include : DivFrame 1
220217
include : df.markSet.b
221-
include : nShoulder
222-
top -- 0
223-
bottom -- (-XH)
224-
left -- (df.leftSB + [HSwToV df.mvs])
225-
right -- df.rightSB
218+
include : uBowl.shape
219+
top -- XH
220+
bottom -- 0
221+
left -- df.leftSB
222+
right -- (df.rightSB - [HSwToV df.mvs])
226223
stroke -- df.mvs
227-
include : FlipAround df.middle 0
228224
include : VBar.r df.rightSB 0 Ascender df.mvs
229225
include : [ArmHBar.right df 0 SLAB].top
230226
if SLAB : begin
@@ -236,13 +232,12 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
236232
create-glyph 'armn/nu' 0x576 : glyph-proc
237233
local df : include : DivFrame 1
238234
include : df.markSet.b
239-
include : nShoulder
240-
top -- 0
241-
bottom -- (-Ascender)
242-
left -- (df.leftSB + [HSwToV df.mvs])
243-
right -- df.rightSB
235+
include : uBowl.shape
236+
top -- Ascender
237+
bottom -- 0
238+
left -- df.leftSB
239+
right -- (df.rightSB - [HSwToV df.mvs])
244240
stroke -- df.mvs
245-
include : FlipAround df.middle 0
246241
include : VBar.r df.rightSB 0 XH df.mvs
247242
include : [ArmHBar.left df 0 SLAB].top
248243
if SLAB : begin
@@ -255,7 +250,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
255250
local df : include : DivFrame 1
256251
include : df.markSet.e
257252
include : VBar.l df.leftSB 0 XH df.mvs
258-
include : nShoulder
253+
include : nShoulder.shape
259254
left -- (df.leftSB + [HSwToV df.mvs])
260255
right -- df.rightSB
261256
top -- XH
@@ -286,7 +281,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
286281
include : df.markSet.e
287282
include : VBar.l df.leftSB 0 XH df.mvs
288283

289-
# Combination of nShoulderKnots and the straight 2 shape
284+
# Combination of nShoulder.knots and the straight 2 shape
290285
local fine : df.mvs * (ShoulderFine / Stroke)
291286
local left : Math.max (df.rightSB - [HSwToV df.mvs] - jut) df.middle
292287
include : dispiro
@@ -303,7 +298,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
303298
include : composite-proc sf.lb.outer
304299

305300
# Alternate straight 'n' form
306-
# include : nShoulder
301+
# include : nShoulder.shape
307302
# left -- (df.leftSB + [HSwToV df.mvs])
308303
# right -- df.rightSB
309304
# top -- XH
@@ -320,13 +315,12 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
320315
create-glyph 'armn/seh' 0x57D : glyph-proc
321316
local df : include : DivFrame 1
322317
include : df.markSet.e
323-
include : nShoulder
324-
top -- 0
325-
bottom -- (-XH)
326-
left -- (df.leftSB + [HSwToV df.mvs])
327-
right -- df.rightSB
318+
include : uBowl.shape
319+
top -- XH
320+
bottom -- 0
321+
left -- df.leftSB
322+
right -- (df.rightSB - [HSwToV df.mvs])
328323
stroke -- df.mvs
329-
include : FlipAround df.middle 0
330324
include : VBar.r df.rightSB 0 XH df.mvs
331325
if SLAB : begin
332326
local sf : SerifFrame.fromDf df XH 0
@@ -338,13 +332,12 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
338332
create-glyph 'armn/vew' 0x57E : glyph-proc
339333
local df : include : DivFrame 1
340334
include : df.markSet.bp
341-
include : nShoulder
342-
top -- 0
343-
bottom -- (-XH)
344-
left -- (df.leftSB + [HSwToV df.mvs])
345-
right -- df.rightSB
335+
include : uBowl.shape
336+
top -- XH
337+
bottom -- 0
338+
left -- df.leftSB
339+
right -- (df.rightSB - [HSwToV df.mvs])
346340
stroke -- df.mvs
347-
include : FlipAround df.middle 0
348341
include : VBar.r df.rightSB Descender Ascender df.mvs
349342
include : [ArmHBar.right df 0 SLAB].desc
350343

@@ -357,14 +350,13 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
357350
create-glyph 'armn/tiun' 0x57F : glyph-proc
358351
local df : include : DivFrame para.diversityM 3
359352
include : df.markSet.e
360-
include : nShoulder
353+
include : uBowl.shape
361354
top -- XH
362355
bottom -- 0
363-
left -- (df.middle + [HSwToV : df.mvs / 2])
364-
right -- df.rightSB
356+
left -- df.leftSB
357+
right -- (df.middle - [HSwToV : 0.5 * df.mvs])
365358
stroke -- df.mvs
366-
include : FlipAround df.middle (XH / 2)
367-
include : nShoulder
359+
include : nShoulder.shape
368360
top -- XH
369361
bottom -- 0
370362
left -- (df.middle + [HSwToV : df.mvs / 2])
@@ -381,7 +373,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
381373
create-glyph 'armn/reh' 0x580 : glyph-proc
382374
local df : include : DivFrame 1
383375
include : df.markSet.b
384-
include : nShoulder
376+
include : nShoulder.shape
385377
top -- XH
386378
bottom -- 0
387379
left -- (df.leftSB + [HSwToV df.mvs])
@@ -398,14 +390,13 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
398390
create-glyph 'armn/piur' 0x583 : glyph-proc
399391
local df : include : DivFrame para.diversityM 3
400392
include : df.markSet.bp
401-
include : nShoulder
393+
include : uBowl.shape
402394
top -- XH
403395
bottom -- 0
404-
left -- (df.middle + [HSwToV : df.mvs / 2])
405-
right -- df.rightSB
396+
left -- df.leftSB
397+
right -- (df.middle - [HSwToV : 0.5 * df.mvs])
406398
stroke -- df.mvs
407-
include : FlipAround df.middle (XH / 2)
408-
include : nShoulder
399+
include : nShoulder.shape
409400
top -- XH
410401
bottom -- 0
411402
left -- (df.middle + [HSwToV : df.mvs / 2])
@@ -424,13 +415,12 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
424415
create-glyph 'armn/ew' 0x587 : glyph-proc
425416
local df : include : DivFrame para.diversityM 3
426417
include : df.markSet.b
427-
include : nShoulder
428-
top -- 0
429-
bottom -- (-Ascender)
430-
left -- (df.middle + [HSwToV : df.mvs / 2])
431-
right -- df.rightSB
418+
include : uBowl.shape
419+
top -- Ascender
420+
bottom -- 0
421+
left -- df.leftSB
422+
right -- (df.middle - [HSwToV : 0.5 * df.mvs])
432423
stroke -- df.mvs
433-
include : FlipAround df.middle 0
434424
include : VBar.m df.middle 0 XH df.mvs
435425
include : HBar.b df.middle df.rightSB 0 df.mvs
436426
if SLAB : begin

packages/font-glyphs/src/letter/armenian/to.ptl

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ glyph-module
88
glyph-block Letter-Armenian-To : begin
99
glyph-block-import CommonShapes
1010
glyph-block-import Common-Derivatives
11-
glyph-block-import Letter-Shared-Shapes : nShoulderKnots SerifFrame
11+
glyph-block-import Letter-Shared-Shapes : nShoulder SerifFrame
1212
glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar
1313

1414
# Common Params
@@ -45,7 +45,7 @@ glyph-block Letter-Armenian-To : begin
4545
include : VBar.l df.leftSB Descender XH df.mvs
4646
local barPosT : XH / 2 + df.mvs / 2
4747
include : dispiro
48-
nShoulderKnots
48+
nShoulder.knots
4949
left -- (df.leftSB + [HSwToV df.mvs])
5050
right -- df.rightSB
5151
top -- XH

packages/font-glyphs/src/letter/cyrillic/che.ptl

+8-8
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ glyph-block Letter-Cyrillic-Che : begin
1010
glyph-block-import Common-Derivatives
1111
glyph-block-import Mark-Adjustment : LeaningAnchor
1212
glyph-block-import Letter-Shared : CreateSelectorVariants DefineSelectorGlyph CreateTurnedLetter
13-
glyph-block-import Letter-Shared-Shapes : SerifFrame RightwardTailedBar DToothlessRise
13+
glyph-block-import Letter-Shared-Shapes : cheBowl SerifFrame RightwardTailedBar DToothlessRise
1414
glyph-block-import Letter-Shared-Shapes : TopHook CyrDescender BottomExtension
1515
glyph-block-import Letter-Latin-Lower-M : EarlessCornerDoubleArchSmallMShape
1616

@@ -38,12 +38,12 @@ glyph-block Letter-Cyrillic-Che : begin
3838
[Just BODY.TAILED] : RightwardTailedBar df.rightSB 0 top (sw -- sw)
3939
__ : VBar.r df.rightSB 0 top sw
4040

41-
include : dispiro
42-
widths.lhs sw
43-
flat df.leftSB top [heading Downward]
44-
curl df.leftSB (bar - DToothlessRise + ArchDepthB - HalfStroke)
45-
arch.lhs.centerAt.ltr.b df.middle (bar - DToothlessRise - HalfStroke)
46-
g4 (df.rightSB - 1 / 16) (bar - HalfStroke) [heading Rightward]
41+
include : cheBowl.shape
42+
left -- df.leftSB
43+
right -- df.rightSB
44+
top -- top
45+
bottom -- (bar - DToothlessRise - 0.5 * sw)
46+
sw -- sw
4747

4848
local sf : SerifFrame.fromDf df top 0
4949
include : tagged 'serifLT' : match slabType
@@ -252,7 +252,7 @@ glyph-block Letter-Cyrillic-Che : begin
252252
include [refer-glyph "cyrl/Shha.\(suffix)"] AS_BASE ALSO_METRICS
253253
eject-contour 'strokeR'
254254
eject-contour 'serifRB'
255-
include : TopHook.lBarInner SB 0 CAP
255+
include : TopHook.toRight.lBarInner SB 0 CAP
256256
include : LeaningAnchor.Above.VBar.l SB
257257

258258
select-variant 'cyrl/Shha' 0x4BA (follow -- 'H')

packages/font-glyphs/src/letter/cyrillic/tshe.ptl

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ glyph-block Letter-Cyrillic-Tshe : begin
2020
local xTopBarRightSym : 2 * left + [HSwToV sw] - xTopBarLeft
2121
local xTopBarRight : Math.max xTopBarRightSym : mix left RightSB 0.475
2222

23-
include : nShoulder
23+
include : nShoulder.shape
2424
left -- (left + [HSwToV sw])
2525
right -- right
2626
top -- [Math.min XH : if SLAB (CAP - 1.25 * VJut) XH]

packages/font-glyphs/src/letter/greek/pi.ptl

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ glyph-block Letter-Greek-Pi : begin
99
glyph-block-import CommonShapes
1010
glyph-block-import Common-Derivatives
1111
glyph-block-import Letter-Blackboard : BBS BBD BBBarLeft BBBarRight
12-
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar SerifFrame nShoulder
12+
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar SerifFrame
1313
glyph-block-import Letter-Shared-Shapes : CyrDescender MidHook
1414

1515
glyph-block-export PiShape

packages/font-glyphs/src/letter/latin-ext/hwair.ptl

+2-3
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ glyph-block Letter-Latin-Hwair : begin
99
glyph-block-import CommonShapes
1010
glyph-block-import Common-Derivatives
1111
glyph-block-import Mark-Adjustment : LeaningAnchor
12-
glyph-block-import Letter-Shared-Shapes : nShoulderKnots
13-
glyph-block-import Letter-Shared-Shapes : SerifFrame
12+
glyph-block-import Letter-Shared-Shapes : nShoulder SerifFrame
1413

1514
define Variants : object
1615
straightSerifless { false false }
@@ -24,7 +23,7 @@ glyph-block Letter-Latin-Hwair : begin
2423
include : LeaningAnchor.Above.VBar.l df.leftSB
2524
include : VBar.l df.leftSB 0 Ascender df.mvs
2625
include : dispiro
27-
nShoulderKnots (df.leftSB + [HSwToV df.mvs]) (df.middle + [HSwToV : 0.5 * df.mvs]) (df.mvs * 0.4) nothing (XH * 0.51) (SmallArchDepthA * 0.6 * df.div) (SmallArchDepthB * 0.6 * df.div) df.mvs
26+
nShoulder.knots (df.leftSB + [HSwToV df.mvs]) (df.middle + [HSwToV : 0.5 * df.mvs]) (df.mvs * 0.4) nothing (XH * 0.51) (SmallArchDepthA * 0.6 * df.div) (SmallArchDepthB * 0.6 * df.div) df.mvs
2827
flat (df.middle + [HSwToV : 0.5 * df.mvs]) (XH * 0.5) [heading Downward]
2928
curl (df.middle + [HSwToV : 0.5 * df.mvs]) (SmallArchDepthB * 0.6 * df.div)
3029
arcvh

packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
1010
glyph-block-import Common-Derivatives
1111
glyph-block-import Mark-Adjustment : LeaningAnchor
1212
glyph-block-import Letter-Shared : CreateTurnedLetter
13-
glyph-block-import Letter-Shared-Shapes : nShoulder OBarLeft
13+
glyph-block-import Letter-Shared-Shapes : OBarLeft
1414
glyph-block-import Letter-Latin-Lower-M : MEnoughSpaceForFullSerifs dfM
1515

1616
glyph-block-export SubDfAndShift

packages/font-glyphs/src/letter/latin-ext/middle-welsh-v.ptl

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ glyph-module
88
glyph-block Letter-Latin-Middle-Welsh-V : begin
99
glyph-block-import CommonShapes
1010
glyph-block-import Common-Derivatives
11-
glyph-block-import Letter-Shared-Shapes : nShoulderKnots
1211

1312
define [MiddleWelshVShape top pL pR] : glyph-proc
1413
include : dispiro

0 commit comments

Comments
 (0)