Collection of mostly technical symbols (#2297)
* minor fixes * Dentistry Symbols * A few technical symbols * Monostable, Bell, Fuse, Ground * Half check mark * Geometric-like shapes * Ballot-box like shapes * doc
This commit is contained in:
parent
45e1e597d5
commit
f245368ccf
16 changed files with 341 additions and 35 deletions
|
@ -1,6 +1,24 @@
|
||||||
* Refine shape of `U+1CC09`, `U+1CC0A`, `U+1CC10` and `U+1CC11`.
|
* Refine shape of `U+1CC09`, `U+1CC0A`, `U+1CC10` and `U+1CC11`.
|
||||||
* Refine terminal shape of Schwa and Reversed Lower E (`U+018F`, `U+0258`..`U+025A`, `U+04D8`..`U+04D9`) under italics.
|
* Refine terminal shape of Schwa and Reversed Lower E (`U+018F`, `U+0258`..`U+025A`, `U+04D8`..`U+04D9`) under italics.
|
||||||
* Add characters:
|
* Add characters:
|
||||||
|
- ARC (`U+2312`).
|
||||||
|
- SEGMENT (`U+2313`).
|
||||||
|
- SECTOR (`U+2314`).
|
||||||
|
- NOT CHECK MARK (`U+237B`).
|
||||||
|
- BELL SYMBOL (`U+237E`).
|
||||||
|
- VERTICAL LINE WITH MIDDLE DOT (`U+237F`).
|
||||||
|
- WHITE SQUARE WITH CENTRE VERTICAL LINE (`U+2385`).
|
||||||
|
- MONOSTABLE SYMBOL (`U+238D`).
|
||||||
|
- DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT (`U+23BE`) ... DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT (`U+23CC`).
|
||||||
|
- EARTH GROUND (`U+23DA`).
|
||||||
|
- FUSE (`U+23DB`).
|
||||||
|
- WHITE TRAPEZIUM (`U+23E2`).
|
||||||
|
- STRAIGHTNESS (`U+23E4`).
|
||||||
|
- FLATNESS (`U+23E5`).
|
||||||
|
- UP ARROWHEAD IN A RECTANGLE BOX (`U+2BB9`).
|
||||||
|
- BALLOT BOX WITH LIGHT X (`U+2BBD`).
|
||||||
|
- CIRCLED X (`U+2BBE`).
|
||||||
|
- CIRCLED BOLD X (`U+2BBF`).
|
||||||
- LEFT-FACING SNAKE HEAD WITH OPEN MOUTH (`U+1CC70`) ... DOWN-FACING SNAKE HEAD WITH CLOSED MOUTH (`U+1CC77`) (Proposed for Unicode 16; L2/21-235).
|
- LEFT-FACING SNAKE HEAD WITH OPEN MOUTH (`U+1CC70`) ... DOWN-FACING SNAKE HEAD WITH CLOSED MOUTH (`U+1CC77`) (Proposed for Unicode 16; L2/21-235).
|
||||||
- UPPER LEFT QUADRANT FACE WITH OPEN EYES (`U+1CCA6`) ... BOTTOM HALF FORWARD-FACING RUNNER FRAME-4 (`U+1CDF4`) (Proposed for Unicode 16; L2/21-235).
|
- UPPER LEFT QUADRANT FACE WITH OPEN EYES (`U+1CCA6`) ... BOTTOM HALF FORWARD-FACING RUNNER FRAME-4 (`U+1CDF4`) (Proposed for Unicode 16; L2/21-235).
|
||||||
- TOP HALF FLAILING ROBOT FRAME-1 (`U+1CDF6`) (Proposed for Unicode 16; L2/21-235).
|
- TOP HALF FLAILING ROBOT FRAME-1 (`U+1CDF6`) (Proposed for Unicode 16; L2/21-235).
|
||||||
|
|
|
@ -625,6 +625,7 @@ glyph-block AutoBuild-Enclosure : begin
|
||||||
list 0xA9 {'C'} WideWidth2
|
list 0xA9 {'C'} WideWidth2
|
||||||
list 0x1F12F {'revC'} WideWidth2
|
list 0x1F12F {'revC'} WideWidth2
|
||||||
list 0x2117 {'P'} WideWidth2
|
list 0x2117 {'P'} WideWidth2
|
||||||
|
# list 0x267E {'infty'} WideWidth1
|
||||||
list 0x1F10E {'ccCcwArrow'} WideWidth2
|
list 0x1F10E {'ccCcwArrow'} WideWidth2
|
||||||
list 0x1F16F {'ccHumanFigure'} WideWidth2
|
list 0x1F16F {'ccHumanFigure'} WideWidth2
|
||||||
list 0x1F1AD {'M'} WideWidth2
|
list 0x1F1AD {'M'} WideWidth2
|
||||||
|
|
|
@ -139,7 +139,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin
|
||||||
select-variant 'grek/smcpGamma' 0x1D26 (shapeFrom -- 'cyrl/ghe.upright') (follow -- 'grek/Gamma')
|
select-variant 'grek/smcpGamma' 0x1D26 (shapeFrom -- 'cyrl/ghe.upright') (follow -- 'grek/Gamma')
|
||||||
select-variant 'cyrl/ge' 0x491
|
select-variant 'cyrl/ge' 0x491
|
||||||
select-variant 'cyrl/gheMidHook' 0x495 (follow -- 'cyrl/ghe.upright')
|
select-variant 'cyrl/gheMidHook' 0x495 (follow -- 'cyrl/ghe.upright')
|
||||||
|
|
||||||
create-glyph "grek/digamma.serifless" : glyph-proc
|
create-glyph "grek/digamma.serifless" : glyph-proc
|
||||||
include : MarkSet.p
|
include : MarkSet.p
|
||||||
include : GammaShape XH Descender SLAB-NONE
|
include : GammaShape XH Descender SLAB-NONE
|
||||||
|
|
|
@ -14,9 +14,33 @@ glyph-block Symbol-Geometric-Ballot-Box : for-width-kinds WideWidth1
|
||||||
|
|
||||||
alias [MangleName 'ballotBox'] [MangleUnicode 0x2610] [MangleName 'whiteSquare']
|
alias [MangleName 'ballotBox'] [MangleUnicode 0x2610] [MangleName 'whiteSquare']
|
||||||
|
|
||||||
|
define [CrossMark cx cy size sw] : glyph-proc
|
||||||
|
include : dispiro
|
||||||
|
widths.center sw
|
||||||
|
corner (cx - size) (cy - size)
|
||||||
|
corner (cx + size) (cy + size)
|
||||||
|
include : dispiro
|
||||||
|
widths.center sw
|
||||||
|
corner (cx + size) (cy - size)
|
||||||
|
corner (cx - size) (cy + size)
|
||||||
|
|
||||||
|
define [UpArrowMark cx cy size sw] : glyph-proc
|
||||||
|
local size2 : size / 1.5
|
||||||
|
include : intersection [MaskLeft cx] : dispiro
|
||||||
|
widths.center sw
|
||||||
|
corner (cx - size2 * 2) (cy - size2)
|
||||||
|
corner (cx + size2) (cy + size2 * 2)
|
||||||
|
include : intersection [MaskRight cx] : dispiro
|
||||||
|
widths.center sw
|
||||||
|
corner (cx - size2) (cy + size2 * 2)
|
||||||
|
corner (cx + size2 * 2) (cy - size2)
|
||||||
|
|
||||||
define bbGap : Math.max (Geom.Size / 6) [AdviceStroke 5 Geom.Scalar]
|
define bbGap : Math.max (Geom.Size / 6) [AdviceStroke 5 Geom.Scalar]
|
||||||
define swMark : Math.min GeometryStroke : AdviceStroke 5 Geom.Scalar
|
define swMark : Math.min GeometryStroke : AdviceStroke 5 Geom.Scalar
|
||||||
|
define lightSwMark : UnicodeWeightGrade 3 Geom.Scalar
|
||||||
|
define boldSwMark : UnicodeWeightGrade 7 Geom.Scalar
|
||||||
define bbSize : Geom.Size - bbGap - swMark * 0.75
|
define bbSize : Geom.Size - bbGap - swMark * 0.75
|
||||||
|
define circXSize : (Geom.Size - bbGap) * [Math.sqrt 0.5] - swMark * 0.75
|
||||||
|
|
||||||
create-glyph [MangleName 'checkedBallotBox'] [MangleUnicode 0x2611] : glyph-proc
|
create-glyph [MangleName 'checkedBallotBox'] [MangleUnicode 0x2611] : glyph-proc
|
||||||
local k1 0.4
|
local k1 0.4
|
||||||
|
@ -36,11 +60,58 @@ glyph-block Symbol-Geometric-Ballot-Box : for-width-kinds WideWidth1
|
||||||
|
|
||||||
create-glyph [MangleName 'crossBallotBox'] [MangleUnicode 0x2612] : glyph-proc
|
create-glyph [MangleName 'crossBallotBox'] [MangleUnicode 0x2612] : glyph-proc
|
||||||
include [refer-glyph : MangleName 'whiteSquare'] AS_BASE ALSO_METRICS
|
include [refer-glyph : MangleName 'whiteSquare'] AS_BASE ALSO_METRICS
|
||||||
include : dispiro
|
include : CrossMark Geom.MidX Geom.MidY bbSize swMark
|
||||||
widths.center swMark
|
|
||||||
corner (Geom.MidX - bbSize) (Geom.MidY - bbSize)
|
create-glyph [MangleName 'lightCrossBallotBox'] [MangleUnicode 0x2BBD] : glyph-proc
|
||||||
corner (Geom.MidX + bbSize) (Geom.MidY + bbSize)
|
include [refer-glyph : MangleName 'whiteSquare'] AS_BASE ALSO_METRICS
|
||||||
include : dispiro
|
include : CrossMark Geom.MidX Geom.MidY bbSize lightSwMark
|
||||||
widths.center swMark
|
|
||||||
corner (Geom.MidX + bbSize) (Geom.MidY - bbSize)
|
create-glyph [MangleName 'crossCircle'] [MangleUnicode 0x2BBE] : glyph-proc
|
||||||
corner (Geom.MidX - bbSize) (Geom.MidY + bbSize)
|
include [refer-glyph : MangleName 'whiteCircle'] AS_BASE ALSO_METRICS
|
||||||
|
include : CrossMark Geom.MidX Geom.MidY circXSize swMark
|
||||||
|
|
||||||
|
create-glyph [MangleName 'boldCrossCircle'] [MangleUnicode 0x2BBF] : glyph-proc
|
||||||
|
include [refer-glyph : MangleName 'whiteCircle'] AS_BASE ALSO_METRICS
|
||||||
|
include : CrossMark Geom.MidX Geom.MidY circXSize boldSwMark
|
||||||
|
|
||||||
|
do "Delete Symbols"
|
||||||
|
glyph-block-import Symbol-Geometric-Shared : ConvexPolygonOutline
|
||||||
|
|
||||||
|
define delGap : Math.max (Geom.Size / 6) [AdviceStroke 5 Geom.Scalar]
|
||||||
|
define delSize : (Geom.Size - delGap) / 1.5 - swMark * 0.75
|
||||||
|
|
||||||
|
define [RightFingerpostFill cx cy r] : begin
|
||||||
|
define skew : r * 1 / 4
|
||||||
|
return : spiro-outline
|
||||||
|
corner (cx - r) (cy + r / 1.5)
|
||||||
|
corner (cx + r - skew) (cy + r / 1.5)
|
||||||
|
corner (cx + r + skew) cy
|
||||||
|
corner (cx + r - skew) (cy - r / 1.5)
|
||||||
|
corner (cx - r) (cy - r / 1.5)
|
||||||
|
|
||||||
|
define [LeftFingerpostFill cx cy r] : begin
|
||||||
|
define skew : r * 1 / 4
|
||||||
|
return : spiro-outline
|
||||||
|
corner (cx + r) (cy - r / 1.5)
|
||||||
|
corner (cx + r) (cy + r / 1.5)
|
||||||
|
corner (cx - r + skew) (cy + r / 1.5)
|
||||||
|
corner (cx - r - skew) cy
|
||||||
|
corner (cx - r + skew) (cy - r / 1.5)
|
||||||
|
|
||||||
|
create-glyph [MangleName 'UpArrowInRectangle'] [MangleUnicode 0x2BB9] : glyph-proc
|
||||||
|
include [refer-glyph : MangleName 'whiteHoriRectangle'] AS_BASE ALSO_METRICS
|
||||||
|
include : UpArrowMark Geom.MidX Geom.MidY delSize swMark
|
||||||
|
|
||||||
|
create-glyph [MangleName 'xInRectangle'] [MangleUnicode 0x2327] : glyph-proc
|
||||||
|
include [refer-glyph : MangleName 'whiteHoriRectangle'] AS_BASE ALSO_METRICS
|
||||||
|
include : CrossMark Geom.MidX Geom.MidY delSize swMark
|
||||||
|
|
||||||
|
create-glyph [MangleName 'deleteRight'] [MangleUnicode 0x2326] : glyph-proc
|
||||||
|
set-width Geom.Width
|
||||||
|
include : ConvexPolygonOutline [new-glyph : RightFingerpostFill Geom.MidX Geom.MidY Geom.Size] GeometryStroke
|
||||||
|
include : CrossMark Geom.MidX Geom.MidY delSize swMark
|
||||||
|
|
||||||
|
create-glyph [MangleName 'deleteLeft'] [MangleUnicode 0x232B] : glyph-proc
|
||||||
|
set-width Geom.Width
|
||||||
|
include : ConvexPolygonOutline [new-glyph : LeftFingerpostFill Geom.MidX Geom.MidY Geom.Size] GeometryStroke
|
||||||
|
include : CrossMark Geom.MidX Geom.MidY delSize swMark
|
||||||
|
|
|
@ -2,7 +2,7 @@ $$include '../../meta/macros.ptl'
|
||||||
|
|
||||||
glyph-module
|
glyph-module
|
||||||
|
|
||||||
glyph-block Symbol-Geometric-Checking-Marks : begin
|
glyph-block Symbol-Geometric-Corner-Shape: begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
|
|
||||||
|
|
|
@ -293,7 +293,43 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
|
||||||
WaxingMoonMask
|
WaxingMoonMask
|
||||||
FlipAround Geom.MidX Geom.MidY
|
FlipAround Geom.MidX Geom.MidY
|
||||||
|
|
||||||
|
do "Partial White Circle"
|
||||||
|
local yOffset : -Geom.Size / 2
|
||||||
|
|
||||||
|
create-glyph [MangleName 'arc'] [MangleUnicode 0x2312] : glyph-proc
|
||||||
|
set-width Geom.Width
|
||||||
|
include : with-transform [ApparentTranslate 0 yOffset] : intersection
|
||||||
|
MaskAbove Geom.MidY
|
||||||
|
refer-glyph [MangleName 'whiteCircle']
|
||||||
|
|
||||||
|
create-glyph [MangleName 'segment'] [MangleUnicode 0x2313] : glyph-proc
|
||||||
|
set-width Geom.Width
|
||||||
|
include : with-transform [ApparentTranslate 0 yOffset] : intersection
|
||||||
|
MaskAbove Geom.MidY
|
||||||
|
union
|
||||||
|
refer-glyph [MangleName 'whiteCircle']
|
||||||
|
intersection
|
||||||
|
refer-glyph [MangleName 'blackCircle']
|
||||||
|
HBar.b Geom.Left Geom.Right Geom.MidY GeometryStroke
|
||||||
|
|
||||||
|
create-glyph [MangleName 'sector'] [MangleUnicode 0x2314] : glyph-proc
|
||||||
|
set-width Geom.Width
|
||||||
|
include : with-transform [ApparentTranslate 0 yOffset] : intersection
|
||||||
|
spiro-outline
|
||||||
|
corner Geom.MidX Geom.MidY
|
||||||
|
corner Geom.Right Geom.Top
|
||||||
|
corner Geom.Left Geom.Top
|
||||||
|
union
|
||||||
|
refer-glyph [MangleName 'whiteCircle']
|
||||||
|
intersection
|
||||||
|
refer-glyph [MangleName 'blackCircle']
|
||||||
|
union
|
||||||
|
dispiro [widths.lhs GeometryStroke] [corner Geom.MidX Geom.MidY] [corner Geom.Right Geom.Top]
|
||||||
|
dispiro [widths.rhs GeometryStroke] [corner Geom.MidX Geom.MidY] [corner Geom.Left Geom.Top]
|
||||||
|
|
||||||
do "Miscellaneous"
|
do "Miscellaneous"
|
||||||
|
glyph-block-import Symbol-Punctuation-Bar : BarShape
|
||||||
|
|
||||||
create-glyph [MangleName 'uni2389'] [MangleUnicode 0x2389] : glyph-proc
|
create-glyph [MangleName 'uni2389'] [MangleUnicode 0x2389] : glyph-proc
|
||||||
define shiftUp : ApparentTranslate 0
|
define shiftUp : ApparentTranslate 0
|
||||||
Math.max
|
Math.max
|
||||||
|
@ -342,3 +378,8 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
|
||||||
union
|
union
|
||||||
ExtLineLhs 4 OperatorStroke (Geom.MidX - Geom.Size) Geom.MidY Geom.MidX (Geom.MidY - Geom.Size)
|
ExtLineLhs 4 OperatorStroke (Geom.MidX - Geom.Size) Geom.MidY Geom.MidX (Geom.MidY - Geom.Size)
|
||||||
ExtLineLhs 4 OperatorStroke Geom.MidX (Geom.MidY - Geom.Size) (Geom.MidX + Geom.Size) Geom.MidY
|
ExtLineLhs 4 OperatorStroke Geom.MidX (Geom.MidY - Geom.Size) (Geom.MidX + Geom.Size) Geom.MidY
|
||||||
|
|
||||||
|
create-glyph [MangleName 'whiteSquareVertLine'] [MangleUnicode 0x2385] : glyph-proc
|
||||||
|
set-width Geom.Width
|
||||||
|
include : refer-glyph : MangleName 'whiteSquare'
|
||||||
|
include : BarShape Geom.MidX ParenTop ParenBot
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
$$include '../../meta/macros.ptl'
|
$$include '../../meta/macros.ptl'
|
||||||
|
|
||||||
import [OCCURRENT_PRECISION] from "@iosevka/geometry/curve-util"
|
|
||||||
import [mix linreg clamp fallback] from "@iosevka/util"
|
import [mix linreg clamp fallback] from "@iosevka/util"
|
||||||
import [DesignParameters] from "../../meta/aesthetics.mjs"
|
import [DesignParameters] from "../../meta/aesthetics.mjs"
|
||||||
|
|
||||||
|
@ -9,7 +8,7 @@ glyph-module
|
||||||
glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
|
glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes
|
glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes ConvexPolygonOutline
|
||||||
|
|
||||||
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
|
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
|
||||||
define Size : GeometricSizes Geom
|
define Size : GeometricSizes Geom
|
||||||
|
@ -39,8 +38,6 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
|
||||||
s * Geom.Size * [fallback pp.size 1] - in * sw
|
s * Geom.Size * [fallback pp.size 1] - in * sw
|
||||||
in * sw
|
in * sw
|
||||||
|
|
||||||
define [pointsAreNotClose a b] : begin
|
|
||||||
return : [Math.abs (a.x - b.x)] > OCCURRENT_PRECISION || [Math.abs (a.y - b.y)] > OCCURRENT_PRECISION
|
|
||||||
define [ConvexWhitePolygonImpl fn props] : begin
|
define [ConvexWhitePolygonImpl fn props] : begin
|
||||||
local pp : fallback props {.}
|
local pp : fallback props {.}
|
||||||
local sh : new-glyph : fn
|
local sh : new-glyph : fn
|
||||||
|
@ -48,33 +45,25 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
|
||||||
fallback pp.cy Geom.MidY
|
fallback pp.cy Geom.MidY
|
||||||
Geom.Size * [fallback pp.size 1]
|
Geom.Size * [fallback pp.size 1]
|
||||||
begin 0
|
begin 0
|
||||||
local outlines : glyph-proc : begin
|
return : ConvexPolygonOutline sh [fallback pp.sw GeometryStroke]
|
||||||
set this.gizmo : Translate 0 0
|
|
||||||
foreach c [items-of : sh.geometry.toContours] : foreach j [range 0 c.length] : begin
|
|
||||||
local a c.[if j (j - 1) (c.length - 1)]
|
|
||||||
local b c.(j)
|
|
||||||
if [pointsAreNotClose a b] : include : dispiro
|
|
||||||
disable-contrast
|
|
||||||
widths.center ([fallback pp.sw GeometryStroke] * 2)
|
|
||||||
corner [mix a.x b.x (-2)] [mix a.y b.y (-2)]
|
|
||||||
corner [mix a.x b.x (+3)] [mix a.y b.y (+3)]
|
|
||||||
|
|
||||||
return : intersection sh outlines
|
|
||||||
|
|
||||||
define [StdWhiteShape fn name unicode props] : begin
|
define [StdWhiteShape fn name unicode props] : 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
|
||||||
include : StdWhiteShapeImpl fn 1 0 1 props
|
include : StdWhiteShapeImpl fn 1 0 1 props
|
||||||
|
|
||||||
|
define [InnerShapeSize props] : begin
|
||||||
|
local pp : fallback props {.}
|
||||||
|
return : [fallback pp.innerSize 0.5] * (Geom.Size * [fallback pp.size 1] - [fallback pp.sw GeometryStroke])
|
||||||
|
|
||||||
define [StdWhiteContainingBlackShape fn name unicode props] : begin
|
define [StdWhiteContainingBlackShape fn name unicode props] : begin
|
||||||
local pp : fallback props {.}
|
local pp : fallback props {.}
|
||||||
create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc
|
create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc
|
||||||
set-width Geom.Width
|
set-width Geom.Width
|
||||||
local sw : fallback pp.sw GeometryStroke
|
|
||||||
include : fn
|
include : fn
|
||||||
fallback pp.cx Geom.MidX
|
fallback pp.cx Geom.MidX
|
||||||
fallback pp.cy Geom.MidY
|
fallback pp.cy Geom.MidY
|
||||||
[fallback pp.innerSize 0.5] * (Geom.Size * [fallback pp.size 1] - sw)
|
InnerShapeSize pp
|
||||||
begin 0
|
begin 0
|
||||||
include : StdWhiteShapeImpl fn 1 0 1 props
|
include : StdWhiteShapeImpl fn 1 0 1 props
|
||||||
|
|
||||||
|
@ -86,7 +75,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
|
||||||
include : fn
|
include : fn
|
||||||
fallback pp.cx Geom.MidX
|
fallback pp.cx Geom.MidX
|
||||||
fallback pp.cy Geom.MidY
|
fallback pp.cy Geom.MidY
|
||||||
[fallback pp.innerSize 0.5] * (Geom.Size * [fallback pp.size 1] - sw)
|
InnerShapeSize pp
|
||||||
begin 0
|
begin 0
|
||||||
include : ConvexWhitePolygonImpl fn props
|
include : ConvexWhitePolygonImpl fn props
|
||||||
|
|
||||||
|
@ -255,6 +244,18 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
|
||||||
StdBlackShape ParallelogramFill 'blackParallelogram' 0x25B0
|
StdBlackShape ParallelogramFill 'blackParallelogram' 0x25B0
|
||||||
ConvexWhitePolygon ParallelogramFill 'whiteParallelogram' 0x25B1
|
ConvexWhitePolygon ParallelogramFill 'whiteParallelogram' 0x25B1
|
||||||
|
|
||||||
|
alias [MangleName 'flatness'] [MangleUnicode 0x23E5] [MangleName 'whiteParallelogram']
|
||||||
|
|
||||||
|
define [TrapeziumFill cx cy r] : begin
|
||||||
|
define skew : r * 1 / 4
|
||||||
|
return : spiro-outline
|
||||||
|
corner (cx - r) (cy + r / 1.5)
|
||||||
|
corner (cx + r - skew) (cy + r / 1.5)
|
||||||
|
corner (cx + r) (cy - r / 1.5)
|
||||||
|
corner (cx - r) (cy - r / 1.5)
|
||||||
|
|
||||||
|
ConvexWhitePolygon TrapeziumFill 'whiteTrapezium' 0x23E2
|
||||||
|
|
||||||
do "Triangles"
|
do "Triangles"
|
||||||
define triangleOvershoot : 2.1 / [Math.sqrt 3]
|
define triangleOvershoot : 2.1 / [Math.sqrt 3]
|
||||||
define [TriangleUpFill cx cy size] : spiro-outline
|
define [TriangleUpFill cx cy size] : spiro-outline
|
||||||
|
@ -601,3 +602,8 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
|
||||||
|
|
||||||
StdBlackShape RightArrowHeadShape 'blackArrowHeadRight' 0x27A4 Size.Oblique
|
StdBlackShape RightArrowHeadShape 'blackArrowHeadRight' 0x27A4 Size.Oblique
|
||||||
StdWhiteShape RightArrowHeadShape 'whiteArrowHeadRight' null Size.Oblique
|
StdWhiteShape RightArrowHeadShape 'whiteArrowHeadRight' null Size.Oblique
|
||||||
|
|
||||||
|
do "Other Polygon"
|
||||||
|
create-glyph [MangleName 'straightness'] [MangleUnicode 0x23E4] : glyph-proc
|
||||||
|
set-width Geom.Width
|
||||||
|
include : HBar.m Geom.Left Geom.Right Geom.MidY GeometryStroke
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
$$include '../../meta/macros.ptl'
|
$$include '../../meta/macros.ptl'
|
||||||
|
|
||||||
|
import [OCCURRENT_PRECISION] from "@iosevka/geometry/curve-util"
|
||||||
import [mix linreg clamp fallback] from "@iosevka/util"
|
import [mix linreg clamp fallback] from "@iosevka/util"
|
||||||
import [DesignParameters] from "../../meta/aesthetics.mjs"
|
import [DesignParameters] from "../../meta/aesthetics.mjs"
|
||||||
|
|
||||||
|
@ -57,3 +58,20 @@ glyph-block Symbol-Geometric-Shared : begin
|
||||||
TinyInner { .innerSize (1 / 4) }
|
TinyInner { .innerSize (1 / 4) }
|
||||||
SmallInner { .innerSize (1 / 3) }
|
SmallInner { .innerSize (1 / 3) }
|
||||||
MediumInner { .innerSize (2 / 3) }
|
MediumInner { .innerSize (2 / 3) }
|
||||||
|
|
||||||
|
glyph-block-export ConvexPolygonOutline
|
||||||
|
define [pointsAreNotClose a b] : begin
|
||||||
|
return : [Math.abs (a.x - b.x)] > OCCURRENT_PRECISION || [Math.abs (a.y - b.y)] > OCCURRENT_PRECISION
|
||||||
|
define [ConvexPolygonOutline shape sw] : begin
|
||||||
|
local outlines : glyph-proc : begin
|
||||||
|
set this.gizmo : Translate 0 0
|
||||||
|
foreach c [items-of : shape.geometry.toContours] : foreach j [range 0 c.length] : begin
|
||||||
|
local a c.[if j (j - 1) (c.length - 1)]
|
||||||
|
local b c.(j)
|
||||||
|
if [pointsAreNotClose a b] : include : dispiro
|
||||||
|
disable-contrast
|
||||||
|
widths.center (sw * 2)
|
||||||
|
corner [mix a.x b.x (-2)] [mix a.y b.y (-2)]
|
||||||
|
corner [mix a.x b.x (+3)] [mix a.y b.y (+3)]
|
||||||
|
|
||||||
|
return : intersection shape outlines
|
||||||
|
|
|
@ -27,6 +27,10 @@ glyph-block Symbol-Math-Other : begin
|
||||||
flat SB [mix SymbolMid TackBot 0.5]
|
flat SB [mix SymbolMid TackBot 0.5]
|
||||||
curl RightSB [mix SymbolMid TackTop 0.5]
|
curl RightSB [mix SymbolMid TackTop 0.5]
|
||||||
|
|
||||||
|
create-glyph 'vertLineWithDot' 0x237F : glyph-proc
|
||||||
|
include : refer-glyph 'bar'
|
||||||
|
include : refer-glyph 'interpunct'
|
||||||
|
|
||||||
create-glyph 'barStroke' 0x27CA : glyph-proc
|
create-glyph 'barStroke' 0x27CA : glyph-proc
|
||||||
include : refer-glyph 'stile'
|
include : refer-glyph 'stile'
|
||||||
include : HBar.m [mix SB RightSB 0.1] [mix SB RightSB 0.9] SymbolMid OverlayStroke
|
include : HBar.m [mix SB RightSB 0.1] [mix SB RightSB 0.9] SymbolMid OverlayStroke
|
||||||
|
|
|
@ -6,6 +6,7 @@ export : define [apply] : begin
|
||||||
run-glyph-module "./mosaic/teletext.mjs"
|
run-glyph-module "./mosaic/teletext.mjs"
|
||||||
run-glyph-module "./mosaic/smooth.mjs"
|
run-glyph-module "./mosaic/smooth.mjs"
|
||||||
run-glyph-module "./mosaic/box-drawing.mjs"
|
run-glyph-module "./mosaic/box-drawing.mjs"
|
||||||
|
run-glyph-module "./mosaic/dentistry.mjs"
|
||||||
run-glyph-module "./mosaic/split-graphic.mjs"
|
run-glyph-module "./mosaic/split-graphic.mjs"
|
||||||
run-glyph-module "./mosaic/large-type.mjs"
|
run-glyph-module "./mosaic/large-type.mjs"
|
||||||
run-glyph-module "./mosaic/powerline.mjs"
|
run-glyph-module "./mosaic/powerline.mjs"
|
||||||
|
|
|
@ -534,5 +534,5 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
|
||||||
set-width MosaicWidth
|
set-width MosaicWidth
|
||||||
include : ForceUpright
|
include : ForceUpright
|
||||||
include : intersection
|
include : intersection
|
||||||
glyph-proc : include : refer-glyph : MangleName : NameUni 0x253C
|
refer-glyph : MangleName : NameUni 0x253C
|
||||||
Rect [mix bottom top 0.35] [mix bottom top 0.65] 0 MosaicWidth
|
Rect [mix bottom top 0.35] [mix bottom top 0.65] 0 MosaicWidth
|
||||||
|
|
105
packages/font-glyphs/src/symbol/mosaic/dentistry.ptl
Normal file
105
packages/font-glyphs/src/symbol/mosaic/dentistry.ptl
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
$$include '../../meta/macros.ptl'
|
||||||
|
|
||||||
|
import [mix linreg clamp fallback] from "@iosevka/util"
|
||||||
|
import [DesignParameters] from "../../meta/aesthetics.mjs"
|
||||||
|
|
||||||
|
glyph-module
|
||||||
|
|
||||||
|
glyph-block Symbol-Mosaic-Dentistry : begin
|
||||||
|
glyph-block-import CommonShapes
|
||||||
|
glyph-block-import Common-Derivatives
|
||||||
|
glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade
|
||||||
|
glyph-block-import Mark-Above : TildeShape
|
||||||
|
|
||||||
|
define boxDrawingStroke : AdviceStroke 3.5
|
||||||
|
|
||||||
|
for-width-kinds WideWidth4
|
||||||
|
create-glyph [MangleName 'vertAndTopRightLine'] [MangleUnicode 0x23BE] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x23BA
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x23B8
|
||||||
|
create-glyph [MangleName 'vertAndBottomRightLine'] [MangleUnicode 0x23BF] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x23BD
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x23B8
|
||||||
|
create-glyph [MangleName 'vertAndTopLeftLine'] [MangleUnicode 0x23CB] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x23BA
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x23B9
|
||||||
|
create-glyph [MangleName 'vertAndBottomLeftLine'] [MangleUnicode 0x23CC] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x23BD
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x23B9
|
||||||
|
|
||||||
|
for-width-kinds WideWidth1
|
||||||
|
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
|
||||||
|
|
||||||
|
define [WaveShape] : TildeShape
|
||||||
|
Geom.MidY + Geom.Size / 2
|
||||||
|
Geom.MidY - Geom.Size / 2
|
||||||
|
* Geom.Left
|
||||||
|
* Geom.Right
|
||||||
|
boxDrawingStroke / 2
|
||||||
|
|
||||||
|
create-glyph [MangleName 'vertAndTopLine'] [MangleUnicode 0x23C9] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x2502
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x23BA
|
||||||
|
create-glyph [MangleName 'vertAndBottomLine'] [MangleUnicode 0x23CA] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x2502
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x23BD
|
||||||
|
|
||||||
|
create-glyph [MangleName 'vertLineWithCircle'] [MangleUnicode 0x23C0] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x2502
|
||||||
|
include : refer-glyph : MangleName 'whiteCircle'
|
||||||
|
create-glyph [MangleName 'vertAndTopLineWithCircle'] [MangleUnicode 0x23C1] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName 'vertAndTopLine'
|
||||||
|
include : refer-glyph : MangleName 'whiteCircle'
|
||||||
|
create-glyph [MangleName 'vertAndBottomLineWithCircle'] [MangleUnicode 0x23C2] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName 'vertAndBottomLine'
|
||||||
|
include : refer-glyph : MangleName 'whiteCircle'
|
||||||
|
|
||||||
|
create-glyph [MangleName 'vertLineWithTriangle'] [MangleUnicode 0x23C3] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x2502
|
||||||
|
include : refer-glyph : MangleName 'whiteTriangleUp'
|
||||||
|
create-glyph [MangleName 'vertAndTopLineWithTriangle'] [MangleUnicode 0x23C4] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName 'vertAndTopLine'
|
||||||
|
include : refer-glyph : MangleName 'whiteTriangleUp'
|
||||||
|
create-glyph [MangleName 'vertAndBottomLineWithTriangle'] [MangleUnicode 0x23C5] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName 'vertAndBottomLine'
|
||||||
|
include : refer-glyph : MangleName 'whiteTriangleUp'
|
||||||
|
|
||||||
|
create-glyph [MangleName 'vertLineWithWave'] [MangleUnicode 0x23C6] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x2502
|
||||||
|
include : WaveShape
|
||||||
|
create-glyph [MangleName 'vertAndTopLineWithWave'] [MangleUnicode 0x23C7] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName 'vertAndTopLine'
|
||||||
|
include : WaveShape
|
||||||
|
create-glyph [MangleName 'vertAndBottomLineWithWave'] [MangleUnicode 0x23C8] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : refer-glyph : MangleName 'vertAndBottomLine'
|
||||||
|
include : WaveShape
|
|
@ -134,7 +134,7 @@ glyph-block Symbol-Mosaic-Split-Graphic : begin
|
||||||
corner (legRight - legWidth / 3) bot
|
corner (legRight - legWidth / 3) bot
|
||||||
corner (legRight - legWidth * 2 / 3) bot
|
corner (legRight - legWidth * 2 / 3) bot
|
||||||
corner (legRight - legWidth) tvBot
|
corner (legRight - legWidth) tvBot
|
||||||
|
|
||||||
include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 1) scaffold.dotSize
|
include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 1) scaffold.dotSize
|
||||||
include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 2) scaffold.dotSize
|
include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 2) scaffold.dotSize
|
||||||
include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 3) scaffold.dotSize
|
include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 3) scaffold.dotSize
|
||||||
|
@ -186,7 +186,7 @@ glyph-block Symbol-Mosaic-Split-Graphic : begin
|
||||||
include : HBar.b left right bot graphicSw
|
include : HBar.b left right bot graphicSw
|
||||||
include : VBar.l left bot cpuTop graphicSw
|
include : VBar.l left bot cpuTop graphicSw
|
||||||
include : VBar.r right bot cpuTop graphicSw
|
include : VBar.r right bot cpuTop graphicSw
|
||||||
|
|
||||||
include : HBar.m keyLeft (dotX - scaffold.dotSize / 2 - scaffold.keyInset) dotY graphicSw
|
include : HBar.m keyLeft (dotX - scaffold.dotSize / 2 - scaffold.keyInset) dotY graphicSw
|
||||||
include : DotAt dotX dotY scaffold.dotSize
|
include : DotAt dotX dotY scaffold.dotSize
|
||||||
|
|
||||||
|
@ -209,8 +209,8 @@ glyph-block Symbol-Mosaic-Split-Graphic : begin
|
||||||
list 2 13 15
|
list 2 13 15
|
||||||
list 2 17 19
|
list 2 17 19
|
||||||
list 2 21 23
|
list 2 21 23
|
||||||
list 2 25 28
|
list 2 25 28
|
||||||
list 1 0 4
|
list 1 0 4
|
||||||
list 1 6 8
|
list 1 6 8
|
||||||
list 1 10 12
|
list 1 10 12
|
||||||
list 1 14 16
|
list 1 14 16
|
||||||
|
|
|
@ -59,6 +59,15 @@ glyph-block Symbol-Pictograph-Checking-Marks : begin
|
||||||
alsoThru 0.47 0.5
|
alsoThru 0.47 0.5
|
||||||
g4 ptRSB [mix ptBot ptTop 0.05]
|
g4 ptRSB [mix ptBot ptTop 0.05]
|
||||||
|
|
||||||
|
create-glyph [MangleName 'halfCheck'] [MangleUnicode 0x237B] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : refer-glyph : MangleName : NameUni 0x2713
|
||||||
|
include : dispiro
|
||||||
|
widths.center lightSw
|
||||||
|
g4 [mix ptSB ptRSB 0.5] [mix ptBot ptTop 0.82]
|
||||||
|
alsoThru 0.47 0.5
|
||||||
|
g4 ptRSB [mix ptBot ptTop 0.42]
|
||||||
|
|
||||||
do "Ext angle brackets"
|
do "Ext angle brackets"
|
||||||
define Geom : GeometricDim Width Width
|
define Geom : GeometricDim Width Width
|
||||||
define mediumSw : UnicodeWeightGrade 5 Geom.Scalar
|
define mediumSw : UnicodeWeightGrade 5 Geom.Scalar
|
||||||
|
|
|
@ -238,7 +238,7 @@ glyph-block Symbol-Pictograph-Robot-And-Human : begin
|
||||||
include : if (side === SIDE.RIGHT)
|
include : if (side === SIDE.RIGHT)
|
||||||
HBar.b legLeft (legLeft + footLen - [HSwToV PictographSw]) bot PictographSw
|
HBar.b legLeft (legLeft + footLen - [HSwToV PictographSw]) bot PictographSw
|
||||||
HBar.b (legLeft - footLen) legLeft bot PictographSw
|
HBar.b (legLeft - footLen) legLeft bot PictographSw
|
||||||
include : VBar.l legRight bot pelvis PictographSw
|
include : VBar.l legRight bot pelvis PictographSw
|
||||||
include : if (side === SIDE.LEFT)
|
include : if (side === SIDE.LEFT)
|
||||||
HBar.b (legRight - footLen + [HSwToV PictographSw]) legRight bot PictographSw
|
HBar.b (legRight - footLen + [HSwToV PictographSw]) legRight bot PictographSw
|
||||||
HBar.b legRight (legRight + footLen) bot PictographSw
|
HBar.b legRight (legRight + footLen) bot PictographSw
|
||||||
|
|
|
@ -45,6 +45,38 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin
|
||||||
arcvh 32 2.0
|
arcvh 32 2.0
|
||||||
close
|
close
|
||||||
|
|
||||||
|
do "Monostable and Bell"
|
||||||
|
create-glyph [MangleName 'monostable'] [MangleUnicode 0x238D] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : HBar.b Geom.Left (Geom.MidX - Geom.Size * 0.5) Geom.Bot boxDrawingStroke
|
||||||
|
include : VBar.m (Geom.MidX - Geom.Size * 0.5) Geom.Bot Geom.Top boxDrawingStroke
|
||||||
|
include : HBar.t (Geom.MidX - Geom.Size * 0.5) (Geom.MidX + Geom.Size * 0.5) Geom.Top boxDrawingStroke
|
||||||
|
include : VBar.m (Geom.MidX + Geom.Size * 0.5) Geom.Bot Geom.Top boxDrawingStroke
|
||||||
|
include : HBar.b (Geom.MidX + Geom.Size * 0.5) Geom.Right Geom.Bot boxDrawingStroke
|
||||||
|
|
||||||
|
create-glyph [MangleName 'bellSymbol'] [MangleUnicode 0x237E] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : intersection
|
||||||
|
MaskBelow Geom.MidY
|
||||||
|
refer-glyph : MangleName 'monostable'
|
||||||
|
include : with-transform
|
||||||
|
ApparentTranslate 0 (Geom.Size / 2)
|
||||||
|
refer-glyph : MangleName 'segment'
|
||||||
|
|
||||||
|
do "Fuse"
|
||||||
|
create-glyph [MangleName 'fuse'] [MangleUnicode 0x23DB] : glyph-proc
|
||||||
|
include [refer-glyph : MangleName : NameUni 0x2500] AS_BASE ALSO_METRICS
|
||||||
|
include : refer-glyph : MangleName 'whiteHoriRectangle'
|
||||||
|
|
||||||
|
do "Earth Ground"
|
||||||
|
create-glyph [MangleName 'earthGround'] [MangleUnicode 0x23DA] : glyph-proc
|
||||||
|
set-width MosaicWidth
|
||||||
|
include : ForceUpright
|
||||||
|
include : VBar.m midx midy top boxDrawingStroke
|
||||||
|
include : HBar.m Geom.Left Geom.Right midy boxDrawingStroke
|
||||||
|
include : HBar.m (Geom.MidX - Geom.Size * 0.6) (Geom.MidX + Geom.Size * 0.6) [mix bottom top 0.4] boxDrawingStroke
|
||||||
|
include : HBar.m (Geom.MidX - Geom.Size * 0.3) (Geom.MidX + Geom.Size * 0.3) [mix bottom top 0.3] boxDrawingStroke
|
||||||
|
|
||||||
do "Explosion at Horizon"
|
do "Explosion at Horizon"
|
||||||
define horizon : Geom.MidY - Geom.Size * 0.8
|
define horizon : Geom.MidY - Geom.Size * 0.8
|
||||||
create-glyph [MangleName 'explosionHorizon'] [MangleUnicode 0x1CE02] : glyph-proc
|
create-glyph [MangleName 'explosionHorizon'] [MangleUnicode 0x1CE02] : glyph-proc
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue