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 more Legacy Computing Symbols (pt 7) #2266

Merged
merged 12 commits into from
Mar 29, 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
10 changes: 10 additions & 0 deletions changes/29.0.5.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
* Fix side bearings of multi-dot punctuation (`U+10FB`, `U+2056`, `U+2058`..`205B`, `U+2E2A`..`U+2E2D`) under Quasi-Proportional.
* Fix mapping of DENSE VERTICAL FILL (`U+1CC44`) and DENSE HORIZONTAL FILL (`U+1CC45`).
* Fix glyph visuals:
- MATHEMATICAL RISING DIAGONAL (`U+27CB`).
- MATHEMATICAL FALLING DIAGONAL (`U+27CD`).
Expand All @@ -8,4 +9,13 @@
* Add characters:
- LOWER RIGHT CORNER WITH DOT (`U+27D3`).
- UPPER LEFT CORNER WITH DOT (`U+27D4`).
- UP-POINTING GO-KART (`U+1CC00`) ... VERTICAL RESISTOR SEGMENT (`U+1CC0A`) (Proposed for Unicode 16; L2/21-235).
- LEFT-POINTING DIODE (`U+1CC0E`) ... VERTICAL CAPACITOR (`U+1CC14`) (Proposed for Unicode 16; L2/21-235).
- LOGIC GATE INVERTED INPUTS (`U+1CC17`) ... LOGIC GATE BUFFER WITH INVERTED INPUT (`U+1CC1A`) (Proposed for Unicode 16; L2/21-235).
- LEFT-POINTING ENERGY WAVE (`U+1CC78`) ... DOWN-POINTING ENERGY WAVE (`U+1CC7B`) (Proposed for Unicode 16; L2/21-235).
- WHITE LOWER LEFT POINTER (`U+1CC86`) (Proposed for Unicode 16; L2/21-235).
- WHITE LOWER RIGHT POINTER (`U+1CC87`) (Proposed for Unicode 16; L2/21-235).
- TWO RINGS ALIGNED HORIZONTALLY (`U+1CC88`) (Proposed for Unicode 16; L2/21-235).
- LEFT-POINTING RACING CAR (`U+1CC97`) ... VERTICAL GO-KART (`U+1CC9D`) (Proposed for Unicode 16; L2/21-235).
- TOP LEFT BLACK LEFT-POINTING SMALL TRIANGLE (`U+1CE07`) (Proposed for Unicode 16; L2/21-235).
* Add APL form for WHITE DIAMOND (`U+25C7`).
8 changes: 4 additions & 4 deletions packages/font-glyphs/src/symbol/mosaic/block.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -248,11 +248,11 @@ glyph-block Symbol-Mosaic-Block : begin
set-width MosaicWidth
include : DiagShade 4
include : DiagShade (-4)
create-glyph [MangleName 'denseHoriShade'] [MangleUnicode 0x1CC44] : glyph-proc
create-glyph [MangleName 'denseVertShade'] [MangleUnicode 0x1CC44] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : HShade 8 top bottom left right
create-glyph [MangleName 'denseVertShade'] [MangleUnicode 0x1CC45] : glyph-proc
include : VShade (4 * MosaicWidthScalar) top bottom left right
create-glyph [MangleName 'denseHoriShade'] [MangleUnicode 0x1CC45] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : VShade (4 * MosaicWidthScalar) top bottom left right
include : HShade 8 top bottom left right
1 change: 1 addition & 0 deletions packages/font-glyphs/src/symbol/pictograph.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export : define [apply] : begin
run-glyph-module "./pictograph/metric-marks.mjs"
run-glyph-module "./pictograph/musical.mjs"
run-glyph-module "./pictograph/powerline-and-gui.mjs"
run-glyph-module "./pictograph/schematic.mjs"
run-glyph-module "./pictograph/stick-figure.mjs"
run-glyph-module "./pictograph/suit.mjs"
run-glyph-module "./pictograph/telephone-recorder.mjs"
129 changes: 109 additions & 20 deletions packages/font-glyphs/src/symbol/pictograph/game-sprite.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@ $$include '../../meta/macros.ptl'

import [mix linreg clamp fallback] from "@iosevka/util"
import [Box] from "@iosevka/geometry/box"
import [Transform] from "@iosevka/geometry/transform"

glyph-module

glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Shared-Symbol-Shapes : TriangleShape
glyph-block-import Symbol-Pictograph-Stick-Figure : StickFigureKit WithD4Transform D4Transform
glyph-block-import Symbol-Geometric-Shared : GeometricDim
glyph-block-import Symbol-Mosaic-Block : HShade VShade
Expand All @@ -26,7 +28,10 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
define uiRight : right - SB

define Geom : GeometricDim MosaicUnitWidth MosaicWidth
define graphicSw : AdviceStroke 3.5
define smallGraphicSw : AdviceStroke 3.5 : Math.sqrt (MosaicWidthScalar / 2)

define squareBox : new Box Geom.Top Geom.Bot Geom.Left Geom.Right
define [SidewaysBox top bottom left right _left2 _right2] : begin
local left2 : fallback _left2 left
local right2 : fallback _right2 right
Expand All @@ -40,6 +45,69 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
midX - newHeight / 2
midX + newHeight / 2

do "Top-down Vehicles"
define scaffold : object
set scaffold.xWheelFront : 1.5 / 9
set scaffold.xWheel : 1 / 9
set scaffold.xWheelRear : 0.5 / 9
set scaffold.wheelDiam : 3 / 9
set scaffold.yAxle : scaffold.wheelDiam / 2

define [Car box fJut fWindow fSymmetric rot bodyWidth _sw] : glyph-proc
local yBody : if fJut 0 scaffold.yAxle
local xFront : if fSymmetric scaffold.xWheel scaffold.xWheelFront
local xRear : if fSymmetric scaffold.xWheel scaffold.xWheelRear

local sw : fallback _sw smallGraphicSw
local tfm : D4Transform midX rot 0
local Kit : StickFigureKit box tfm sw
local Kit2 : if [not fSymmetric] Kit : StickFigureKit box tfm (sw * 2)

local shape : union
Kit2.RoundSeg xFront 1 xFront (1 - scaffold.wheelDiam)
Kit.RoundSeg xFront (1 - scaffold.yAxle) (1 - xFront) (1 - scaffold.yAxle)
Kit2.RoundSeg (1 - xFront) 1 (1 - xFront) (1 - scaffold.wheelDiam)
Kit2.RoundSeg xRear scaffold.wheelDiam xRear 0
Kit.RoundSeg xRear (scaffold.yAxle) (1 - xRear) (scaffold.yAxle)
Kit2.RoundSeg (1 - xRear) scaffold.wheelDiam (1 - xRear) 0
if (bodyWidth <= 0)
Kit.RoundSeg (1 / 2) (1 - yBody) (1 / 2) (yBody)
Kit.Box (1 / 2 - bodyWidth / 2) (1 - yBody) (1 / 2 + bodyWidth / 2) (yBody)

if fWindow
include : difference shape
Kit.Box (1 / 2 - bodyWidth / 6) (1 - yBody - 1 / 9) (1 / 2 + bodyWidth / 6) (1 - yBody - 3 / 9)
include shape

