Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some box drawing + Terminal Arrows #2207

Merged
merged 1 commit into from
Feb 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions changes/29.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,19 @@
- RIGHT VERTICAL RULER SEGMENT (`U+1CC06`) (Purposed for Unicode 16; L2/21-235).
- LOWER RIGHT RULER SEGMENT (`U+1CC07`) (Purposed for Unicode 16; L2/21-235).
- BOX DRAWINGS LIGHT HORIZONTAL AND UPPER RIGHT (`U+1CC1B`) ... BOX DRAWINGS LIGHT BOTTOM AND LOWER LEFT (`U+1CC1E`) (Purposed for Unicode 16; L2/21-235).
- BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER RIGHT (`U+1FBD8`) ... BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO LOWER LEFT (`U+1FBDB`) (Purposed for Unicode 16; L2/21-235).
- SEPARATED BLOCK QUADRANT-1 (`U+1CC21`) ... SEPARATED BLOCK QUADRANT-1234 (`U+1CC2F`) (Purposed for Unicode 16; L2/21-235).
- BLACK NEUTRAL FACE (`U+1CC6F`) (Purposed for Unicode 16; L2/21-235).
- VERTICAL LINE WITH FOUR TICK MARKS (`U+1CC90`) (Purposed for Unicode 16; L2/21-235).
- HORIZONTAL LINE WITH FOUR TICK MARKS (`U+1CC91`) (Purposed for Unicode 16; L2/21-235).
- BOX DRAWINGS DOUBLE DIAGONAL LOWER LEFT TO MIDDLE CENTRE TO LOWER RIGHT (`U+1CE09`) (Purposed for Unicode 16; L2/21-235).
- BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER RIGHT (`U+1CE0A`) (Purposed for Unicode 16; L2/21-235).
- SEPARATED BLOCK SEXTANT-1 (`U+1CE51`) ... SEPARATED BLOCK SEXTANT-123456 (`U+1CE8F`) (Purposed for Unicode 16; L2/21-235).
- UPPER LEFT ONE SIXTEENTH BLOCK (`U+1CE90`) ... LOWER HALF RIGHT ONE QUARTER BLOCK (`U+1CEAF`) (Purposed for Unicode 16; L2/21-235).
- FOLDER (`U+1F5C0`) (#2181).
- NEGATIVE SQUARED LEFTWARDS ARROW (`U+1F8B4`) ... NEGATIVE SQUARED DOWNWARDS ARROW (`U+1F8B7`) (Purposed for Unicode 16; L2/21-235).
- DOWNWARDS BLACK ARROW TO BAR (`U+1F8B3`) ... SOUTH WEST ARROW FROM BAR (`U+1F8BB`) (Purposed for Unicode 16; L2/21-235).
- LEFT TWO THIRDS BLOCK (`U+1FBCE`) (Purposed for Unicode 16; L2/21-235).
- LEFT ONE THIRD BLOCK (`U+1FBCF`) (Purposed for Unicode 16; L2/21-235).
- BOX DRAWINGS LIGHT DIAGONAL MIDDLE RIGHT TO LOWER LEFT (`U+1FBD0`) ... BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE RIGHT TO LOWER LEFT (`U+1FBDF`) (Purposed for Unicode 16; L2/21-235).
- UPPER CENTRE ONE QUARTER BLOCK (`U+1FBE4`) ... MIDDLE RIGHT ONE QUARTER BLOCK (`U+1FBE7`) (Purposed for Unicode 16; L2/21-235).
* Fix a disjoint stroke of Outlined Curly `Z` under some weights (#2195).
* Unify diagonal box drawings' angles (#2197).
Expand Down
43 changes: 28 additions & 15 deletions packages/font-glyphs/src/symbol/arrow.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,22 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
include : ArrowHead x1 y1 x2 y2 size
include : ArrowBar x1 y1 x2 y2 halfArrowSw

define [ArrowTailBarShape x1 y1 x2 y2 size sw] : begin
return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin
dispiro
widths.rhs sw
flat mag size
curl mag (-size)

define [ArrowFromBarShape x1 y1 x2 y2 size] : glyph-proc
local width : Math.abs (x1 - x2)
local height : Math.abs (y1 - y2)
local barShrink : size * [Math.min (width / height) (height / width)]
local p : barShrink / [Math.hypot width height]
include : ArrowHead x1 y1 x2 y2 size
include : ArrowBar [mix x1 x2 p] [mix y1 y2 p] x2 y2 halfArrowSw
include : ArrowTailBarShape [mix x1 x2 p] [mix y1 y2 p] x2 y2 size fine

define [ThinArrowShape x1 y1 x2 y2 size] : glyph-proc
include : ArrowHead x1 y1 x2 y2 size
include : ArrowBar x1 y1 x2 y2 (0.5 * [mix fine terminal 0.5])
Expand Down Expand Up @@ -933,12 +949,18 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
MkArrow ArrowShape [MangleName 'arrowRightK'] null arrowSB SymbolMid (arrowRSB - fine) SymbolMid
MkArrow ArrowShape [MangleName 'arrowUpK'] null arrowMidX arrowBot arrowMidX (arrowTop - fine)
MkArrow ArrowShape [MangleName 'arrowDownK'] null arrowMidX arrowTop arrowMidX (arrowBot + fine)
MkArrow ArrowShape [MangleName 'arrowLeftSK'] null (arrowRSB - fine / 2) SymbolMid arrowSB SymbolMid
MkArrow ArrowShape [MangleName 'arrowRightSK'] null (arrowSB + fine / 2) SymbolMid arrowRSB SymbolMid
MkArrow ArrowShape [MangleName 'arrowUpSK'] null arrowMidX (arrowBot + fine / 2) arrowMidX arrowTop
MkArrow ArrowShape [MangleName 'arrowDownSK'] null arrowMidX (arrowTop - fine / 2) arrowMidX arrowBot
MkArrow [ThickArrowShape 'black'] [MangleName 'blackArrowDownK'] null arrowMidX arrowTop arrowMidX (arrowBot + fine)
MkArrow ArrowShape [MangleName 'arrowUpLeftTK'] null arrowRSB arrowBot arrowSB (arrowTop - [Math.max (arrowWidth / 8) (fine * 1.5)])

MkArrow ArrowFromBarShape [MangleName 'barArrowLeft'] [MangleUnicode 0x21A4] arrowRSB SymbolMid arrowSB SymbolMid
MkArrow ArrowFromBarShape [MangleName 'barArrowUp'] [MangleUnicode 0x21A5] arrowMidX arrowBot arrowMidX arrowTop
MkArrow ArrowFromBarShape [MangleName 'barArrowRight'] [MangleUnicode 0x21A6] arrowSB SymbolMid arrowRSB SymbolMid
MkArrow ArrowFromBarShape [MangleName 'barArrowDown'] [MangleUnicode 0x21A7] arrowMidX arrowTop arrowMidX arrowBot
MkArrow ArrowFromBarShape [MangleName 'barArrowUpLeft'] [MangleUnicode 0x1F8B8] arrowDiagRSB arrowDiagBot arrowDiagSB arrowDiagTop
MkArrow ArrowFromBarShape [MangleName 'barArrowUpRight'] [MangleUnicode 0x1F8B9] arrowDiagSB arrowDiagBot arrowDiagRSB arrowDiagTop
MkArrow ArrowFromBarShape [MangleName 'barArrowDownRight'] [MangleUnicode 0x1F8BA] arrowDiagSB arrowDiagTop arrowDiagRSB arrowDiagBot
MkArrow ArrowFromBarShape [MangleName 'barArrowDownLeft'] [MangleUnicode 0x1F8BB] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot

create-glyph [MangleName 'arrowBarLeft'] [MangleUnicode 0x21E4] : composite-proc
refer-glyph : MangleName 'arrowLeftK'
VBar.m arrowSB (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine
Expand All @@ -951,18 +973,9 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
create-glyph [MangleName 'arrowBarDown'] [MangleUnicode 0x2913] : composite-proc
refer-glyph : MangleName 'arrowDownK'
HBar.m (arrowMidX - arrowHeadSize) (arrowMidX + arrowHeadSize) arrowBot fine
create-glyph [MangleName 'barArrowLeft'] [MangleUnicode 0x21A4] : composite-proc
refer-glyph : MangleName 'arrowLeftSK'
VBar.m arrowRSB (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine
create-glyph [MangleName 'barArrowRight'] [MangleUnicode 0x21A6] : composite-proc
refer-glyph : MangleName 'arrowRightSK'
VBar.m arrowSB (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine
create-glyph [MangleName 'barArrowUp'] [MangleUnicode 0x21A5] : composite-proc
refer-glyph : MangleName 'arrowUpSK'
create-glyph [MangleName 'blackArrowBarDown'] [MangleUnicode 0x1F8B3] : composite-proc
refer-glyph : MangleName 'blackArrowDownK'
HBar.m (arrowMidX - arrowHeadSize) (arrowMidX + arrowHeadSize) arrowBot fine
create-glyph [MangleName 'barArrowDown'] [MangleUnicode 0x21A7] : composite-proc
refer-glyph : MangleName 'arrowDownSK'
HBar.m (arrowMidX - arrowHeadSize) (arrowMidX + arrowHeadSize) arrowTop fine

MkArrow [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowLeftHRK'] null arrowRSB SymbolMid (arrowSB + fine) SymbolMid
MkArrow [HalfArrowShape LHSHalfArrowHead] [MangleName 'arrowLeftHLK'] null arrowRSB SymbolMid (arrowSB + fine) SymbolMid
Expand Down
2 changes: 1 addition & 1 deletion packages/font-glyphs/src/symbol/geometric/plain.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
local offsetY : space * 0.45
include : union
with-transform [Translate (-offsetX) (-offsetY)] : refer-glyph : MangleName [if square1 'blackMediumSquare' 'whiteMediumSquare']
with-transform [Translate offsetX offsetY] : refer-glyph : MangleName [if square2 'blackMediumSquare' 'whiteMediumSquare']
with-transform [Translate offsetX offsetY] : refer-glyph : MangleName [if square2 'blackMediumSquare' 'whiteMediumSquare']

SquareOverlap 'overlapWWSquareRev' 0x29C9 1 0 0
SquareOverlap 'overlapWWSquare' 0x2BBA 0 0 0
Expand Down
73 changes: 61 additions & 12 deletions packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -431,27 +431,76 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
DiamondBoxDrawing 0x1FBAD 1 1 1 0
DiamondBoxDrawing 0x1FBAE 1 1 1 1

create-glyph [MangleName : NameUni 0x1CE09] [MangleUnicode 0x1CE09] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x1FBA7
include : refer-glyph : MangleName : NameUni 0x1FBDA

create-glyph [MangleName : NameUni 0x1FBBD] [MangleUnicode 0x1FBBD] : glyph-proc
create-glyph [MangleName : NameUni 0x1CE0A] [MangleUnicode 0x1CE0A] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : difference
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2573
include : refer-glyph : MangleName : NameUni 0x1FBA6
include : refer-glyph : MangleName : NameUni 0x1FBD8

create-glyph [MangleName : NameUni 0x1FBBE] [MangleUnicode 0x1FBBE] : glyph-proc
# Corner-to-Edge Diagonal
define [VDiagonal unicode sx sy] : begin
local fUpwards : sy === bottom
create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : intersection
if fUpwards [MaskBelow top] [MaskAbove bottom]
dispiro
widths.center light
flat sx sy
curl [mix sx midx 1.5] [mix sy [if fUpwards top bottom] 1.5]

define [HDiagonal unicode sx sy] : begin
local fRightwards : sx === left
create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : intersection
if fRightwards [MaskLeft right] [MaskRight left]
dispiro
widths.center light
flat sx sy
curl [mix sx [if fRightwards right left] 1.5] [mix sy midy 1.5]

HDiagonal 0x1FBD0 left bottom
HDiagonal 0x1FBD1 right top
HDiagonal 0x1FBD2 left top
HDiagonal 0x1FBD3 right bottom
VDiagonal 0x1FBD4 left top
VDiagonal 0x1FBD5 right bottom
VDiagonal 0x1FBD6 right top
VDiagonal 0x1FBD7 left bottom

create-glyph [MangleName : NameUni 0x1FBDC] [MangleUnicode 0x1FBDC] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x1FBD4
include : refer-glyph : MangleName : NameUni 0x1FBD6

create-glyph [MangleName : NameUni 0x1FBDD] [MangleUnicode 0x1FBDD] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : difference
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588
glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBA3
include : refer-glyph : MangleName : NameUni 0x1FBD1
include : refer-glyph : MangleName : NameUni 0x1FBD3

create-glyph [MangleName : NameUni 0x1FBBF] [MangleUnicode 0x1FBBF] : glyph-proc
create-glyph [MangleName : NameUni 0x1FBDE] [MangleUnicode 0x1FBDE] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : difference
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588
glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBAE
include : refer-glyph : MangleName : NameUni 0x1FBD5
include : refer-glyph : MangleName : NameUni 0x1FBD7

create-glyph [MangleName : NameUni 0x1FBDF] [MangleUnicode 0x1FBDF] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x1FBD0
include : refer-glyph : MangleName : NameUni 0x1FBD2


create-glyph [MangleName : NameUni 0x1FBAF] [MangleUnicode 0x1FBAF] : glyph-proc
set-width MosaicWidth
Expand Down
27 changes: 25 additions & 2 deletions packages/font-glyphs/src/symbol/mosaic/inverted.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,9 @@ glyph-block Symbol-Geometric-Mosaic-Inverted : for-width-kinds WideWidth1

create-glyph [MangleName : NameUni 0x25D9] [MangleUnicode 0x25D9] : glyph-proc
set-width MosaicWidth
include : refer-glyph : MangleName : NameUni 0x25DA
include : refer-glyph : MangleName : NameUni 0x25DB
include : difference
refer-glyph : MangleName : NameUni 0x2588
refer-glyph : MangleName 'whiteCircle'

# create-glyph [MangleName 'uni1CC8D'] [MangleUnicode 0x1CC8D] : glyph-proc
# set-width MosaicWidth
Expand Down Expand Up @@ -75,3 +76,25 @@ glyph-block Symbol-Geometric-Mosaic-Inverted : for-width-kinds WideWidth1
include : difference
refer-glyph : MangleName : NameUni 0x2588
refer-glyph : MangleName 'arrowDown'

# Box Drawing
create-glyph [MangleName : NameUni 0x1FBBD] [MangleUnicode 0x1FBBD] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : difference
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2573

create-glyph [MangleName : NameUni 0x1FBBE] [MangleUnicode 0x1FBBE] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : difference
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588
glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBA3

create-glyph [MangleName : NameUni 0x1FBBF] [MangleUnicode 0x1FBBF] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : difference
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588
glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBAE