Iosevka/font-src/glyphs/letter/greek/lower-delta.ptl
2021-07-10 14:14:50 -07:00

74 lines
2.6 KiB
Text

$$include '../../../meta/macros.ptl'
import [mix barmixL linreg clamp fallback] from '../../../support/utils'
import [DesignParameters] from '../../../meta/aesthetics'
glyph-module
glyph-block Letter-Greek-Lower-Delta : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
create-glyph 'grek/delta.rounded' : glyph-proc
include : MarkSet.b
local yRingTop : Stroke * 0.25 + [mix 0 XH (7 / 8)]
local xNeck : mix SB RightSB 0.06
local xOTLeft : mix SB RightSB 0.5
local fine : Stroke * 0.5
include : dispiro
g4 [mix Middle RightSB 0.85] [mix XH CAP 0.8] [widths.lhs]
alsoThru 0.5 0.7
g4 Middle (CAP - O)
archv 2
g4 (xNeck + Stroke) [mix (CAP - O - Stroke) yRingTop 0.5] [widths.rhs]
arcvh 2
g4 xOTLeft yRingTop [heading Rightward]
alsoThruThem : list {0.25 0.05} {0.5 0.13}
flat (RightSB - OX) (yRingTop - SmallSmoothB)
curl (RightSB - OX) SmallSmoothA
arcvh
g4.left.mid (Middle + CorrectionOMidS) O
archv
flat (SB + OX) SmallSmoothB
curl (SB + OX) (yRingTop - SmallSmoothA)
arcvh
g4 xOTLeft (yRingTop - (Stroke - fine) / 2) [widths 0 fine]
create-glyph 'grek/delta.flatTop' : glyph-proc
include : MarkSet.b
local fine : Stroke * CThin
local coFine : mix fine Stroke 0.5
local yTop : CAP - Stroke
local yMid : Stroke * 0.25 + [mix 0 XH (7 / 8)]
local yMid2 : mix yMid [YSmoothMidR yMid 0 SmallSmoothA SmallSmoothB] 0.95
local yMid3 : mix yMid [YSmoothMidR yMid 0 SmallSmoothA SmallSmoothB] 0.5
local yMockBarStart : yMid3 + 2.25 * Stroke
local pStraightBarStart : 0.75 - (Stroke / CAP)
include : HBarTop SB RightSB CAP
include : intersection [MaskBelow yTop] : dispiro
g4.right.start (Middle + CorrectionOMidS - TanSlope * (Stroke - fine)) (O + Stroke - fine + 1/16) [widths.lhs fine]
flat (RightSB - OX - (1 - CThin) * Stroke * HVContrast) SmallSmoothA
curl (RightSB - OX - (1 - CThin) * Stroke * HVContrast) (yMid - SmallSmoothB)
arcvh
g4 (Middle - CorrectionOMidS) (yMid - O) [widths.lhs]
archv
flat (SB + OX) (yMid - SmallSmoothA)
curl (SB + OX) SmallSmoothB
arcvh
g4 (Middle + CorrectionOMidS) O
archv
flat (RightSB - OX) SmallSmoothA [widths.lhs coFine]
curl (RightSB - OX) yMid2
flat [mix Width SB pStraightBarStart] [mix yMockBarStart yTop pStraightBarStart] [widths.lhs]
curl [mix Width SB 1] [mix yMockBarStart yTop 1] [widths.rhs]
select-variant 'grek/delta' 0x3B4
alias 'cyrl/be.SRB' null 'grek/delta.rounded'
alias 'latindelta' 0x1E9F 'grek/delta'
turned 'turndelta' 0x18D 'grek/delta' Middle (XH / 2) [MarkSet.p]