create-glyph [MangleName 'goKartUp'] [MangleUnicode 0x1CC00] : glyph-proc
set-width MosaicWidth
include : Car squareBox 0 0 0 0 0
create-glyph [MangleName 'goKartRight'] [MangleUnicode 0x1CC01] : glyph-proc
set-width MosaicWidth
include : Car squareBox 0 0 0 3 0
create-glyph [MangleName 'raceCarLeft'] [MangleUnicode 0x1CC97] : glyph-proc
set-width MosaicWidth
include : Car squareBox 1 1 1 1 (3 / 9)
create-glyph [MangleName 'raceCarUp'] [MangleUnicode 0x1CC98] : glyph-proc
set-width MosaicWidth
include : Car squareBox 1 1 1 0 (3 / 9)
create-glyph [MangleName 'raceCarRight'] [MangleUnicode 0x1CC99] : glyph-proc
set-width MosaicWidth
include : Car squareBox 1 1 1 3 (3 / 9)
create-glyph [MangleName 'raceCarDown'] [MangleUnicode 0x1CC9A] : glyph-proc
set-width MosaicWidth
include : Car squareBox 1 1 1 2 (3 / 9)
create-glyph [MangleName 'raceCarHori'] [MangleUnicode 0x1CC9B] : glyph-proc
set-width MosaicWidth
include : Car squareBox 1 0 1 1 (3 / 9)
create-glyph [MangleName 'raceCarVert'] [MangleUnicode 0x1CC9C] : glyph-proc
set-width MosaicWidth
include : Car squareBox 1 0 1 0 (3 / 9)
create-glyph [MangleName 'goKartVert'] [MangleUnicode 0x1CC9D] : glyph-proc
set-width MosaicWidth
include : Car squareBox 0 0 1 0 (3 / 9)


do "Stick Man"
define [StickManScaffold top bottom left right _sw] : begin
local baseHeight : uiTop - uiBot
Expand All @@ -51,7 +119,7 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
bot bottom
left left
right right
stroke : fallback _sw : AdviceStroke 3.5
stroke : fallback _sw graphicSw
xMiddle : mix left right 0.5
yMiddle : mix top bottom 0.5
armRaiseK 0.4
Expand Down Expand Up @@ -101,31 +169,14 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
define dressRight : scaffold.xRightFoot + scaffold.stroke / 2
include : StickManArms scaffold p kl kr
include : VBar.m scaffold.xMiddle [scaffold.yShoulder p] scaffold.yNeck
include : intersection
spiro-outline
corner scaffold.xMiddle ([scaffold.yShoulder p] + scaffold.stroke)
corner dressRight dressBottom
corner dressLeft dressBottom
union
dispiro
widths.rhs scaffold.stroke
corner scaffold.xMiddle ([scaffold.yShoulder p] + scaffold.stroke)
corner dressRight dressBottom
dispiro
widths.rhs scaffold.stroke
corner dressRight dressBottom
corner dressLeft dressBottom
dispiro
widths.rhs scaffold.stroke
corner dressLeft dressBottom
corner scaffold.xMiddle ([scaffold.yShoulder p] + scaffold.stroke)
include : TriangleShape scaffold.xMiddle ([scaffold.yShoulder p] + scaffold.stroke) dressRight dressBottom dressLeft dressBottom scaffold.stroke
include : VBar.m [mix dressLeft dressRight 0.3] scaffold.bot (dressBottom - O) scaffold.stroke
include : VBar.m [mix dressLeft dressRight 0.7] scaffold.bot (dressBottom - O) scaffold.stroke


define scaffold : StickManScaffold uiTop uiBot uiLeft uiRight
define hBox : SidewaysBox uiTop uiBot uiLeft uiRight
define hScaffold : StickManScaffold hBox.top hBox.bottom hBox.left hBox.right [AdviceStroke 3.5 : Math.sqrt (MosaicWidthScalar / 2)]
define hScaffold : StickManScaffold hBox.top hBox.bottom hBox.left hBox.right smallGraphicSw

create-glyph [MangleName 'stickMan'] [MangleUnicode 0x1FBC5] : glyph-proc
set-width MosaicWidth
Expand All @@ -152,6 +203,44 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
set-width MosaicWidth
include : StickManDressBody scaffold 0 0

do "Energy Waves"
define [LeftEnergyWave top bottom left right] : glyph-proc
local midX : mix left right 0.5
local midY : mix top bottom 0.5

