Add Ballot Box, Ballot Box with Check and Ballot Box with X (U+2610 ... U+2612, #890).

This commit is contained in:
be5invis 2021-02-10 21:24:17 -08:00
parent 5b1b362cfa
commit b207b9797f
3 changed files with 48 additions and 0 deletions

View file

@ -9,6 +9,7 @@
* Add Characters: * Add Characters:
* Z Notation Schema Composition (`U+2A1F`) and Z Notation Relation Composition (`U+2A3E`) (#857). * Z Notation Schema Composition (`U+2A1F`) and Z Notation Relation Composition (`U+2A3E`) (#857).
* Circled Zero With Slash (`U+1F10D`, #861). * Circled Zero With Slash (`U+1F10D`, #861).
* Ballot Box, Ballot Box with Check and Ballot Box with X (`U+2610` ... `U+2612`, #890).
* Add Variants: * Add Variants:
* Add diagonal-tailed variants for `f`, `i`, `j`, `k`, `l`, `q`, `t` (#795). * Add diagonal-tailed variants for `f`, `i`, `j`, `k`, `l`, `q`, `t` (#795).
* Add motion-serifed variants for `A`, `B`, `D`, `E`, `F`, `H`, `K`, `M`, `N`, `P`, `R`, `T`, `V`, `W`, `X`, `Y`, `Z`, `v`, `w`, `x`, `y`, `z` (#806, #815, #818). * Add motion-serifed variants for `A`, `B`, `D`, `E`, `F`, `H`, `K`, `M`, `N`, `P`, `R`, `T`, `V`, `W`, `X`, `Y`, `Z`, `v`, `w`, `x`, `y`, `z` (#806, #815, #818).

View file

@ -10,3 +10,4 @@ export : define [apply] : begin
run-glyph-module './geometric/sun-and-gear.js' run-glyph-module './geometric/sun-and-gear.js'
run-glyph-module './geometric/dotted.js' run-glyph-module './geometric/dotted.js'
run-glyph-module './geometric/masked.js' run-glyph-module './geometric/masked.js'
run-glyph-module './geometric/ballot-box.js'

View file

@ -0,0 +1,46 @@
$$include '../../../meta/macros.ptl'
import [mix linreg clamp fallback] from '../../../support/utils'
import [DesignParameters] from '../../../meta/aesthetics'
glyph-module
glyph-block Symbol-Geometric-Dice : 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
alias [MangleName 'ballotBox'] [MangleUnicode 0x2610] [MangleName 'whiteSquare']
define bbGap : Math.max (Geom.Size / 6) [AdviceStroke 5 Geom.Scalar]
define swMark : Math.min GeometryStroke : AdviceStroke 5 Geom.Scalar
define bbSize : Geom.Size - bbGap - swMark / 2
create-glyph [MangleName 'checkedBallotBox'] [MangleUnicode 0x2611] : glyph-proc
local k1 0.4
local k2 0.425
local k3 1
include [refer-glyph : MangleName 'whiteSquare'] AS_BASE ALSO_METRICS
local z1 : corner (Geom.MidX - bbSize) [mix (Geom.MidY - bbSize) (Geom.MidY + bbSize) k1]
local z2 : corner [mix (Geom.MidX - bbSize) (Geom.MidX + bbSize) k2] (Geom.MidY - bbSize)
local z3 : corner (Geom.MidX + bbSize) [mix (Geom.MidY - bbSize) (Geom.MidY + bbSize) k3]
include : intersection
spiro-outline z1 z2 z3 [corner z1.x z3.y]
union
dispiro [widths.lhs swMark] z1 z2
dispiro [widths.lhs swMark] z2 z3
create-glyph [MangleName 'crossBallotBox'] [MangleUnicode 0x2612] : glyph-proc
include [refer-glyph : MangleName 'whiteSquare'] AS_BASE ALSO_METRICS
include : dispiro
widths.center swMark
corner (Geom.MidX - bbSize) (Geom.MidY - bbSize)
corner (Geom.MidX + bbSize) (Geom.MidY + bbSize)
include : dispiro
widths.center swMark
corner (Geom.MidX + bbSize) (Geom.MidY - bbSize)
corner (Geom.MidX - bbSize) (Geom.MidY + bbSize)