Some more Legacy Computing Symbols (pt 5) (#2220)

* square corners

* double diagonals

* gear and rays, rectangle with bar

* mosaic forms

* delete form

* doc (merged with #2219)
This commit is contained in:
Logo 2024-03-05 02:41:18 +08:00 committed by GitHub
parent 6e79c9e5c7
commit 5cb280849b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 263 additions and 46 deletions

View file

@ -1 +1,26 @@
* Add characters:
- SYMBOL FOR DELETE MEDIUM SHADE FORM (`U+2429`).
- GEAR WITHOUT HUB (`U+26ED`).
- GEAR WITH HANDLES (`U+26EE`).
- MAP SYMBOL FOR LIGHTHOUSE (`U+26EF`).
- THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD (`U+27A2`).
- THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD (`U+27A3`).
- LEFT RAISED OMISSION BRACKET (`U+2E0C`).
- RIGHT RAISED OMISSION BRACKET (`U+2E0C`).
- LEFT LOW PARAPHRASE BRACKET (`U+2E1C`).
- RIGHT LOW PARAPHRASE BRACKET (`U+2E1C`).
- BOX DRAWINGS DOUBLE DIAGONAL UPPER RIGHT TO LOWER LEFT (`U+1CC1F`) (Proposed for Unicode 16; L2/21-235).
- BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO LOWER RIGHT (`U+1CC20`) (Proposed for Unicode 16; L2/21-235).
- EIGHT RAYS INWARD (`U+1CC69`) ... BLACK LARGE CIRCLE MINUS LOWER QUARTER SECTION (`U+1CC6E`) (Proposed for Unicode 16; L2/21-235).
- SQUARE FOUR CORNER SALTIRES (`U+1CC89`) ... INVERSE BLACK DIAMOND (`U+1CC8D`) (Proposed for Unicode 16; L2/21-235).
- WHITE VERTICAL RECTANGLE WITH HORIZONTAL BAR (`U+1CE06`) (Proposed for Unicode 16; L2/21-235).
- NO ONE UNDER EIGHTEEN SYMBOL (`U+1F51E`).
- BLACK HEART (`U+1F5A4`).
- RAISED LEFT SMALL SQUARE BRACKET (`U+1FBCC`) (Proposed for Unicode 16; L2/21-235).
* Add `MOSC` form:
- BLACK UP-POINTING TRIANGLE (`U+25B2`).
- BLACK RIGHT-POINTING TRIANGLE (`U+25B6`).
- BLACK DOWN-POINTING TRIANGLE (`U+25BC`).
- BLACK LEFT-POINTING TRIANGLE (`U+25C0`).
* Fix broken shape of `U+1FB95`, `U+1FB96` and `U+1FB97` (#2218).
* Increase weight for `U+276E`/`U+276F` (#2217). * Increase weight for `U+276E`/`U+276F` (#2217).

View file

@ -12,3 +12,4 @@ export : define [apply] : begin
run-glyph-module "./geometric/masked.mjs" run-glyph-module "./geometric/masked.mjs"
run-glyph-module "./geometric/ballot-box.mjs" run-glyph-module "./geometric/ballot-box.mjs"
run-glyph-module "./geometric/corner-shape.mjs" run-glyph-module "./geometric/corner-shape.mjs"
run-glyph-module "./geometric/square-corners.mjs"

View file

@ -201,14 +201,6 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
StdBlackShape TriangleRTFill 'blackTriangleRT' 0x25E5 StdBlackShape TriangleRTFill 'blackTriangleRT' 0x25E5
ConvexWhitePolygon TriangleRTFill 'whiteTriangleRT' 0x25F9 ConvexWhitePolygon TriangleRTFill 'whiteTriangleRT' 0x25F9
create-glyph [MangleName 'squareCorners'] [MangleUnicode 0x26F6] : glyph-proc
set-width Geom.Width
include : difference
refer-glyph : MangleName 'whiteSquare'
union
intersection [MaskBelow (Geom.MidY + Geom.Size / 3)] [MaskAbove (Geom.MidY - Geom.Size / 3)]
intersection [MaskLeft (Geom.MidX + Geom.Size / 3)] [MaskRight (Geom.MidX - Geom.Size / 3)]
define [SquareOverlap name unicode rev square1 square2] : begin define [SquareOverlap name unicode rev square1 square2] : begin
create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc
set-width Geom.Width set-width Geom.Width
@ -225,25 +217,28 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
SquareOverlap 'overlapBBSquare' 0x2BBC 0 1 1 SquareOverlap 'overlapBBSquare' 0x2BBC 0 1 1
do "Rectangle" do "Rectangle"
define [RectangleFill cx cy r] : spiro-outline define [HoriRectangleFill cx cy r] : spiro-outline
corner (cx - r) (cy + r / 1.5) corner (cx - r) (cy + r / 1.5)
corner (cx + r) (cy + r / 1.5) corner (cx + r) (cy + r / 1.5)
corner (cx + r) (cy - r / 1.5) corner (cx + r) (cy - r / 1.5)
corner (cx - r) (cy - r / 1.5) corner (cx - r) (cy - r / 1.5)
StdBlackShape RectangleFill 'blackRectangle' 0x25AC StdBlackShape HoriRectangleFill 'blackHoriRectangle' 0x25AC
ConvexWhitePolygon RectangleFill 'whiteRectangle' 0x25AD ConvexWhitePolygon HoriRectangleFill 'whiteHoriRectangle' 0x25AD
define [LongRectangleFill cx cy r] : begin define [VertRectangleFill cx cy r] : spiro-outline
define rs : Geom.TallSize / (r * 1.5) corner (cx - r / 1.5) (cy + r)
return : spiro-outline corner (cx + r / 1.5) (cy + r)
corner (cx - r * rs) (cy + r * rs * 1.5) corner (cx + r / 1.5) (cy - r)
corner (cx + r * rs) (cy + r * rs * 1.5) corner (cx - r / 1.5) (cy - r)
corner (cx + r * rs) (cy - r * rs * 1.5)
corner (cx - r * rs) (cy - r * rs * 1.5)
StdBlackShape LongRectangleFill 'blackLongRectangle' 0x25AE StdBlackShape VertRectangleFill 'blackVertRectangle' 0x25AE
ConvexWhitePolygon LongRectangleFill 'whiteLongRectangle' 0x25AF ConvexWhitePolygon VertRectangleFill 'whiteVertRectangle' 0x25AF
create-glyph [MangleName 'whiteVertRectangleBar'] [MangleUnicode 0x1CE06] : glyph-proc
set-width Geom.Width
include : refer-glyph : MangleName 'whiteVertRectangle'
include : HBar.m (Geom.MidX - Geom.Size) (Geom.MidX + Geom.Size) Geom.MidY GeometryStroke
define [ParallelogramFill cx cy r] : begin define [ParallelogramFill cx cy r] : begin
define skew : r * 1 / 4 define skew : r * 1 / 4
@ -502,6 +497,27 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
StdBlackShape CircleInvertInnerShape 'blackInvInnerCircle' null StdBlackShape CircleInvertInnerShape 'blackInvInnerCircle' null
StdWhiteShape CircleInvertInnerShape 'whiteInvInnerCircle' null StdWhiteShape CircleInvertInnerShape 'whiteInvInnerCircle' null
create-glyph [MangleName 'blackCircleMinusQuarterLeft'] [MangleUnicode 0x1CC6B] : glyph-proc
set-width Geom.Width
include : difference
refer-glyph : MangleName 'blackCircle'
spiro-outline [corner (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size)] [corner Geom.MidX Geom.MidY] [corner (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size)]
create-glyph [MangleName 'blackCircleMinusQuarterUp'] [MangleUnicode 0x1CC6C] : glyph-proc
set-width Geom.Width
include : difference
refer-glyph : MangleName 'blackCircle'
spiro-outline [corner (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size)] [corner Geom.MidX Geom.MidY] [corner (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size)]
create-glyph [MangleName 'blackCircleMinusQuarterRight'] [MangleUnicode 0x1CC6D] : glyph-proc
set-width Geom.Width
include : difference
refer-glyph : MangleName 'blackCircle'
spiro-outline [corner (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size)] [corner Geom.MidX Geom.MidY] [corner (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size)]
create-glyph [MangleName 'blackCircleMinusQuarterDown'] [MangleUnicode 0x1CC6E] : glyph-proc
set-width Geom.Width
include : difference
refer-glyph : MangleName 'blackCircle'
spiro-outline [corner (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size)] [corner Geom.MidX Geom.MidY] [corner (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size)]
do "Ellipse" do "Ellipse"
define [EllipseFillT kx ky] : lambda [cx cy r s] : begin define [EllipseFillT kx ky] : lambda [cx cy r s] : begin
define rOrig : r + s define rOrig : r + s

View file

@ -0,0 +1,104 @@
$$include '../../meta/macros.ptl'
import [mix linreg clamp fallback] from "@iosevka/util"
import [DesignParameters] from "../../meta/aesthetics.mjs"
glyph-module
glyph-block Symbol-Geometric-Square-Corners : for-width-kinds WideWidth1
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
define lineWidth : Math.min GeometryStroke ((Geom.Size * 2 - GeometryStroke * 2) * 1 / 11)
define aperature : Geom.Size / 3
do "squared form"
create-glyph [MangleName 'squareCorners'] [MangleUnicode 0x26F6] : glyph-proc
set-width Geom.Width
include : difference
refer-glyph : MangleName 'whiteSquare'
union
intersection [MaskBelow (Geom.MidY + Geom.Size / 3)] [MaskAbove (Geom.MidY - Geom.Size / 3)]
intersection [MaskLeft (Geom.MidX + Geom.Size / 3)] [MaskRight (Geom.MidX - Geom.Size / 3)]
create-glyph [MangleName 'squareCornersSaltires'] [MangleUnicode 0x1CC89] : glyph-proc
set-width Geom.Width
include : intersection
difference
refer-glyph : MangleName 'blackSquare'
union
intersection [MaskBelow (Geom.MidY + Geom.Size / 3)] [MaskAbove (Geom.MidY - Geom.Size / 3)]
intersection [MaskLeft (Geom.MidX + Geom.Size / 3)] [MaskRight (Geom.MidX - Geom.Size / 3)]
union
dispiro [widths.center lineWidth] [flat Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))] [curl (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY]
dispiro [widths.center lineWidth] [flat (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))]
dispiro [widths.center lineWidth] [flat Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))] [curl (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY]
dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))]
dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size)] [curl (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size)]
dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size)] [curl (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size)]
create-glyph [MangleName 'squareCornersDiagonals'] [MangleUnicode 0x1CC8A] : glyph-proc
set-width Geom.Width
include : intersection
refer-glyph : MangleName 'blackSquare'
union
dispiro [widths.lhs lineWidth] [flat Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))] [curl (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY]
dispiro [widths.lhs lineWidth] [flat (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))]
dispiro [widths.lhs lineWidth] [flat Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))] [curl (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY]
dispiro [widths.lhs lineWidth] [flat (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))]
create-glyph [MangleName 'squareCornersTriangles'] [MangleUnicode 0x1CC8B] : glyph-proc
set-width Geom.Width
include : difference
refer-glyph : MangleName 'blackSquare'
spiro-outline
corner Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))
corner (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY
corner Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))
corner (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY
create-glyph [MangleName 'squareAperature'] [MangleUnicode 0x1CC8C] : glyph-proc
set-width Geom.Width
include : refer-glyph : MangleName 'whiteSquare'
include : intersection
refer-glyph : MangleName 'blackSquare'
union
intersection
spiro-outline
corner (Geom.MidX - Geom.Size - aperature) (Geom.MidY + Geom.Size)
corner (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size)
corner (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size - aperature)
dispiro
widths.center lineWidth
flat (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size + aperature)
curl (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size + aperature)
intersection
spiro-outline
corner (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size + aperature)
corner (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size)
corner (Geom.MidX - Geom.Size - aperature) (Geom.MidY - Geom.Size)
dispiro
widths.center lineWidth
flat (Geom.MidX - Geom.Size + aperature) (Geom.MidY + Geom.Size)
curl (Geom.MidX + Geom.Size + aperature) (Geom.MidY - Geom.Size)
intersection
spiro-outline
corner (Geom.MidX + Geom.Size + aperature) (Geom.MidY - Geom.Size)
corner (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size)
corner (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size + aperature)
dispiro
widths.center lineWidth
flat (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size - aperature)
curl (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size - aperature)
intersection
spiro-outline
corner (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size - aperature)
corner (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size)
corner (Geom.MidX + Geom.Size + aperature) (Geom.MidY + Geom.Size)
dispiro
widths.center lineWidth
flat (Geom.MidX - Geom.Size - aperature) (Geom.MidY + Geom.Size)
curl (Geom.MidX + Geom.Size - aperature) (Geom.MidY - Geom.Size)

View file

@ -13,7 +13,8 @@ glyph-block Symbol-Geometric-Sun-And-Gear : for-width-kinds WideWidth1
define Geom : GeometricDim MosaicUnitWidth MosaicWidth define Geom : GeometricDim MosaicUnitWidth MosaicWidth
define Size : GeometricSizes Geom define Size : GeometricSizes Geom
define [EightPointingRaysShape r] : glyph-proc define [EightPointingRaysShape r _r2] : glyph-proc
local r2 : fallback _r2 Geom.Size
foreach [n : range 0 8] : begin foreach [n : range 0 8] : begin
local theta : n / 8 * Math.PI * 2 local theta : n / 8 * Math.PI * 2
local c : Math.cos theta local c : Math.cos theta
@ -21,12 +22,16 @@ glyph-block Symbol-Geometric-Sun-And-Gear : for-width-kinds WideWidth1
include : dispiro include : dispiro
widths.center rayWidth widths.center rayWidth
corner (Geom.MidX + c * r) (Geom.MidY + s * r) corner (Geom.MidX + c * r) (Geom.MidY + s * r)
corner (Geom.MidX + c * Geom.Size) (Geom.MidY + s * Geom.Size) corner (Geom.MidX + c * r2) (Geom.MidY + s * r2)
define rayWidth : AdviceStroke 8 [Math.sqrt Geom.Scalar] define rayWidth : AdviceStroke 8 [Math.sqrt Geom.Scalar]
define rayInnerRadius : Geom.Size * 0.56 define rayInnerRadius : Geom.Size * 0.56
define dotRadius : Geom.Size * 0.44 define dotRadius : Geom.Size * 0.44
define gearRingRad : mix rayInnerRadius Geom.Size 0.3
define handleLength : Geom.Size * 0.5
define rayInwardShrink : Geom.Size * 0.25
create-glyph [MangleName 'blackSunWithRays'] [MangleUnicode 0x2600] : glyph-proc create-glyph [MangleName 'blackSunWithRays'] [MangleUnicode 0x2600] : glyph-proc
set-width Geom.Width set-width Geom.Width
include : EightPointingRaysShape rayInnerRadius include : EightPointingRaysShape rayInnerRadius
@ -35,15 +40,31 @@ glyph-block Symbol-Geometric-Sun-And-Gear : for-width-kinds WideWidth1
set-width Geom.Width set-width Geom.Width
include : EightPointingRaysShape rayInnerRadius include : EightPointingRaysShape rayInnerRadius
include : RingStrokeAt Geom.MidX Geom.MidY dotRadius rayWidth include : RingStrokeAt Geom.MidX Geom.MidY dotRadius rayWidth
create-glyph [MangleName 'gear'] [MangleUnicode 0x2699] : glyph-proc create-glyph [MangleName 'gearWithoutHub'] [MangleUnicode 0x26ED] : glyph-proc
set-width Geom.Width set-width Geom.Width
local gearRingRad : mix rayInnerRadius Geom.Size 0.4
include : EightPointingRaysShape (gearRingRad - rayWidth / 2) include : EightPointingRaysShape (gearRingRad - rayWidth / 2)
include : RingStrokeAt Geom.MidX Geom.MidY gearRingRad rayWidth include : RingStrokeAt Geom.MidX Geom.MidY gearRingRad rayWidth
create-glyph [MangleName 'gearWithHandle'] [MangleUnicode 0x26EE] : glyph-proc
set-width Geom.Width
include : refer-glyph : MangleName 'gearWithoutHub'
include : VBar.r (Geom.MidX + Geom.Size) (Geom.MidY - rayWidth / 2) (Geom.MidY + handleLength) rayWidth
include : VBar.l (Geom.MidX - Geom.Size) (Geom.MidY - handleLength) (Geom.MidY + rayWidth / 2) rayWidth
create-glyph [MangleName 'gear'] [MangleUnicode 0x2699] : glyph-proc
set-width Geom.Width
include : refer-glyph : MangleName 'gearWithoutHub'
include : RingAt Geom.MidX Geom.MidY (0.4 * (gearRingRad - rayWidth)) include : RingAt Geom.MidX Geom.MidY (0.4 * (gearRingRad - rayWidth))
alias [MangleName 'lighthouseSymbol'] 0x26EF [MangleName 'gear']
create-glyph [MangleName 'helm'] [MangleUnicode 0x2388] : glyph-proc create-glyph [MangleName 'helm'] [MangleUnicode 0x2388] : glyph-proc
set-width Geom.Width set-width Geom.Width
local gearRingRad : mix rayInnerRadius Geom.Size 0.4 local gearRingRad : mix rayInnerRadius Geom.Size 0.4
include : EightPointingRaysShape 0 include : EightPointingRaysShape 0
include : RingStrokeAt Geom.MidX Geom.MidY gearRingRad rayWidth include : RingStrokeAt Geom.MidX Geom.MidY gearRingRad rayWidth
include : RingAt Geom.MidX Geom.MidY (1.1 * rayWidth) include : RingAt Geom.MidX Geom.MidY (1.1 * rayWidth)
create-glyph [MangleName 'raysInward'] [MangleUnicode 0x1CC69] : glyph-proc
set-width Geom.Width
include : EightPointingRaysShape (rayInnerRadius - rayInwardShrink) (Geom.Size - rayInwardShrink)
create-glyph [MangleName 'raysOutward'] [MangleUnicode 0x1CC6A] : glyph-proc
set-width Geom.Width
include : EightPointingRaysShape rayInnerRadius Geom.Size

View file

@ -17,7 +17,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
local light : AdviceStroke 3.5 local light : AdviceStroke 3.5
local heavy : Math.max (light * 2) (Width * 0.15) local heavy : Math.max (light * 2) (Width * 0.15)
local midx : MosaicWidth / 2 local midx : mix left right 0.5
local midy : mix bottom top 0.5 local midy : mix bottom top 0.5
define [hline unicode pos] : begin define [hline unicode pos] : begin
@ -94,8 +94,8 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
set-width MosaicWidth set-width MosaicWidth
include : ForceUpright include : ForceUpright
include : VBar.m midx [if d bottom bottom] [if c top top] light include : VBar.m midx [if d bottom bottom] [if c top top] light
local tickleft : if rev midx 0 local tickleft : if rev midx left
local tickright : if rev MosaicWidth midx local tickright : if rev right midx
if a : include : HBar.t tickleft tickright [mix bottom top (1 / 3)] light if a : include : HBar.t tickleft tickright [mix bottom top (1 / 3)] light
if b : include : HBar.t tickleft tickright [mix bottom top (2 / 3)] light if b : include : HBar.t tickleft tickright [mix bottom top (2 / 3)] light
if c : include : HBar.t tickleft tickright top light if c : include : HBar.t tickleft tickright top light
@ -302,7 +302,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
curl midx (midy - bdArcRadius) [heading Upward] curl midx (midy - bdArcRadius) [heading Upward]
arcvh arcvh
flat (midx + bdArcRadius) midy [heading Rightward] flat (midx + bdArcRadius) midy [heading Rightward]
curl MosaicWidth midy [heading Rightward] curl right midy [heading Rightward]
create-glyph [MangleName : NameUni 0x256E] [MangleUnicode 0x256E] : glyph-proc create-glyph [MangleName : NameUni 0x256E] [MangleUnicode 0x256E] : glyph-proc
set-width MosaicWidth set-width MosaicWidth
@ -313,7 +313,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
curl midx (midy - bdArcRadius) [heading Upward] curl midx (midy - bdArcRadius) [heading Upward]
arcvh arcvh
flat (midx - bdArcRadius) midy [heading Leftward] flat (midx - bdArcRadius) midy [heading Leftward]
curl 0 midy [heading Leftward] curl left midy [heading Leftward]
create-glyph [MangleName : NameUni 0x256F] [MangleUnicode 0x256F] : glyph-proc create-glyph [MangleName : NameUni 0x256F] [MangleUnicode 0x256F] : glyph-proc
set-width MosaicWidth set-width MosaicWidth
@ -324,7 +324,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
curl midx (midy + bdArcRadius) [heading Downward] curl midx (midy + bdArcRadius) [heading Downward]
arcvh arcvh
flat (midx - bdArcRadius) midy [heading Leftward] flat (midx - bdArcRadius) midy [heading Leftward]
curl 0 midy [heading Leftward] curl left midy [heading Leftward]
create-glyph [MangleName : NameUni 0x2570] [MangleUnicode 0x2570] : glyph-proc create-glyph [MangleName : NameUni 0x2570] [MangleUnicode 0x2570] : glyph-proc
set-width MosaicWidth set-width MosaicWidth
@ -335,7 +335,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
curl midx (midy + bdArcRadius) [heading Downward] curl midx (midy + bdArcRadius) [heading Downward]
arcvh arcvh
flat (midx + bdArcRadius) midy [heading Rightward] flat (midx + bdArcRadius) midy [heading Rightward]
curl MosaicWidth midy [heading Rightward] curl right midy [heading Rightward]
# Corner Diagonals # Corner Diagonals
create-glyph [MangleName : NameUni 0x2571] [MangleUnicode 0x2571] : glyph-proc create-glyph [MangleName : NameUni 0x2571] [MangleUnicode 0x2571] : glyph-proc
@ -343,16 +343,16 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
include : ForceUpright include : ForceUpright
include : dispiro include : dispiro
widths.center light widths.center light
flat MosaicWidth top flat right top
curl 0 bottom curl left bottom
create-glyph [MangleName : NameUni 0x2572] [MangleUnicode 0x2572] : glyph-proc create-glyph [MangleName : NameUni 0x2572] [MangleUnicode 0x2572] : glyph-proc
set-width MosaicWidth set-width MosaicWidth
include : ForceUpright include : ForceUpright
include : dispiro include : dispiro
widths.center light widths.center light
flat 0 top flat left top
curl MosaicWidth bottom curl right bottom
create-glyph [MangleName : NameUni 0x2573] [MangleUnicode 0x2573] : glyph-proc create-glyph [MangleName : NameUni 0x2573] [MangleUnicode 0x2573] : glyph-proc
set-width MosaicWidth set-width MosaicWidth
@ -501,6 +501,34 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
include : refer-glyph : MangleName : NameUni 0x1FBD0 include : refer-glyph : MangleName : NameUni 0x1FBD0
include : refer-glyph : MangleName : NameUni 0x1FBD2 include : refer-glyph : MangleName : NameUni 0x1FBD2
# Double Diagonals
create-glyph [MangleName : NameUni 0x1CC1F] [MangleUnicode 0x1CC1F] : glyph-proc
set-width MosaicWidth
include : ForceUpright
define offset : (top - bottom) / 4
include : intersection [DiamondMask] : union
dispiro
widths.center light
flat right (top + offset)
curl [mix right left 1.5] ([mix top bottom 1.5] + offset)
dispiro
widths.center light
flat [mix left right 1.5] ([mix bottom top 1.5] - offset)
curl left (bottom - offset)
create-glyph [MangleName : NameUni 0x1CC20] [MangleUnicode 0x1CC20] : glyph-proc
set-width MosaicWidth
include : ForceUpright
define offset : (top - bottom) / 4
include : intersection [DiamondMask] : union
dispiro
widths.center light
flat left (top + offset)
curl [mix left right 1.5] ([mix top bottom 1.5] + offset)
dispiro
widths.center light
flat [mix right left 1.5] ([mix bottom top 1.5] - offset)
curl right (bottom - offset)
create-glyph [MangleName : NameUni 0x1FBAF] [MangleUnicode 0x1FBAF] : glyph-proc create-glyph [MangleName : NameUni 0x1FBAF] [MangleUnicode 0x1FBAF] : glyph-proc
set-width MosaicWidth set-width MosaicWidth

View file

@ -1,6 +1,7 @@
$$include '../../meta/macros.ptl' $$include '../../meta/macros.ptl'
import [mix linreg clamp fallback] from "@iosevka/util" import [mix linreg clamp fallback] from "@iosevka/util"
import as Gr from "@iosevka/glyph/relation"
glyph-module glyph-module
@ -36,11 +37,19 @@ glyph-block Symbol-Geometric-Mosaic-Inverted : for-width-kinds WideWidth1
refer-glyph : MangleName : NameUni 0x2588 refer-glyph : MangleName : NameUni 0x2588
refer-glyph : MangleName 'whiteCircle' refer-glyph : MangleName 'whiteCircle'
# create-glyph [MangleName 'uni1CC8D'] [MangleUnicode 0x1CC8D] : glyph-proc create-glyph [MangleName 'negBlackDiamond'] [MangleUnicode 0x1CC8D] : glyph-proc
set-width MosaicWidth
include : difference
refer-glyph : MangleName 'uni2588'
refer-glyph : MangleName 'blackDiamond'
# create-glyph [MangleName 'negBlackDiamond.mosc'] : glyph-proc
# set-width MosaicWidth # set-width MosaicWidth
# include : ForceUpright
# include : difference # include : difference
# refer-glyph : MangleName 'uni2588' # refer-glyph : MangleName 'uni2588'
# refer-glyph : MangleName 'blackDiamond' # refer-glyph : MangleName 'blockMosaicSmooth22/2486'
# Gr.linkSingleGlyphPairGr glyphStore [MangleName 'negBlackDiamond'] [MangleName 'negBlackDiamond.mosc'] Gr.MosaicForm
create-glyph [MangleName : NameUni 0x1CC8E] [MangleUnicode 0x1CC8E] : glyph-proc create-glyph [MangleName : NameUni 0x1CC8E] [MangleUnicode 0x1CC8E] : glyph-proc
set-width MosaicWidth set-width MosaicWidth

View file

@ -141,6 +141,6 @@ glyph-block Symbol-Mosaic-Powerline : begin
Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleRB'] [MangleName 'powerline/cornerBottomRight'] Gr.MosaicForm Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleRB'] [MangleName 'powerline/cornerBottomRight'] Gr.MosaicForm
Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLB'] [MangleName 'powerline/cornerBottomLeft'] Gr.MosaicForm Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLB'] [MangleName 'powerline/cornerBottomLeft'] Gr.MosaicForm
Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLT'] [MangleName 'powerline/cornerTopLeft'] Gr.MosaicForm Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLT'] [MangleName 'powerline/cornerTopLeft'] Gr.MosaicForm
Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleRT'] [MangleName 'powerline/cornerTopRight'] Gr.MosaicForm Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleRT'] [MangleName 'powerline/cornerTopRight'] Gr.MosaicForm

