@@ -9,11 +9,10 @@ glyph-block Letter-Latin-Lower-A : begin
99 glyph-block-import CommonShapes
1010 glyph-block-import Common-Derivatives
1111 glyph-block-import Mark-Shared-Metrics : markHalfStroke
12- glyph-block-import Letter-Shared : CreateAccentedComposition
13- glyph-block-import Letter-Shared : CreateTurnedLetter
12+ glyph-block-import Letter-Shared : CreateAccentedComposition CreateTurnedLetter
1413 glyph-block-import Letter-Shared-Shapes : SerifFrame OBarLeft OBarRight ArcStartSerif
15- glyph-block-import Letter-Shared-Shapes : RightwardTailedBar InvRightwardTailedBar
16- glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend RetroflexHook InwardSlabArcStart
14+ glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend
15+ glyph-block-import Letter-Shared-Shapes : RetroflexHook InwardSlabArcStart
1716
1817 glyph-block-export DoubleStorey
1918 define DoubleStorey : namespace
@@ -142,105 +141,112 @@ glyph-block Letter-Latin-Lower-A : begin
142141
143142 glyph-block-export SingleStorey
144143 define SingleStorey : namespace
145- export : define [FullBarBody df height bar mask _sw] : glyph-proc
144+ define [EaredBodyImpl df top sw] : OBarRight.shape
145+ top -- top
146+ left -- df.leftSB
147+ right -- df.rightSB
148+ sw -- sw
149+ fine -- (ShoulderFine * (sw / Stroke))
150+ ada -- [df.archDepthA SmallArchDepth sw]
151+ adb -- [df.archDepthB SmallArchDepth sw]
152+
153+ export : define [FullBarBody df top bar _sw] : glyph-proc
146154 local sw : fallback _sw df.mvs
147- include : OBarRight.shape
148- top -- height
149- left -- df.leftSB
150- right -- df.rightSB
151- sw -- sw
152- fine -- sw * (ShoulderFine / Stroke)
153- ada -- [df.archDepthA SmallArchDepth sw]
154- adb -- [df.archDepthB SmallArchDepth sw]
155- include : bar df height mask sw
156- export : define [EarlessCornerBody df height bar mask _sw] : glyph-proc
155+ include : EaredBodyImpl df top sw
156+ include : bar df top sw
157+ export : define [ScriptCutBody df top bar _sw] : glyph-proc
158+ local sw : fallback _sw df.mvs
159+ include : EaredBodyImpl df top sw
160+ include : bar df (top - sw / 2) sw
161+ include : spiro-outline
162+ corner df.rightSB top
163+ corner df.rightSB (top - sw / 2)
164+ corner (df.rightSB - [HSwToV sw]) (top - sw / 2)
165+ export : define [EarlessCornerBody df top bar _sw] : glyph-proc
157166 local sw : fallback _sw df.mvs
158167 include : OBarLeft.toothless
159- top -- height
168+ top -- top
160169 left -- df.leftSB
161170 right -- df.rightSB
162171 sw -- sw
163- fine -- sw * (ShoulderFine / Stroke)
172+ fine -- (ShoulderFine * (sw / Stroke) )
164173 ada -- [df.archDepthA SmallArchDepth sw]
165174 adb -- [df.archDepthB SmallArchDepth sw]
166175 rise -- DToothlessRise
167176 mBlend -- DMBlend
168- include : FlipAround df.middle (height / 2)
169- include : bar df (height - DToothlessRise) mask sw
170- export : define [EarlessRoundedBody df height bar mask _sw] : glyph-proc
177+ include : FlipAround df.middle (top / 2)
178+ include : bar df (top - DToothlessRise) sw
179+ export : define [EarlessRoundedBody df top bar _sw] : glyph-proc
171180 local sw : fallback _sw df.mvs
172181 local ada : df.archDepthA SmallArchDepth sw
173182 local adb : df.archDepthB SmallArchDepth sw
174183 include : OBarLeft.rounded
175- top -- height
184+ top -- top
176185 left -- df.leftSB
177186 right -- df.rightSB
178187 sw -- sw
179- fine -- sw * (ShoulderFine / Stroke)
188+ fine -- (ShoulderFine * (sw / Stroke) )
180189 ada -- ada
181190 adb -- adb
182- yTerminal -- (height - ada)
183- include : FlipAround df.middle (height / 2)
184- include : bar df (height - adb) mask sw
191+ yTerminal -- (top - ada)
192+ include : FlipAround df.middle (top / 2)
193+ include : bar df (top - adb) sw
185194
186- export : define [SeriflessBar df height mask sw] : glyph-proc
195+ export : define [SeriflessBar df top sw] : glyph-proc
187196 set-base-anchor 'trailing' df.rightSB 0
188- include : difference
189- VBar.r df.rightSB 0 height sw
190- mask df height sw
191- export : define [SerifedBar df height mask sw] : glyph-proc
192- include : SeriflessBar df height mask sw
193- include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rb.outer
194- export : define [TopSerifedBar df height mask sw] : glyph-proc
195- include : SeriflessBar df height mask sw
196- include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rt.outer
197- export : define [DoubleSerifedBar df height mask sw] : glyph-proc
198- include : SerifedBar df height mask sw
199- include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rt.outer
200- export : define [TailedBar df height mask sw] : glyph-proc
197+ include : VBar.r df.rightSB 0 top sw
198+ export : define [TopSerifedBar df top sw] : glyph-proc
199+ include : SeriflessBar df top sw
200+ local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
201+ include sf.rt.outer
202+ export : define [BottomSerifedBar df top sw] : glyph-proc
203+ include : SeriflessBar df top sw
204+ local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
205+ include sf.rb.outer
206+ export : define [DoubleSerifedBar df top sw] : glyph-proc
207+ include : SeriflessBar df top sw
208+ local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
209+ include : composite-proc sf.rt.outer sf.rb.outer
210+ export : define [TailedBar df top sw] : glyph-proc
201211 set-base-anchor 'trailing' (df.rightSB + SideJut) 0
202- include : difference
203- RightwardTailedBar df.rightSB 0 height sw
204- mask df height sw
205- export : define [TailedSerifedBar df height mask sw] : glyph-proc
206- include : TailedBar df height mask sw
207- include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rt.outer
208-
209- export : define [ScriptCut df y sw] : spiro-outline
210- corner df.rightSB y
211- corner (df.rightSB - [HSwToV sw]) y
212- corner (df.rightSB - [HSwToV sw]) (y - sw / 2)
212+ include : RightwardTailedBar df.rightSB 0 top sw
213+ export : define [TailedSerifedBar df top sw] : glyph-proc
214+ include : TailedBar df top sw
215+ local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
216+ include sf.rt.outer
213217
214218 glyph-block-export SingleStoreyConfig
215219 define SingleStoreyConfig : object
216220 singleStoreySerifless { SingleStorey.FullBarBody SingleStorey.SeriflessBar }
217221 singleStoreyEarlessCornerSerifless { SingleStorey.EarlessCornerBody SingleStorey.SeriflessBar }
218222 singleStoreyEarlessRoundedSerifless { SingleStorey.EarlessRoundedBody SingleStorey.SeriflessBar }
223+ singleStoreyScriptCutSerifless { SingleStorey.ScriptCutBody SingleStorey.SeriflessBar }
219224
220225 singleStoreyTopSerifed { SingleStorey.FullBarBody SingleStorey.TopSerifedBar }
221226
222- singleStoreySerifed { SingleStorey.FullBarBody SingleStorey.SerifedBar }
223- singleStoreyEarlessCornerSerifed { SingleStorey.EarlessCornerBody SingleStorey.SerifedBar }
224- singleStoreyEarlessRoundedSerifed { SingleStorey.EarlessRoundedBody SingleStorey.SerifedBar }
227+ singleStoreySerifed { SingleStorey.FullBarBody SingleStorey.BottomSerifedBar }
228+ singleStoreyEarlessCornerSerifed { SingleStorey.EarlessCornerBody SingleStorey.BottomSerifedBar }
229+ singleStoreyEarlessRoundedSerifed { SingleStorey.EarlessRoundedBody SingleStorey.BottomSerifedBar }
230+ singleStoreyScriptCutSerifed { SingleStorey.ScriptCutBody SingleStorey.BottomSerifedBar }
225231
226232 singleStoreyDoubleSerifed { SingleStorey.FullBarBody SingleStorey.DoubleSerifedBar }
227233
228234 singleStoreyTailed { SingleStorey.FullBarBody SingleStorey.TailedBar }
229235 singleStoreyEarlessCornerTailed { SingleStorey.EarlessCornerBody SingleStorey.TailedBar }
230236 singleStoreyEarlessRoundedTailed { SingleStorey.EarlessRoundedBody SingleStorey.TailedBar }
237+ singleStoreyScriptCutTailed { SingleStorey.ScriptCutBody SingleStorey.TailedBar }
231238
232239 singleStoreyTailedSerifed { SingleStorey.FullBarBody SingleStorey.TailedSerifedBar }
233240
234241 foreach { suffix { body bar } } [Object.entries SingleStoreyConfig] : do
235242 create-glyph "a.\(suffix)" : glyph-proc
236- include : MarkSet.e
237- include : body [DivFrame 1] XH bar no-shape
243+ local df : include : DivFrame 1
244+ include : df.markSet.e
245+ include : body df XH bar
238246 create-glyph "AScript.\(suffix)" : glyph-proc
239- include : MarkSet.capital
240- include : body [DivFrame 1] CAP bar SingleStorey.ScriptCut
241- create-glyph "aScript.\(suffix)" : glyph-proc
242- include : MarkSet.e
243- include : body [DivFrame 1] XH bar SingleStorey.ScriptCut
247+ local df : include : DivFrame 1
248+ include : df.markSet.capital
249+ include : body df CAP bar
244250
245251 select-variant 'a' 'a'
246252 link-reduced-variant 'a/sansSerif' 'a' MathSansSerif
@@ -253,10 +259,10 @@ glyph-block Letter-Latin-Lower-A : begin
253259 derive-composites 'aRetroflexHook' 0x1D8F 'a/rtailBase'
254260 RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke)
255261
256- select-variant 'aScript' 0x251 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
262+ select-variant 'aScript' 0x251 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans']) (shapeFrom -- 'a')
257263 select-variant 'AScript' 0x2C6D (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
258264
259- derive-composites 'aScriptRetroflexHook' 0x1D90 'aScript.singleStoreySerifless '
265+ derive-composites 'aScriptRetroflexHook' 0x1D90 'a.singleStoreyScriptCutSerifless '
260266 RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke)
261267
262268 CreateTurnedLetter 'turnaScript' 0x252 'aScript' HalfAdvance (XH / 2)
0 commit comments