include : difference
spiro-outline
corner right top
corner (midX + 0.01) top
flat midX top
archv.superness 2
g4 left midY
arcvh.superness 2
curl midX bottom
corner (midX + 0.01) bottom
corner right bottom
spiro-outline
corner right [mix top bottom 0.1]
flat [mix left right 0.9] [mix top bottom 0.1]
archv.superness 2
g4 midX midY
arcvh.superness 2
curl [mix left right 0.9] [mix top bottom 0.9]
corner right [mix top bottom 0.9]

create-glyph [MangleName "energyWaveLeft"] [MangleUnicode 0x1CC78] : glyph-proc
set-width MosaicWidth
include : LeftEnergyWave Geom.Top Geom.Bot Geom.Left Geom.Right
create-glyph [MangleName "energyWaveUp"] [MangleUnicode 0x1CC79] : glyph-proc
set-width MosaicWidth
include : WithD4Transform midX 3 0 : lambda [] : LeftEnergyWave Geom.Top Geom.Bot Geom.Left Geom.Right
create-glyph [MangleName "energyWaveRight"] [MangleUnicode 0x1CC7A] : glyph-proc
set-width MosaicWidth
include : WithD4Transform midX 2 0 : lambda [] : LeftEnergyWave Geom.Top Geom.Bot Geom.Left Geom.Right
create-glyph [MangleName "energyWaveDown"] [MangleUnicode 0x1CC7B] : glyph-proc
set-width MosaicWidth
include : WithD4Transform midX 1 0 : lambda [] : LeftEnergyWave Geom.Top Geom.Bot Geom.Left Geom.Right

do "Square Spiral"
define directions : list
* {.dx 1 .dy 0 .heading Rightward}
Expand Down
20 changes: 20 additions & 0 deletions packages/font-glyphs/src/symbol/pictograph/powerline-and-gui.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ glyph-module
glyph-block Symbol-Pictograph-Powerline-And-GUI : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Shared-Symbol-Shapes : TriangleShape
glyph-block-import Symbol-Pictograph-Stick-Figure : StickFigureKit PointingHandShape
glyph-block-import Symbol-Geometric-Shared : GeometricDim

define uiFigTop : mix ParenBot ParenTop 0.95
define uiFigBot : mix ParenBot ParenTop 0.05
Expand Down Expand Up @@ -97,6 +99,8 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin
frameRight - [HSwToV GeometryStroke] - [HSwToV progressBarGap]

for-width-kinds WideWidth4
define Geom : GeometricDim MosaicUnitWidth MosaicWidth

do "arrowheadShapedPointer"
define scaffold : object
set scaffold.top : mix uiFigBot uiFigTop 0.85
Expand All @@ -113,6 +117,22 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin
corner [mix scaffold.xLeft scaffold.xRight (2 / 5)] [mix scaffold.bot scaffold.top (1 / 4)]
corner scaffold.xLeft scaffold.bot

do "Pointer"
define pointerTop : mix uiFigBot uiFigTop (0.25 * MosaicWidthScalar)
define fineStroke : AdviceStroke 3.5 : Math.sqrt (MosaicWidthScalar / 2)

create-glyph [MangleName "whiteLowerLeftPointer"] [MangleUnicode 0x1CC86] : glyph-proc
set-width MosaicWidth
include : TriangleShape SB uiFigBot SB pointerTop (MosaicWidth - SB) uiFigBot fineStroke

create-glyph [MangleName "whiteLowerRightPointer"] [MangleUnicode 0x1CC87] : glyph-proc
set-width MosaicWidth
include : TriangleShape SB uiFigBot (MosaicWidth - SB) pointerTop (MosaicWidth - SB) uiFigBot fineStroke

create-glyph [MangleName "topLeftBlackSmallTriangleLeft"] [MangleUnicode 0x1CE07] : glyph-proc
set-width MosaicWidth
include : with-transform [ApparentTranslate (-MosaicWidth / 4) ((CAP - Geom.MidY) * 0.3 + AccentStackOffset / 2)] : refer-glyph : MangleName 'blackSmallTriangleLeft'

do "Split graphics"
define [BoxN n] : new Box uiFigTop uiFigBot SB (MosaicWidth * n - SB)

Expand Down
Loading