View file

@ -1,6 +1,7 @@
$$include '../../meta/macros.ptl' $$include '../../meta/macros.ptl'
import [mix linreg clamp fallback] from "@iosevka/util" import [mix linreg clamp fallback] from "@iosevka/util"
import as Gr from "@iosevka/glyph/relation"
glyph-module glyph-module
@ -102,7 +103,7 @@ glyph-block Symbol-Mosaic-Smooth : begin
SmoothMosaic23 0x1FB67 '1473' SmoothMosaic23 0x1FB67 '1473'
define [SmoothMosaic22 unicode pattern] : begin define [SmoothMosaic22 unicode pattern] : begin
create-glyph [MangleName ('blockMosaicSmooth22/' + pattern)] [MangleUnicode unicode] : glyph-proc create-glyph [MangleName ('blockMosaicSmooth22/' + pattern)] [if unicode [MangleUnicode unicode] null] : glyph-proc
set-width MosaicWidth set-width MosaicWidth
include : ForceUpright include : ForceUpright
define corners : [pattern.split ''].map : x => [PatternCorner22 (x - 0)] define corners : [pattern.split ''].map : x => [PatternCorner22 (x - 0)]
@ -118,3 +119,14 @@ glyph-block Symbol-Mosaic-Smooth : begin
SmoothMosaic22 0x1FB6F '579' SmoothMosaic22 0x1FB6F '579'
SmoothMosaic22 0x1FB9A '1379' SmoothMosaic22 0x1FB9A '1379'
SmoothMosaic22 0x1FB9B '1739' SmoothMosaic22 0x1FB9B '1739'
SmoothMosaic22 null '138'
SmoothMosaic22 null '167'
SmoothMosaic22 null '279'
SmoothMosaic22 null '349'
# SmoothMosaic22 null '2486'
Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleUp'] [MangleName 'blockMosaicSmooth22/279'] Gr.MosaicForm
Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleDown'] [MangleName 'blockMosaicSmooth22/138'] Gr.MosaicForm
Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLeft'] [MangleName 'blockMosaicSmooth22/349'] Gr.MosaicForm
Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleRight'] [MangleName 'blockMosaicSmooth22/167'] Gr.MosaicForm
# Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackDiamond'] [MangleName 'blockMosaicSmooth22/2486'] Gr.MosaicForm

View file

@ -46,11 +46,11 @@ glyph-block Symbol-Mosaic-Teletext : begin
include : ForceUpright include : ForceUpright
include : BlockMosaicPattern 2 4 : [pattern.split ''].map : x => x - 1 include : BlockMosaicPattern 2 4 : [pattern.split ''].map : x => x - 1
define [BlockMosaic unicode w h kgap pattern] : begin define [BlockMosaic unicode w h pattern] : begin
create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc
set-width MosaicWidth set-width MosaicWidth
include : ForceUpright include : ForceUpright
include : BlockMosaicPattern w h kgap pattern include : BlockMosaicPattern w h pattern
define [MakeGappedBlockMosaic w h su] : foreach [offset : range 1 [Math.pow 2 (w * h)]] : begin define [MakeGappedBlockMosaic w h su] : foreach [offset : range 1 [Math.pow 2 (w * h)]] : begin
create-glyph [MangleName : NameUni (su + offset)] [MangleUnicode (su + offset)] : glyph-proc create-glyph [MangleName : NameUni (su + offset)] [MangleUnicode (su + offset)] : glyph-proc
@ -354,6 +354,7 @@ glyph-block Symbol-Mosaic-Teletext : begin
BlockMosaic24 0x1CDE4 '1345678' BlockMosaic24 0x1CDE4 '1345678'
BlockMosaic24 0x1CDE5 '2345678' BlockMosaic24 0x1CDE5 '2345678'
BlockMosaic 0x1FB95 4 4 0 {0 2 5 7 8 10 13 15} BlockMosaic 0x2429 4 8 {0 2 5 7 8 10 13 15 16 18 21 23 24 26 29 31}
BlockMosaic 0x1FB96 4 4 0 {1 3 4 6 9 11 12 14} BlockMosaic 0x1FB95 4 4 {0 2 5 7 8 10 13 15}
BlockMosaic 0x1FB97 4 4 0 {4 5 6 7 12 13 14 15} BlockMosaic 0x1FB96 4 4 {1 3 4 6 9 11 12 14}
BlockMosaic 0x1FB97 4 4 {4 5 6 7 12 13 14 15}