Optimize glyphs for Iotified A, Closed Little Yus.
This commit is contained in:
parent
8547436f4b
commit
c3ca79eca8
5 changed files with 78 additions and 79 deletions
|
@ -4,6 +4,9 @@
|
||||||
- CYRILLIC CAPITAL LETTER KOMI DZJE (`U+0506`).
|
- CYRILLIC CAPITAL LETTER KOMI DZJE (`U+0506`).
|
||||||
- CYRILLIC SMALL LETTER KOMI DZJE (`U+0507`).
|
- CYRILLIC SMALL LETTER KOMI DZJE (`U+0507`).
|
||||||
- THERE DOES NOT EXIST (`U+2204`).
|
- THERE DOES NOT EXIST (`U+2204`).
|
||||||
|
- CYRILLIC CAPITAL LETTER IOTIFIED A (`U+A656`).
|
||||||
|
- CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS (`U+A65C`).
|
||||||
|
- CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS (`U+A65D`).
|
||||||
- LATIN CAPITAL LETTER VOLAPUK UE (`U+A79E`).
|
- LATIN CAPITAL LETTER VOLAPUK UE (`U+A79E`).
|
||||||
- LATIN SMALL LETTER VOLAPUK UE (`U+A79F`).
|
- LATIN SMALL LETTER VOLAPUK UE (`U+A79F`).
|
||||||
- MODIFIER LETTER SMALL CAPITAL G WITH HOOK (`U+10794`).
|
- MODIFIER LETTER SMALL CAPITAL G WITH HOOK (`U+10794`).
|
||||||
|
|
|
@ -100,17 +100,12 @@ glyph-block Letter-Cyrillic-BigYus : begin
|
||||||
define divSub : (df.width - gap - df.mvs) / Width
|
define divSub : (df.width - gap - df.mvs) / Width
|
||||||
define dfSub : DivFrame divSub 3
|
define dfSub : DivFrame divSub 3
|
||||||
include : CyrBigYusShape dfSub top yp df.mvs
|
include : CyrBigYusShape dfSub top yp df.mvs
|
||||||
eject-contour 'serifRB'
|
|
||||||
include : Translate (Width * (df.adws - divSub)) 0
|
include : Translate (Width * (df.adws - divSub)) 0
|
||||||
|
|
||||||
include : Iotified.outer df top
|
include : Iotified.outer df top
|
||||||
hBarRight -- [mix df.leftSB df.rightSB (2 / 3)]
|
hBarRight -- [mix df.leftSB df.rightSB (2 / 3)]
|
||||||
hBarY -- (top * yp - df.mvs * 0.5)
|
hBarY -- (top * yp - df.mvs * 0.5)
|
||||||
fCapital -- fCapital
|
fCapital -- fCapital
|
||||||
|
|
||||||
if SLAB : begin
|
|
||||||
local sf : SerifFrame.fromDf df top 0 (swSerif -- df.mvs)
|
|
||||||
include sf.rb.outer
|
|
||||||
|
|
||||||
create-glyph 'cyrl/BigYusIotified' 0x46C : glyph-proc
|
create-glyph 'cyrl/BigYusIotified' 0x46C : glyph-proc
|
||||||
local df : include : DivFrame (para.advanceScaleM ** 2) 4.25
|
local df : include : DivFrame (para.advanceScaleM ** 2) 4.25
|
||||||
|
|
|
@ -55,75 +55,75 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
|
||||||
export : define [full] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin
|
export : define [full] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin
|
||||||
local useItalicShape : [not fCapital] && para.isItalic
|
local useItalicShape : [not fCapital] && para.isItalic
|
||||||
Shape
|
Shape
|
||||||
df -- df
|
df -- df
|
||||||
top -- top
|
top -- top
|
||||||
hBarRight -- hBarRight
|
hBarRight -- hBarRight
|
||||||
hBarY -- hBarY
|
hBarY -- hBarY
|
||||||
slabTop -- [if useItalicShape SLAB-OUTWARD SLAB-FULL]
|
slabTop -- [if useItalicShape SLAB-OUTWARD SLAB-FULL]
|
||||||
slabBottom -- [if useItalicShape SLAB-NONE SLAB-FULL]
|
slabBottom -- [if useItalicShape SLAB-NONE SLAB-FULL]
|
||||||
swSerif -- swSerif
|
swSerif -- swSerif
|
||||||
|
|
||||||
# Outwards only
|
# Outwards only
|
||||||
export : define [outer] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin
|
export : define [outer] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin
|
||||||
local useItalicShape : [not fCapital] && para.isItalic
|
local useItalicShape : [not fCapital] && para.isItalic
|
||||||
Shape
|
Shape
|
||||||
df -- df
|
df -- df
|
||||||
top -- top
|
top -- top
|
||||||
hBarRight -- hBarRight
|
hBarRight -- hBarRight
|
||||||
hBarY -- hBarY
|
hBarY -- hBarY
|
||||||
slabTop -- SLAB-OUTWARD
|
slabTop -- SLAB-OUTWARD
|
||||||
slabBottom -- [if useItalicShape SLAB-NONE SLAB-OUTWARD]
|
slabBottom -- [if useItalicShape SLAB-NONE SLAB-OUTWARD]
|
||||||
swSerif -- swSerif
|
swSerif -- swSerif
|
||||||
|
|
||||||
# Iotified A-shaped glyphs
|
# Iotified A-shaped glyphs
|
||||||
export : define [A] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin
|
export : define [A] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin
|
||||||
local useItalicShape : [not fCapital] && para.isItalic
|
local useItalicShape : [not fCapital] && para.isItalic
|
||||||
Shape
|
Shape
|
||||||
df -- df
|
df -- df
|
||||||
top -- top
|
top -- top
|
||||||
hBarRight -- hBarRight
|
hBarRight -- hBarRight
|
||||||
hBarY -- hBarY
|
hBarY -- hBarY
|
||||||
slabTop -- [if useItalicShape SLAB-OUTWARD SLAB-FULL]
|
slabTop -- [if useItalicShape SLAB-OUTWARD SLAB-FULL]
|
||||||
slabBottom -- [if useItalicShape SLAB-NONE SLAB-OUTWARD]
|
slabBottom -- [if useItalicShape SLAB-NONE SLAB-OUTWARD]
|
||||||
swSerif -- swSerif
|
swSerif -- swSerif
|
||||||
|
|
||||||
# Used for Bulgarian Lower Yu
|
# Used for Bulgarian Lower Yu
|
||||||
export : define [ascender] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin
|
export : define [ascender] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin
|
||||||
local useItalicShape : [not fCapital] && para.isItalic
|
local useItalicShape : [not fCapital] && para.isItalic
|
||||||
Shape
|
Shape
|
||||||
df -- df
|
df -- df
|
||||||
top -- top
|
top -- top
|
||||||
hBarRight -- hBarRight
|
hBarRight -- hBarRight
|
||||||
hBarY -- hBarY
|
hBarY -- hBarY
|
||||||
slabTop -- SLAB-OUTWARD
|
slabTop -- SLAB-OUTWARD
|
||||||
slabBottom -- [if useItalicShape SLAB-NONE SLAB-FULL]
|
slabBottom -- [if useItalicShape SLAB-NONE SLAB-FULL]
|
||||||
swSerif -- swSerif
|
swSerif -- swSerif
|
||||||
|
|
||||||
do "iotified A"
|
do "iotified A"
|
||||||
glyph-block-import Letter-Latin-Upper-A : AShape AConfig
|
glyph-block-import Letter-Latin-Upper-A : AShape AConfig
|
||||||
|
|
||||||
foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do
|
foreach { suffix { bodyShape slabKind } } [Object.entries AConfig] : do
|
||||||
create-glyph "cyrl/AIotified.\(suffix)" : glyph-proc
|
create-glyph "cyrl/AIotified.\(suffix)" : glyph-proc
|
||||||
define df : include : DivFrame para.advanceScaleM 3.5
|
define df : include : DivFrame para.advanceScaleM 3.5
|
||||||
include : df.markSet.capital
|
include : df.markSet.capital
|
||||||
|
|
||||||
local gap : (df.width - 2 * df.leftSB - 3 * df.mvs) / 3
|
local gap : (df.width - 2 * df.leftSB - 3 * df.mvs) / 3
|
||||||
local divSub : (df.width - gap - df.mvs) / Width
|
local divSub : (df.width - gap - df.mvs) / Width
|
||||||
local subDf : DivFrame divSub 2 (df.leftSB / SB) df.mvs 0
|
local subDf : DivFrame divSub 2
|
||||||
|
|
||||||
local shift : Width * (df.adws - divSub)
|
local shift : Width * (df.adws - divSub)
|
||||||
local xIotifiedBarRight : df.leftSB + [HSwToV df.mvs]
|
local xIotifiedBarRight : df.leftSB + [HSwToV df.mvs]
|
||||||
local botGap : Math.max ((df.rightSB - df.leftSB) * 0.08) [AdviceStroke 6]
|
local botGap : Math.max ((df.rightSB - df.leftSB) * 0.08) : AdviceStroke 6
|
||||||
include : difference
|
include : difference
|
||||||
with-transform [ApparentTranslate shift 0]
|
with-transform [ApparentTranslate shift 0]
|
||||||
AShape.Letter subDf fStraightBar slabKind CAP df.mvs
|
AShape.Letter subDf bodyShape slabKind CAP df.mvs
|
||||||
intersection [MaskBelow df.mvs]
|
intersection [MaskBelow df.mvs]
|
||||||
MaskLeft : mix xIotifiedBarRight [Math.min (subDf.leftSB + shift) (xIotifiedBarRight + botGap)] 0.5
|
MaskLeft : mix xIotifiedBarRight [Math.min (subDf.leftSB + shift) (xIotifiedBarRight + botGap)] 0.5
|
||||||
|
|
||||||
include : difference
|
include : difference
|
||||||
Iotified.A df CAP [mix df.leftSB df.rightSB (3 / 4)] (CAP / 2) (fCapital -- true)
|
Iotified.A df CAP [mix df.leftSB df.rightSB (3 / 4)] (CAP / 2) (fCapital -- true)
|
||||||
with-transform [ApparentTranslate shift 0]
|
with-transform [ApparentTranslate shift 0]
|
||||||
AShape.Mask subDf fStraightBar CAP df.mvs
|
AShape.Mask subDf bodyShape CAP df.mvs
|
||||||
|
|
||||||
do "iotified a"
|
do "iotified a"
|
||||||
glyph-block-import Letter-Latin-Lower-A : DoubleStorey DoubleStoreyConfig SingleStorey SingleStoreyConfig
|
glyph-block-import Letter-Latin-Lower-A : DoubleStorey DoubleStoreyConfig SingleStorey SingleStoreyConfig
|
||||||
|
@ -183,8 +183,8 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
|
||||||
include : with-transform [ApparentTranslate shift 0]
|
include : with-transform [ApparentTranslate shift 0]
|
||||||
body subDf XH
|
body subDf XH
|
||||||
stroke -- df.mvs
|
stroke -- df.mvs
|
||||||
ada -- (SmallArchDepthA * 0.7 * df.adws)
|
ada -- (SmallArchDepthA * 0.7 * df.adws)
|
||||||
adb -- (SmallArchDepthB * 0.7 * df.adws)
|
adb -- (SmallArchDepthB * 0.7 * df.adws)
|
||||||
|
|
||||||
include : Iotified.full df XH (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (XH / 2)
|
include : Iotified.full df XH (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (XH / 2)
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,11 @@ glyph-block Letter-Cyrillic-SmallYus : begin
|
||||||
define [CyrSmallYusShape df top straightBar _fine] : glyph-proc
|
define [CyrSmallYusShape df top straightBar _fine] : glyph-proc
|
||||||
local fine : fallback _fine : AdviceStroke 3.3 df.adws
|
local fine : fallback _fine : AdviceStroke 3.3 df.adws
|
||||||
include : LambdaShape
|
include : LambdaShape
|
||||||
df -- df
|
df -- df
|
||||||
fBarStraight -- straightBar
|
fBarStraight -- straightBar
|
||||||
slabKind -- 0
|
slabKind -- 0
|
||||||
top -- top
|
top -- top
|
||||||
sw -- fine
|
sw -- fine
|
||||||
include : intersection
|
include : intersection
|
||||||
HBar.t df.leftSB df.rightSB (top / 2) fine
|
HBar.t df.leftSB df.rightSB (top / 2) fine
|
||||||
AShape.Mask df [if straightBar 1 0] top fine
|
AShape.Mask df [if straightBar 1 0] top fine
|
||||||
|
@ -35,11 +35,11 @@ glyph-block Letter-Cyrillic-SmallYus : begin
|
||||||
define [CyrClosedSmallYusShape df top straightBar _fine] : glyph-proc
|
define [CyrClosedSmallYusShape df top straightBar _fine] : glyph-proc
|
||||||
local fine : fallback _fine : AdviceStroke 2.75 df.adws
|
local fine : fallback _fine : AdviceStroke 2.75 df.adws
|
||||||
include : DeltaShape
|
include : DeltaShape
|
||||||
df -- df
|
df -- df
|
||||||
top -- top
|
top -- top
|
||||||
sw -- fine
|
sw -- fine
|
||||||
fBarStraight -- straightBar
|
fBarStraight -- straightBar
|
||||||
slab -- false
|
slab -- false
|
||||||
include : intersection
|
include : intersection
|
||||||
HBar.t df.leftSB df.rightSB (top / 2) fine
|
HBar.t df.leftSB df.rightSB (top / 2) fine
|
||||||
AShape.Mask df [if straightBar 1 0] top fine
|
AShape.Mask df [if straightBar 1 0] top fine
|
||||||
|
@ -79,23 +79,24 @@ glyph-block Letter-Cyrillic-SmallYus : begin
|
||||||
select-variant 'cyrl/smallYusClosed' 0xA659 (follow -- 'grek/Delta')
|
select-variant 'cyrl/smallYusClosed' 0xA659 (follow -- 'grek/Delta')
|
||||||
|
|
||||||
define [CyrIotifiedSmallYusShape fClosed fCapital df top straightBar] : glyph-proc
|
define [CyrIotifiedSmallYusShape fClosed fCapital df top straightBar] : glyph-proc
|
||||||
local gap : (df.width - 2 * df.leftSB - 4 * df.mvs) / 3
|
local gap : (df.width - 2 * df.leftSB - [if fClosed 3 4] * df.mvs) / 3
|
||||||
define divSub : (df.width - gap - df.mvs) / Width
|
define divSub : (df.width - gap - df.mvs) / Width
|
||||||
define dfSub : DivFrame divSub 3
|
define dfSub : DivFrame divSub : if fClosed 2 3
|
||||||
if fClosed
|
|
||||||
include : CyrClosedSmallYusShape dfSub top straightBar df.mvs
|
|
||||||
include : CyrSmallYusShape dfSub top straightBar df.mvs
|
|
||||||
eject-contour 'serifRB'
|
|
||||||
include : Translate (Width * (df.adws - divSub)) 0
|
|
||||||
|
|
||||||
|
local shift : Width * (df.adws - divSub)
|
||||||
|
local xIotifiedBarRight : df.leftSB + [HSwToV df.mvs]
|
||||||
|
local botGap : Math.max ((df.rightSB - df.leftSB) * 0.08) : AdviceStroke 6
|
||||||
|
include : difference
|
||||||
|
with-transform [ApparentTranslate shift 0] : if fClosed
|
||||||
|
CyrClosedSmallYusShape dfSub top straightBar df.mvs
|
||||||
|
CyrSmallYusShape dfSub top straightBar df.mvs
|
||||||
|
intersection [MaskBelow df.mvs]
|
||||||
|
MaskLeft : mix xIotifiedBarRight [Math.min (dfSub.leftSB + shift) (xIotifiedBarRight + botGap)] 0.5
|
||||||
|
|
||||||
include : Iotified.A df top
|
include : Iotified.A df top
|
||||||
hBarRight -- [mix df.leftSB df.rightSB (2 / 3)]
|
hBarRight -- [mix df.leftSB df.rightSB (2 / 3)]
|
||||||
hBarY -- (top / 2 - df.mvs * 0.5)
|
hBarY -- (top / 2 - df.mvs * 0.5)
|
||||||
fCapital -- fCapital
|
fCapital -- fCapital
|
||||||
|
|
||||||
if SLAB : begin
|
|
||||||
local sf : SerifFrame.fromDf df top 0 (swSerif -- df.mvs)
|
|
||||||
include sf.rb.outer
|
|
||||||
|
|
||||||
create-glyph : glyph-proc
|
create-glyph : glyph-proc
|
||||||
local df : include : DivFrame (para.advanceScaleM ** 2) 4.25
|
local df : include : DivFrame (para.advanceScaleM ** 2) 4.25
|
||||||
|
@ -114,7 +115,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin
|
||||||
CyrIotifiedSmallYusShape false false df XH false
|
CyrIotifiedSmallYusShape false false df XH false
|
||||||
|
|
||||||
create-glyph : glyph-proc
|
create-glyph : glyph-proc
|
||||||
local df : include : DivFrame para.advanceScaleM 4.25
|
local df : include : DivFrame para.advanceScaleM 3.5
|
||||||
include : df.markSet.capital
|
include : df.markSet.capital
|
||||||
create-forked-glyph 'cyrl/SmallYusClosedIotified.straight'
|
create-forked-glyph 'cyrl/SmallYusClosedIotified.straight'
|
||||||
CyrIotifiedSmallYusShape true true df CAP true
|
CyrIotifiedSmallYusShape true true df CAP true
|
||||||
|
@ -122,7 +123,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin
|
||||||
CyrIotifiedSmallYusShape true true df CAP false
|
CyrIotifiedSmallYusShape true true df CAP false
|
||||||
|
|
||||||
create-glyph : glyph-proc
|
create-glyph : glyph-proc
|
||||||
local df : include : DivFrame para.advanceScaleM 4.25
|
local df : include : DivFrame para.advanceScaleM 3.5
|
||||||
include : df.markSet.e
|
include : df.markSet.e
|
||||||
create-forked-glyph 'cyrl/smallYusClosedIotified.straight'
|
create-forked-glyph 'cyrl/smallYusClosedIotified.straight'
|
||||||
CyrIotifiedSmallYusShape true false df XH true
|
CyrIotifiedSmallYusShape true false df XH true
|
||||||
|
|
|
@ -141,11 +141,11 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin
|
||||||
glyph-block-export DeltaShape
|
glyph-block-export DeltaShape
|
||||||
define [DeltaShape] : with-params [df top sw fBarStraight] : union
|
define [DeltaShape] : with-params [df top sw fBarStraight] : union
|
||||||
LambdaShape
|
LambdaShape
|
||||||
df -- df
|
df -- df
|
||||||
fBarStraight -- fBarStraight
|
fBarStraight -- fBarStraight
|
||||||
slabKind -- 0
|
slabKind -- 0
|
||||||
top -- top
|
top -- top
|
||||||
sw -- sw
|
sw -- sw
|
||||||
intersection
|
intersection
|
||||||
HBar.b 0 df.width 0 sw
|
HBar.b 0 df.width 0 sw
|
||||||
LambdaMask df fBarStraight top sw
|
LambdaMask df fBarStraight top sw
|
||||||
|
@ -158,37 +158,37 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin
|
||||||
create-glyph "grek/Delta.\(suffix)" : glyph-proc
|
create-glyph "grek/Delta.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
include : DeltaShape
|
include : DeltaShape
|
||||||
df -- [DivFrame 1]
|
df -- [DivFrame 1]
|
||||||
fBarStraight -- fBarStraight
|
fBarStraight -- fBarStraight
|
||||||
top -- CAP
|
top -- CAP
|
||||||
sw -- Stroke
|
sw -- Stroke
|
||||||
|
|
||||||
create-glyph "increment.\(suffix)" : glyph-proc
|
create-glyph "increment.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
include : DeltaShape
|
include : DeltaShape
|
||||||
df -- [DivFrame 1]
|
df -- [DivFrame 1]
|
||||||
fBarStraight -- fBarStraight
|
fBarStraight -- fBarStraight
|
||||||
top -- CAP
|
top -- CAP
|
||||||
sw -- OperatorStroke
|
sw -- OperatorStroke
|
||||||
|
|
||||||
create-glyph "increment.aplForm.\(suffix)" : glyph-proc
|
create-glyph "increment.aplForm.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.oper
|
include : MarkSet.oper
|
||||||
define shapeHeight : OperTop - OperBot
|
define shapeHeight : OperTop - OperBot
|
||||||
include : DeltaShape
|
include : DeltaShape
|
||||||
df -- [DivFrame 1]
|
df -- [DivFrame 1]
|
||||||
fBarStraight -- fBarStraight
|
fBarStraight -- fBarStraight
|
||||||
top -- shapeHeight
|
top -- shapeHeight
|
||||||
sw -- OperatorStroke
|
sw -- OperatorStroke
|
||||||
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
||||||
|
|
||||||
create-glyph "increment.aplThin.\(suffix)" : glyph-proc
|
create-glyph "increment.aplThin.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.oper
|
include : MarkSet.oper
|
||||||
define shapeHeight : OperTop - OperBot
|
define shapeHeight : OperTop - OperBot
|
||||||
include : DeltaShape
|
include : DeltaShape
|
||||||
df -- [DivFrame 1]
|
df -- [DivFrame 1]
|
||||||
fBarStraight -- fBarStraight
|
fBarStraight -- fBarStraight
|
||||||
top -- shapeHeight
|
top -- shapeHeight
|
||||||
sw -- [AdviceStroke 3.75]
|
sw -- [AdviceStroke 3.75]
|
||||||
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
||||||
|
|
||||||
define [CodeNonApl u] : if (para.variantSelector.__enableAplForm === 'enable') null u
|
define [CodeNonApl u] : if (para.variantSelector.__enableAplForm === 'enable') null u
|
||||||
|
@ -209,6 +209,6 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin
|
||||||
local xCutLeft SB
|
local xCutLeft SB
|
||||||
local xCutRight RightSB
|
local xCutRight RightSB
|
||||||
include : HBar.b (xCutLeft - descenderOverflow) (xCutRight + descenderOverflow) 0
|
include : HBar.b (xCutLeft - descenderOverflow) (xCutRight + descenderOverflow) 0
|
||||||
include : VBar.l (xCutLeft - descenderOverflow) (-LongVJut + HalfStroke) Stroke
|
include : VBar.l (xCutLeft - descenderOverflow) ((-LongVJut) + QuarterStroke) Stroke
|
||||||
include : VBar.r (xCutRight + descenderOverflow) (-LongVJut + HalfStroke) Stroke
|
include : VBar.r (xCutRight + descenderOverflow) ((-LongVJut) + QuarterStroke) Stroke
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue