|
|
@ -8,6 +8,9 @@ import [Radical] from '../../support/gr'
|
|
|
|
glyph-module
|
|
|
|
glyph-module
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block CommonShapes : begin
|
|
|
|
glyph-block CommonShapes : begin
|
|
|
|
|
|
|
|
glyph-block-import Common-Derivatives
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export Rect
|
|
|
|
define [Rect u d l r transformShiftOnly] : glyph-proc
|
|
|
|
define [Rect u d l r transformShiftOnly] : glyph-proc
|
|
|
|
local giz currentGlyph.gizmo
|
|
|
|
local giz currentGlyph.gizmo
|
|
|
|
include : new-glyph : glyph-proc
|
|
|
|
include : new-glyph : glyph-proc
|
|
|
@ -23,40 +26,51 @@ glyph-block CommonShapes : begin
|
|
|
|
local {.x mx1 .y my1} : giz.apply {.x mx .y my}
|
|
|
|
local {.x mx1 .y my1} : giz.apply {.x mx .y my}
|
|
|
|
include : Translate (mx1 - mx) (my1 - my)
|
|
|
|
include : Translate (mx1 - mx) (my1 - my)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export SquareAt
|
|
|
|
define [SquareAt x y r] : Rect (y + r) (y - r) (x - r) (x + r)
|
|
|
|
define [SquareAt x y r] : Rect (y + r) (y - r) (x - r) (x + r)
|
|
|
|
|
|
|
|
|
|
|
|
define VERY-FAR : UPM * 16
|
|
|
|
define VERY-FAR : UPM * 16
|
|
|
|
|
|
|
|
glyph-block-export MaskAbove
|
|
|
|
define [MaskAbove y] : Rect (VERY-FAR) y (-VERY-FAR) (VERY-FAR)
|
|
|
|
define [MaskAbove y] : Rect (VERY-FAR) y (-VERY-FAR) (VERY-FAR)
|
|
|
|
|
|
|
|
glyph-block-export MaskBelow
|
|
|
|
define [MaskBelow y] : Rect y (-VERY-FAR) (-VERY-FAR) (VERY-FAR)
|
|
|
|
define [MaskBelow y] : Rect y (-VERY-FAR) (-VERY-FAR) (VERY-FAR)
|
|
|
|
|
|
|
|
glyph-block-export MaskLeft
|
|
|
|
define [MaskLeft x] : Rect VERY-FAR (-VERY-FAR) (-VERY-FAR) x
|
|
|
|
define [MaskLeft x] : Rect VERY-FAR (-VERY-FAR) (-VERY-FAR) x
|
|
|
|
|
|
|
|
glyph-block-export MaskRight
|
|
|
|
define [MaskRight x] : Rect VERY-FAR (-VERY-FAR) x VERY-FAR
|
|
|
|
define [MaskRight x] : Rect VERY-FAR (-VERY-FAR) x VERY-FAR
|
|
|
|
|
|
|
|
glyph-block-export MaskAboveLine
|
|
|
|
define [MaskAboveLine x1 y1 x2 y2] : spiro-outline
|
|
|
|
define [MaskAboveLine x1 y1 x2 y2] : spiro-outline
|
|
|
|
corner x1 (+VERY-FAR)
|
|
|
|
corner x1 (+VERY-FAR)
|
|
|
|
corner x1 y1
|
|
|
|
corner x1 y1
|
|
|
|
corner x2 y2
|
|
|
|
corner x2 y2
|
|
|
|
corner x2 (+VERY-FAR)
|
|
|
|
corner x2 (+VERY-FAR)
|
|
|
|
|
|
|
|
glyph-block-export MaskBelowLine
|
|
|
|
define [MaskBelowLine x1 y1 x2 y2] : spiro-outline
|
|
|
|
define [MaskBelowLine x1 y1 x2 y2] : spiro-outline
|
|
|
|
corner x1 (-VERY-FAR)
|
|
|
|
corner x1 (-VERY-FAR)
|
|
|
|
corner x1 y1
|
|
|
|
corner x1 y1
|
|
|
|
corner x2 y2
|
|
|
|
corner x2 y2
|
|
|
|
corner x2 (-VERY-FAR)
|
|
|
|
corner x2 (-VERY-FAR)
|
|
|
|
|
|
|
|
glyph-block-export MaskLeftLine
|
|
|
|
define [MaskLeftLine x1 y1 x2 y2] : spiro-outline
|
|
|
|
define [MaskLeftLine x1 y1 x2 y2] : spiro-outline
|
|
|
|
corner (-VERY-FAR) y1
|
|
|
|
corner (-VERY-FAR) y1
|
|
|
|
corner x1 y1
|
|
|
|
corner x1 y1
|
|
|
|
corner x2 y2
|
|
|
|
corner x2 y2
|
|
|
|
corner (-VERY-FAR) y2
|
|
|
|
corner (-VERY-FAR) y2
|
|
|
|
|
|
|
|
glyph-block-export MaskRightLine
|
|
|
|
define [MaskRightLine x1 y1 x2 y2] : spiro-outline
|
|
|
|
define [MaskRightLine x1 y1 x2 y2] : spiro-outline
|
|
|
|
corner (+VERY-FAR) y1
|
|
|
|
corner (+VERY-FAR) y1
|
|
|
|
corner x1 y1
|
|
|
|
corner x1 y1
|
|
|
|
corner x2 y2
|
|
|
|
corner x2 y2
|
|
|
|
corner (+VERY-FAR) y2
|
|
|
|
corner (+VERY-FAR) y2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export HalfRectTriangle
|
|
|
|
define [HalfRectTriangle x1 y1 x2 y2] : spiro-outline
|
|
|
|
define [HalfRectTriangle x1 y1 x2 y2] : spiro-outline
|
|
|
|
corner x1 y1
|
|
|
|
corner x1 y1
|
|
|
|
corner x2 y2
|
|
|
|
corner x2 y2
|
|
|
|
corner x2 y1
|
|
|
|
corner x2 y1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export Ring
|
|
|
|
define [Ring u d l r transformShiftOnly] : glyph-proc
|
|
|
|
define [Ring u d l r transformShiftOnly] : glyph-proc
|
|
|
|
local giz currentGlyph.gizmo
|
|
|
|
local giz currentGlyph.gizmo
|
|
|
|
include : new-glyph : glyph-proc
|
|
|
|
include : new-glyph : glyph-proc
|
|
|
@ -76,9 +90,12 @@ glyph-block CommonShapes : begin
|
|
|
|
if transformShiftOnly : begin
|
|
|
|
if transformShiftOnly : begin
|
|
|
|
local {.x mx1 .y my1} : giz.apply {.x mx .y my}
|
|
|
|
local {.x mx1 .y my1} : giz.apply {.x mx .y my}
|
|
|
|
include : Translate (mx1 - mx) (my1 - my)
|
|
|
|
include : Translate (mx1 - mx) (my1 - my)
|
|
|
|
|
|
|
|
glyph-block-export RingAt
|
|
|
|
define [RingAt x y r] : Ring (y + r) (y - r) (x - r) (x + r)
|
|
|
|
define [RingAt x y r] : Ring (y + r) (y - r) (x - r) (x + r)
|
|
|
|
|
|
|
|
glyph-block-export DotAt
|
|
|
|
define [DotAt x y r] : Ring (y + r) (y - r) (x - r) (x + r) true
|
|
|
|
define [DotAt x y r] : Ring (y + r) (y - r) (x - r) (x + r) true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export RingStroke
|
|
|
|
define [RingStroke u d l r s transformShiftOnly] : glyph-proc
|
|
|
|
define [RingStroke u d l r s transformShiftOnly] : glyph-proc
|
|
|
|
local giz currentGlyph.gizmo
|
|
|
|
local giz currentGlyph.gizmo
|
|
|
|
include : new-glyph : glyph-proc
|
|
|
|
include : new-glyph : glyph-proc
|
|
|
@ -100,9 +117,12 @@ glyph-block CommonShapes : begin
|
|
|
|
if transformShiftOnly : begin
|
|
|
|
if transformShiftOnly : begin
|
|
|
|
local {.x mx1 .y my1} : giz.apply {.x mx .y my}
|
|
|
|
local {.x mx1 .y my1} : giz.apply {.x mx .y my}
|
|
|
|
include : Translate (mx1 - mx) (my1 - my)
|
|
|
|
include : Translate (mx1 - mx) (my1 - my)
|
|
|
|
|
|
|
|
glyph-block-export RingStrokeAt
|
|
|
|
define [RingStrokeAt x y r s] : RingStroke (y + r) (y - r) (x - r) (x + r) s
|
|
|
|
define [RingStrokeAt x y r s] : RingStroke (y + r) (y - r) (x - r) (x + r) s
|
|
|
|
|
|
|
|
glyph-block-export DotStrokeAt
|
|
|
|
define [DotStrokeAt x y r s] : RingStroke (y + r) (y - r) (x - r) (x + r) s true
|
|
|
|
define [DotStrokeAt x y r s] : RingStroke (y + r) (y - r) (x - r) (x + r) s true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export CircleRing
|
|
|
|
define [CircleRing u d l r transformShiftOnly] : glyph-proc
|
|
|
|
define [CircleRing u d l r transformShiftOnly] : glyph-proc
|
|
|
|
local giz currentGlyph.gizmo
|
|
|
|
local giz currentGlyph.gizmo
|
|
|
|
include : new-glyph : glyph-proc
|
|
|
|
include : new-glyph : glyph-proc
|
|
|
@ -119,9 +139,12 @@ glyph-block CommonShapes : begin
|
|
|
|
if transformShiftOnly : begin
|
|
|
|
if transformShiftOnly : begin
|
|
|
|
local {.x mx1 .y my1} : giz.apply {.x mx .y my}
|
|
|
|
local {.x mx1 .y my1} : giz.apply {.x mx .y my}
|
|
|
|
include : Translate (mx1 - mx) (my1 - my)
|
|
|
|
include : Translate (mx1 - mx) (my1 - my)
|
|
|
|
|
|
|
|
glyph-block-export CircleRingAt
|
|
|
|
define [CircleRingAt x y r] : CircleRing (y + r) (y - r) (x - r) (x + r)
|
|
|
|
define [CircleRingAt x y r] : CircleRing (y + r) (y - r) (x - r) (x + r)
|
|
|
|
|
|
|
|
glyph-block-export CircleDotAt
|
|
|
|
define [CircleDotAt x y r] : CircleRing (y + r) (y - r) (x - r) (x + r) true
|
|
|
|
define [CircleDotAt x y r] : CircleRing (y + r) (y - r) (x - r) (x + r) true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export OShapeT
|
|
|
|
define [OShapeT sink u d l r _width _sma _smb] : glyph-proc
|
|
|
|
define [OShapeT sink u d l r _width _sma _smb] : glyph-proc
|
|
|
|
local middle : (l + r) / 2
|
|
|
|
local middle : (l + r) / 2
|
|
|
|
local width : fallback _width Stroke
|
|
|
|
local width : fallback _width Stroke
|
|
|
@ -157,12 +180,15 @@ glyph-block CommonShapes : begin
|
|
|
|
arcvh
|
|
|
|
arcvh
|
|
|
|
close
|
|
|
|
close
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export OShape
|
|
|
|
define [OShape u d l r _width _sma _smb] : OShapeT dispiro u d l r _width _sma _smb
|
|
|
|
define [OShape u d l r _width _sma _smb] : OShapeT dispiro u d l r _width _sma _smb
|
|
|
|
|
|
|
|
glyph-block-export OShapeOutline
|
|
|
|
define [OShapeOutline u d l r _width _sma _smb] : OShapeT spiro-outline u d l r _width _sma _smb
|
|
|
|
define [OShapeOutline u d l r _width _sma _smb] : OShapeT spiro-outline u d l r _width _sma _smb
|
|
|
|
|
|
|
|
|
|
|
|
set OShape.NoOvershoot : lambda [u d l r _width _sma _smb] : OShape (u + O) (d - O) (l - OX) (r + OX) _width _sma _smb
|
|
|
|
set OShape.NoOvershoot : lambda [u d l r _width _sma _smb] : OShape (u + O) (d - O) (l - OX) (r + OX) _width _sma _smb
|
|
|
|
set OShapeOutline.NoOvershoot : lambda [u d l r _width _sma _smb] : OShapeOutline (u + O) (d - O) (l - OX) (r + OX) _width _sma _smb
|
|
|
|
set OShapeOutline.NoOvershoot : lambda [u d l r _width _sma _smb] : OShapeOutline (u + O) (d - O) (l - OX) (r + OX) _width _sma _smb
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export OShapeFlatTB
|
|
|
|
define [OShapeFlatTB u d l r _width _sma _smb gap] : glyph-proc
|
|
|
|
define [OShapeFlatTB u d l r _width _sma _smb gap] : glyph-proc
|
|
|
|
local middle : (l + r) / 2
|
|
|
|
local middle : (l + r) / 2
|
|
|
|
local width : fallback _width Stroke
|
|
|
|
local width : fallback _width Stroke
|
|
|
@ -202,6 +228,7 @@ glyph-block CommonShapes : begin
|
|
|
|
flat (middle - mc + gap / 2) (u - O)
|
|
|
|
flat (middle - mc + gap / 2) (u - O)
|
|
|
|
curl (middle - mc) (u - O)
|
|
|
|
curl (middle - mc) (u - O)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export OBarLeftShape
|
|
|
|
define [OBarLeftShape] : params [[top XH] [left SB] [stroke Stroke] [fine ShoulderFine]] : begin
|
|
|
|
define [OBarLeftShape] : params [[top XH] [left SB] [stroke Stroke] [fine ShoulderFine]] : begin
|
|
|
|
local st : shoulderMidSlope fine nothing 1
|
|
|
|
local st : shoulderMidSlope fine nothing 1
|
|
|
|
local sb : shoulderMidSlope fine nothing (-1)
|
|
|
|
local sb : shoulderMidSlope fine nothing (-1)
|
|
|
@ -221,6 +248,7 @@ glyph-block CommonShapes : begin
|
|
|
|
flat (left + (stroke - fine) * HVContrast) (top - SmallSmoothA) [widths fine 0]
|
|
|
|
flat (left + (stroke - fine) * HVContrast) (top - SmallSmoothA) [widths fine 0]
|
|
|
|
curl (left + (stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
|
|
|
|
curl (left + (stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export OBarLeftToothlessShape
|
|
|
|
define [OBarLeftToothlessShape _top _left _rise _mBlend] : glyph-proc
|
|
|
|
define [OBarLeftToothlessShape _top _left _rise _mBlend] : glyph-proc
|
|
|
|
local top : fallback _top XH
|
|
|
|
local top : fallback _top XH
|
|
|
|
local left : fallback _left SB
|
|
|
|
local left : fallback _left SB
|
|
|
@ -244,6 +272,7 @@ glyph-block CommonShapes : begin
|
|
|
|
flat (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA) [widths fine 0]
|
|
|
|
flat (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA) [widths fine 0]
|
|
|
|
curl (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
|
|
|
|
curl (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export OBarLeftRoundedShape
|
|
|
|
define [OBarLeftRoundedShape _top _left _yTerminal] : glyph-proc
|
|
|
|
define [OBarLeftRoundedShape _top _left _yTerminal] : glyph-proc
|
|
|
|
local top : fallback _top XH
|
|
|
|
local top : fallback _top XH
|
|
|
|
local left : fallback _left SB
|
|
|
|
local left : fallback _left SB
|
|
|
@ -267,6 +296,7 @@ glyph-block CommonShapes : begin
|
|
|
|
flat (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA) [widths fine 0]
|
|
|
|
flat (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA) [widths fine 0]
|
|
|
|
curl (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
|
|
|
|
curl (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export OBarLeftToothlessTopShape
|
|
|
|
define [OBarLeftToothlessTopShape _top _left _rise _mBlend] : glyph-proc
|
|
|
|
define [OBarLeftToothlessTopShape _top _left _rise _mBlend] : glyph-proc
|
|
|
|
local top : fallback _top XH
|
|
|
|
local top : fallback _top XH
|
|
|
|
local left : fallback _left SB
|
|
|
|
local left : fallback _left SB
|
|
|
@ -290,6 +320,7 @@ glyph-block CommonShapes : begin
|
|
|
|
alsoThru.g2 0.5 (1 - mBlend) important
|
|
|
|
alsoThru.g2 0.5 (1 - mBlend) important
|
|
|
|
g4 left (top - rise) [widths.lhs Stroke]
|
|
|
|
g4 left (top - rise) [widths.lhs Stroke]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export OBarLeftRoundedTopShape
|
|
|
|
define [OBarLeftRoundedTopShape _top _left _yTerminal] : glyph-proc
|
|
|
|
define [OBarLeftRoundedTopShape _top _left _yTerminal] : glyph-proc
|
|
|
|
local top : fallback _top XH
|
|
|
|
local top : fallback _top XH
|
|
|
|
local left : fallback _left SB
|
|
|
|
local left : fallback _left SB
|
|
|
@ -313,6 +344,7 @@ glyph-block CommonShapes : begin
|
|
|
|
flat left (top - SmallSmoothA)
|
|
|
|
flat left (top - SmallSmoothA)
|
|
|
|
curl left yTerminal [widths.lhs.heading Stroke Downward]
|
|
|
|
curl left yTerminal [widths.lhs.heading Stroke Downward]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export OBarRightShape
|
|
|
|
define [OBarRightShape] : params [[top XH] [right RightSB] [stroke Stroke] [fine ShoulderFine]] : new-glyph : glyph-proc
|
|
|
|
define [OBarRightShape] : params [[top XH] [right RightSB] [stroke Stroke] [fine ShoulderFine]] : new-glyph : glyph-proc
|
|
|
|
include : OBarLeftShape
|
|
|
|
include : OBarLeftShape
|
|
|
|
top -- [fallback top XH]
|
|
|
|
top -- [fallback top XH]
|
|
|
@ -321,10 +353,12 @@ glyph-block CommonShapes : begin
|
|
|
|
fine -- fine
|
|
|
|
fine -- fine
|
|
|
|
include : FlipAround Middle (top / 2)
|
|
|
|
include : FlipAround Middle (top / 2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export OBarRightToothlessShape
|
|
|
|
define [OBarRightToothlessShape _top _right _rise _mBlend] : new-glyph : glyph-proc
|
|
|
|
define [OBarRightToothlessShape _top _right _rise _mBlend] : new-glyph : glyph-proc
|
|
|
|
include : OBarLeftToothlessTopShape _top (Width - [fallback _right RightSB]) _rise _mBlend
|
|
|
|
include : OBarLeftToothlessTopShape _top (Width - [fallback _right RightSB]) _rise _mBlend
|
|
|
|
include : FlipAround Middle ([fallback _top XH] / 2)
|
|
|
|
include : FlipAround Middle ([fallback _top XH] / 2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export OBarRightRoundedShape
|
|
|
|
define [OBarRightRoundedShape _top _right _yTerminal] : new-glyph : glyph-proc
|
|
|
|
define [OBarRightRoundedShape _top _right _yTerminal] : new-glyph : glyph-proc
|
|
|
|
local top : fallback _top XH
|
|
|
|
local top : fallback _top XH
|
|
|
|
local right : fallback right RightSB
|
|
|
|
local right : fallback right RightSB
|
|
|
@ -332,40 +366,48 @@ glyph-block CommonShapes : begin
|
|
|
|
include : OBarLeftRoundedTopShape top (Width - right) (top - yTerminal)
|
|
|
|
include : OBarLeftRoundedTopShape top (Width - right) (top - yTerminal)
|
|
|
|
include : FlipAround Middle (top / 2)
|
|
|
|
include : FlipAround Middle (top / 2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export LeftwardTopSerif
|
|
|
|
define [LeftwardTopSerif x y length _sw] : glyph-proc
|
|
|
|
define [LeftwardTopSerif x y length _sw] : glyph-proc
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
|
flat (x + sw / 2 * HVContrast) y [widths.heading sw 0 Leftward]
|
|
|
|
flat (x + sw / 2 * HVContrast) y [widths.heading sw 0 Leftward]
|
|
|
|
curl (x - length - TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
curl (x - length - TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export LeftwardBottomSerif
|
|
|
|
define [LeftwardBottomSerif x y length _sw] : glyph-proc
|
|
|
|
define [LeftwardBottomSerif x y length _sw] : glyph-proc
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
|
flat (x + sw / 2 * HVContrast) y [widths.heading 0 sw Leftward]
|
|
|
|
flat (x + sw / 2 * HVContrast) y [widths.heading 0 sw Leftward]
|
|
|
|
curl (x - length + TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
curl (x - length + TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export RightwardTopSerif
|
|
|
|
define [RightwardTopSerif x y length _sw] : glyph-proc
|
|
|
|
define [RightwardTopSerif x y length _sw] : glyph-proc
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
|
flat (x - sw / 2 * HVContrast) y [widths.heading 0 sw Rightward]
|
|
|
|
flat (x - sw / 2 * HVContrast) y [widths.heading 0 sw Rightward]
|
|
|
|
curl (x + length - TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
curl (x + length - TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export RightwardBottomSerif
|
|
|
|
define [RightwardBottomSerif x y length _sw] : glyph-proc
|
|
|
|
define [RightwardBottomSerif x y length _sw] : glyph-proc
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
|
flat (x - sw / 2 * HVContrast) y [widths.heading sw 0 Rightward]
|
|
|
|
flat (x - sw / 2 * HVContrast) y [widths.heading sw 0 Rightward]
|
|
|
|
curl (x + length + TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
curl (x + length + TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export CenterTopSerif
|
|
|
|
define [CenterTopSerif x y length _sw] : CenterTopSerifAsymmetric x y length length _sw
|
|
|
|
define [CenterTopSerif x y length _sw] : CenterTopSerifAsymmetric x y length length _sw
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export CenterBottomSerif
|
|
|
|
define [CenterBottomSerif x y length _sw] : CenterBottomSerifAsymmetric x y length length _sw
|
|
|
|
define [CenterBottomSerif x y length _sw] : CenterBottomSerifAsymmetric x y length length _sw
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export CenterTopSerifAsymmetric
|
|
|
|
define [CenterTopSerifAsymmetric x y l r _sw] : begin
|
|
|
|
define [CenterTopSerifAsymmetric x y l r _sw] : begin
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
return : dispiro
|
|
|
|
return : dispiro
|
|
|
|
flat (x + r - TanSlope * (sw * DesignParameters.serifShiftX)) y [widths sw 0]
|
|
|
|
flat (x + r - TanSlope * (sw * DesignParameters.serifShiftX)) y [widths sw 0]
|
|
|
|
curl (x - l - TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
curl (x - l - TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export CenterBottomSerifAsymmetric
|
|
|
|
define [CenterBottomSerifAsymmetric x y l r _sw] : begin
|
|
|
|
define [CenterBottomSerifAsymmetric x y l r _sw] : begin
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
local sw : fallback _sw Stroke
|
|
|
|
return : dispiro
|
|
|
|
return : dispiro
|
|
|
@ -373,53 +415,66 @@ glyph-block CommonShapes : begin
|
|
|
|
curl (x - l + TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
curl (x - l + TanSlope * (sw * DesignParameters.serifShiftX)) y
|
|
|
|
|
|
|
|
|
|
|
|
define VJutSw : AdviceStroke 3.5
|
|
|
|
define VJutSw : AdviceStroke 3.5
|
|
|
|
|
|
|
|
glyph-block-export DownwardRightSerif
|
|
|
|
define [DownwardRightSerif x y length sw] : glyph-proc
|
|
|
|
define [DownwardRightSerif x y length sw] : glyph-proc
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
|
widths.rhs [fallback sw VJutSw]
|
|
|
|
widths.rhs [fallback sw VJutSw]
|
|
|
|
flat x y [heading Downward]
|
|
|
|
flat x y [heading Downward]
|
|
|
|
curl x (y - length) [heading Downward]
|
|
|
|
curl x (y - length) [heading Downward]
|
|
|
|
|
|
|
|
glyph-block-export UpwardRightSerif
|
|
|
|
define [UpwardRightSerif x y length sw] : glyph-proc
|
|
|
|
define [UpwardRightSerif x y length sw] : glyph-proc
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
|
widths.lhs [fallback sw VJutSw]
|
|
|
|
widths.lhs [fallback sw VJutSw]
|
|
|
|
flat x y [heading Upward]
|
|
|
|
flat x y [heading Upward]
|
|
|
|
curl x (y + length) [heading Upward]
|
|
|
|
curl x (y + length) [heading Upward]
|
|
|
|
|
|
|
|
glyph-block-export DownwardLeftSerif
|
|
|
|
define [DownwardLeftSerif x y length sw] : glyph-proc
|
|
|
|
define [DownwardLeftSerif x y length sw] : glyph-proc
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
|
widths.lhs [fallback sw VJutSw]
|
|
|
|
widths.lhs [fallback sw VJutSw]
|
|
|
|
flat x y [heading Downward]
|
|
|
|
flat x y [heading Downward]
|
|
|
|
curl x (y - length) [heading Downward]
|
|
|
|
curl x (y - length) [heading Downward]
|
|
|
|
|
|
|
|
glyph-block-export UpwardLeftSerif
|
|
|
|
define [UpwardLeftSerif x y length sw] : glyph-proc
|
|
|
|
define [UpwardLeftSerif x y length sw] : glyph-proc
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
|
widths.rhs [fallback sw VJutSw]
|
|
|
|
widths.rhs [fallback sw VJutSw]
|
|
|
|
flat x y [heading Upward]
|
|
|
|
flat x y [heading Upward]
|
|
|
|
curl x (y + length) [heading Upward]
|
|
|
|
curl x (y + length) [heading Upward]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export NeedSlab
|
|
|
|
define [NeedSlab level p] : if level p [glyph-proc]
|
|
|
|
define [NeedSlab level p] : if level p [glyph-proc]
|
|
|
|
|
|
|
|
glyph-block-export NeedNotItalic
|
|
|
|
define [NeedNotItalic p] : if para.isItalic [glyph-proc] p
|
|
|
|
define [NeedNotItalic p] : if para.isItalic [glyph-proc] p
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export DiagCor
|
|
|
|
define [DiagCor dy dx dyt dxt] : begin
|
|
|
|
define [DiagCor dy dx dyt dxt] : begin
|
|
|
|
local ay : Math.max 0 : [Math.abs dy] - [fallback dyt 0]
|
|
|
|
local ay : Math.max 0 : [Math.abs dy] - [fallback dyt 0]
|
|
|
|
local ax : Math.max 0 : [Math.abs dx] - [fallback dxt 0]
|
|
|
|
local ax : Math.max 0 : [Math.abs dx] - [fallback dxt 0]
|
|
|
|
return : [Math.hypot ay ax] / ay
|
|
|
|
return : [Math.hypot ay ax] / ay
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export DiagCorDs
|
|
|
|
define [DiagCorDs dy dx ds] : begin
|
|
|
|
define [DiagCorDs dy dx ds] : begin
|
|
|
|
local kDiag : DiagCor dy dx
|
|
|
|
local kDiag : DiagCor dy dx
|
|
|
|
for [local n 0] (n < 4) [inc n] : begin
|
|
|
|
for [local n 0] (n < 4) [inc n] : begin
|
|
|
|
set kDiag : DiagCor dy (dx - ds * kDiag)
|
|
|
|
set kDiag : DiagCor dy (dx - ds * kDiag)
|
|
|
|
return kDiag
|
|
|
|
return kDiag
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export HBar
|
|
|
|
define [HBar xleft xright y _fine] : glyph-proc
|
|
|
|
define [HBar xleft xright y _fine] : glyph-proc
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
|
widths.center [fallback _fine Stroke]
|
|
|
|
widths.center [fallback _fine Stroke]
|
|
|
|
flat xleft y [heading : RightwardT.call this]
|
|
|
|
flat xleft y [heading : RightwardT.call this]
|
|
|
|
curl xright y [heading : RightwardT.call this]
|
|
|
|
curl xright y [heading : RightwardT.call this]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export HBarTop
|
|
|
|
define [HBarTop xl xr y _fine] : HBar xl xr (y - [fallback _fine Stroke] * 0.5) _fine
|
|
|
|
define [HBarTop xl xr y _fine] : HBar xl xr (y - [fallback _fine Stroke] * 0.5) _fine
|
|
|
|
|
|
|
|
glyph-block-export HBarBottom
|
|
|
|
define [HBarBottom xl xr y _fine] : HBar xl xr (y + [fallback _fine Stroke] * 0.5) _fine
|
|
|
|
define [HBarBottom xl xr y _fine] : HBar xl xr (y + [fallback _fine Stroke] * 0.5) _fine
|
|
|
|
|
|
|
|
glyph-block-export HOverlayBar
|
|
|
|
define [HOverlayBar xleft xright y s] : dispiro
|
|
|
|
define [HOverlayBar xleft xright y s] : dispiro
|
|
|
|
widths.center [fallback s OverlayStroke]
|
|
|
|
widths.center [fallback s OverlayStroke]
|
|
|
|
flat xleft y
|
|
|
|
flat xleft y
|
|
|
|
curl xright y
|
|
|
|
curl xright y
|
|
|
|
|
|
|
|
glyph-block-export HCrossBar
|
|
|
|
define [HCrossBar xl xr y s] : dispiro
|
|
|
|
define [HCrossBar xl xr y s] : dispiro
|
|
|
|
widths.center [fallback s OverlayStroke]
|
|
|
|
widths.center [fallback s OverlayStroke]
|
|
|
|
flat xl y
|
|
|
|
flat xl y
|
|
|
@ -430,6 +485,9 @@ glyph-block CommonShapes : begin
|
|
|
|
set HCrossBar.bottom : lambda [xl xr y _s] : begin
|
|
|
|
set HCrossBar.bottom : lambda [xl xr y _s] : begin
|
|
|
|
local s : fallback _s Stroke
|
|
|
|
local s : fallback _s Stroke
|
|
|
|
return : HCrossBar (xl + 0 * s * TanSlope) (xr + 0 * s * TanSlope) (y + 0.5 * s) s
|
|
|
|
return : HCrossBar (xl + 0 * s * TanSlope) (xr + 0 * s * TanSlope) (y + 0.5 * s) s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export VBar
|
|
|
|
define [VBar x ydown yup _fine] : glyph-proc
|
|
|
|
define [VBar x ydown yup _fine] : glyph-proc
|
|
|
|
local fine : fallback _fine Stroke
|
|
|
|
local fine : fallback _fine Stroke
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
@ -437,9 +495,12 @@ glyph-block CommonShapes : begin
|
|
|
|
flat x ydown [heading : [if (ydown < yup) UpwardT DownwardT].call this]
|
|
|
|
flat x ydown [heading : [if (ydown < yup) UpwardT DownwardT].call this]
|
|
|
|
curl x yup [heading : [if (ydown < yup) UpwardT DownwardT].call this]
|
|
|
|
curl x yup [heading : [if (ydown < yup) UpwardT DownwardT].call this]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export VBarLeft
|
|
|
|
define [VBarLeft x yd yu _fine] : VBar (x + [fallback _fine Stroke] * 0.5 * HVContrast) yd yu _fine
|
|
|
|
define [VBarLeft x yd yu _fine] : VBar (x + [fallback _fine Stroke] * 0.5 * HVContrast) yd yu _fine
|
|
|
|
|
|
|
|
glyph-block-export VBarRight
|
|
|
|
define [VBarRight x yd yu _fine] : VBar (x - [fallback _fine Stroke] * 0.5 * HVContrast) yd yu _fine
|
|
|
|
define [VBarRight x yd yu _fine] : VBar (x - [fallback _fine Stroke] * 0.5 * HVContrast) yd yu _fine
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export VerticalHook
|
|
|
|
define [VerticalHook] : params [x y xDepth yDepth [sw Stroke] [xExtension 0] [yExtension 0]]
|
|
|
|
define [VerticalHook] : params [x y xDepth yDepth [sw Stroke] [xExtension 0] [yExtension 0]]
|
|
|
|
dispiro [widths.center sw]
|
|
|
|
dispiro [widths.center sw]
|
|
|
|
flat x (y + yExtension) [heading [if (yDepth > 0) Downward Upward]]
|
|
|
|
flat x (y + yExtension) [heading [if (yDepth > 0) Downward Upward]]
|
|
|
@ -448,6 +509,7 @@ glyph-block CommonShapes : begin
|
|
|
|
flat (x + xDepth - [if (xDepth > 0) 0.01 (-0.01)]) (y - yDepth)
|
|
|
|
flat (x + xDepth - [if (xDepth > 0) 0.01 (-0.01)]) (y - yDepth)
|
|
|
|
curl (x + xDepth + xExtension) (y - yDepth)
|
|
|
|
curl (x + xDepth + xExtension) (y - yDepth)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export LeftHook
|
|
|
|
define [LeftHook x y xextend] : glyph-proc
|
|
|
|
define [LeftHook x y xextend] : glyph-proc
|
|
|
|
local fine : AdviceStroke 4.25
|
|
|
|
local fine : AdviceStroke 4.25
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
@ -458,6 +520,7 @@ glyph-block CommonShapes : begin
|
|
|
|
g4.down.end (x - LeftHook.extension) (y - HookX) [heading Downward]
|
|
|
|
g4.down.end (x - LeftHook.extension) (y - HookX) [heading Downward]
|
|
|
|
set LeftHook.extension [Math.max (Width * 0.15) ([AdviceStroke 4.25] * 1.5)]
|
|
|
|
set LeftHook.extension [Math.max (Width * 0.15) ([AdviceStroke 4.25] * 1.5)]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export FlatSlashShape
|
|
|
|
define [FlatSlashShape middlex middle fine kx ky] : glyph-proc
|
|
|
|
define [FlatSlashShape middlex middle fine kx ky] : glyph-proc
|
|
|
|
include : dispiro
|
|
|
|
include : dispiro
|
|
|
|
flat (middlex - LongJut * [fallback kx 0.8]) (middle - LongJut * [fallback ky 0.4]) [widths fine fine]
|
|
|
|
flat (middlex - LongJut * [fallback kx 0.8]) (middle - LongJut * [fallback ky 0.4]) [widths fine fine]
|
|
|
@ -566,6 +629,7 @@ glyph-block CommonShapes : begin
|
|
|
|
define [hookEndBlender before after args] : begin
|
|
|
|
define [hookEndBlender before after args] : begin
|
|
|
|
return : HookShape before after false args.y args.tight args.sw args.swItalicAdj args.noAdjTerminalY
|
|
|
|
return : HookShape before after false args.y args.tight args.sw args.swItalicAdj args.noAdjTerminalY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export hookstart
|
|
|
|
define [hookstart] : params [y tight sw swItalicAdj noAdjTerminalY] : return {
|
|
|
|
define [hookstart] : params [y tight sw swItalicAdj noAdjTerminalY] : return {
|
|
|
|
.type 'interpolate'
|
|
|
|
.type 'interpolate'
|
|
|
|
.blender hookStartBlender
|
|
|
|
.blender hookStartBlender
|
|
|
@ -575,6 +639,7 @@ glyph-block CommonShapes : begin
|
|
|
|
.swItalicAdj swItalicAdj
|
|
|
|
.swItalicAdj swItalicAdj
|
|
|
|
.noAdjTerminalY noAdjTerminalY
|
|
|
|
.noAdjTerminalY noAdjTerminalY
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
glyph-block-export hookend
|
|
|
|
define [hookend] : params [y tight sw swItalicAdj noAdjTerminalY] : return {
|
|
|
|
define [hookend] : params [y tight sw swItalicAdj noAdjTerminalY] : return {
|
|
|
|
.type 'interpolate'
|
|
|
|
.type 'interpolate'
|
|
|
|
.blender hookEndBlender
|
|
|
|
.blender hookEndBlender
|
|
|
@ -586,23 +651,30 @@ glyph-block CommonShapes : begin
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Composite transformations
|
|
|
|
# Composite transformations
|
|
|
|
|
|
|
|
glyph-block-export FlipAround
|
|
|
|
define [FlipAround x y sx sy] : glyph-proc
|
|
|
|
define [FlipAround x y sx sy] : glyph-proc
|
|
|
|
include : Upright
|
|
|
|
include : Upright
|
|
|
|
include : Translate (-x) (-y)
|
|
|
|
include : Translate (-x) (-y)
|
|
|
|
include : Scale [fallback sx (-1)] [fallback sy sx (-1)]
|
|
|
|
include : Scale [fallback sx (-1)] [fallback sy sx (-1)]
|
|
|
|
include : Translate x y
|
|
|
|
include : Translate x y
|
|
|
|
include : Italify
|
|
|
|
include : Italify
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export ScaleAround
|
|
|
|
define ScaleAround FlipAround
|
|
|
|
define ScaleAround FlipAround
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export Realign
|
|
|
|
define [Realign x y sx sy] : ApparentTranslate (sx - x) (sy - y)
|
|
|
|
define [Realign x y sx sy] : ApparentTranslate (sx - x) (sy - y)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export ForceUpright
|
|
|
|
define [ForceUpright] : glyph-proc [set this.gizmo : Transform.Id]
|
|
|
|
define [ForceUpright] : glyph-proc [set this.gizmo : Transform.Id]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export NameUni
|
|
|
|
define [NameUni unicode] : begin
|
|
|
|
define [NameUni unicode] : begin
|
|
|
|
local hex : [unicode.toString 16].toUpperCase
|
|
|
|
local hex : [unicode.toString 16].toUpperCase
|
|
|
|
while (hex.length < 4) : set hex : '0' + hex
|
|
|
|
while (hex.length < 4) : set hex : '0' + hex
|
|
|
|
return : 'uni' + hex
|
|
|
|
return : 'uni' + hex
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export PointingTo
|
|
|
|
define [PointingTo x1 y1 x2 y2 G] : glyph-proc
|
|
|
|
define [PointingTo x1 y1 x2 y2 G] : glyph-proc
|
|
|
|
local giz this.gizmo
|
|
|
|
local giz this.gizmo
|
|
|
|
local g : new-glyph : glyph-proc
|
|
|
|
local g : new-glyph : glyph-proc
|
|
|
@ -616,24 +688,39 @@ glyph-block CommonShapes : begin
|
|
|
|
include giz
|
|
|
|
include giz
|
|
|
|
include g
|
|
|
|
include g
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export WithTransform
|
|
|
|
define [WithTransform tfm gr] : glyph-proc : include : new-glyph : composite-proc gr tfm
|
|
|
|
define [WithTransform tfm gr] : glyph-proc : include : new-glyph : composite-proc gr tfm
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export clear-anchors
|
|
|
|
define [clear-anchors] : glyph-proc
|
|
|
|
define [clear-anchors] : glyph-proc
|
|
|
|
set currentGlyph.markAnchors {.}
|
|
|
|
set currentGlyph.markAnchors {.}
|
|
|
|
set currentGlyph.markBnchors {.}
|
|
|
|
set currentGlyph.markBnchors {.}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export AsRadical
|
|
|
|
define [AsRadical gr] : glyph-proc
|
|
|
|
define [AsRadical gr] : glyph-proc
|
|
|
|
Radical.set currentGlyph
|
|
|
|
Radical.set currentGlyph
|
|
|
|
include gr true true
|
|
|
|
include gr true true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export ExtLineCenter
|
|
|
|
define [ExtLineCenter k sw x1 y1 x2 y2] : dispiro
|
|
|
|
define [ExtLineCenter k sw x1 y1 x2 y2] : dispiro
|
|
|
|
widths.center sw
|
|
|
|
widths.center sw
|
|
|
|
corner [mix x1 x2 (-k)] [mix y1 y2 (-k)]
|
|
|
|
corner [mix x1 x2 (-k)] [mix y1 y2 (-k)]
|
|
|
|
corner [mix x1 x2 (1+k)] [mix y1 y2 (1+k)]
|
|
|
|
corner [mix x1 x2 (1+k)] [mix y1 y2 (1+k)]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export ExtLineLhs
|
|
|
|
define [ExtLineLhs k sw x1 y1 x2 y2] : dispiro
|
|
|
|
define [ExtLineLhs k sw x1 y1 x2 y2] : dispiro
|
|
|
|
widths.lhs sw
|
|
|
|
widths.lhs sw
|
|
|
|
corner [mix x1 x2 (-k)] [mix y1 y2 (-k)]
|
|
|
|
corner [mix x1 x2 (-k)] [mix y1 y2 (-k)]
|
|
|
|
corner [mix x1 x2 (1+k)] [mix y1 y2 (1+k)]
|
|
|
|
corner [mix x1 x2 (1+k)] [mix y1 y2 (1+k)]
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export Rect SquareAt Ring RingAt DotAt RingStroke RingStrokeAt DotStrokeAt CircleRing CircleRingAt CircleDotAt OShapeT OShape OShapeOutline OShapeFlatTB OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterTopSerifAsymmetric CenterBottomSerif CenterBottomSerifAsymmetric DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif NeedSlab NeedNotItalic HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LeftHook FlatSlashShape hookstart hookend FlipAround ScaleAround Realign ForceUpright DiagCor NameUni PointingTo WithTransform clear-anchors OBarLeftToothlessShape OBarLeftRoundedShape OBarRightToothlessShape OBarRightRoundedShape AsRadical ExtLineCenter ExtLineLhs DiagCorDs HCrossBar VERY-FAR MaskAbove MaskBelow MaskLeft MaskRight HalfRectTriangle MaskAboveLine MaskBelowLine MaskLeftLine MaskRightLine
|
|
|
|
# Dot variant constructor
|
|
|
|
|
|
|
|
glyph-block-export DotVariants
|
|
|
|
|
|
|
|
define DotVariants : object
|
|
|
|
|
|
|
|
round { DotAt 1 O }
|
|
|
|
|
|
|
|
square { SquareAt DesignParameters.squareDotScalar 0 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glyph-block-export WithDotVariants
|
|
|
|
|
|
|
|
define [WithDotVariants name unicode F] : begin
|
|
|
|
|
|
|
|
foreach { suffix { DrawAt kDotRadius overshoot } } [Object.entries DotVariants] : do
|
|
|
|
|
|
|
|
create-glyph "\(name).\(suffix)" : F DrawAt kDotRadius overshoot
|
|
|
|
|
|
|
|
select-variant name unicode (follow -- 'punctuationDot')
|
|
|
|