- BLACK DIAMOND MINUS WHITE X (`U+2756`) (#1960).
  - WHITE CONCAVE-SIDED DIAMOND (`U+27E1`) (#1960).
  - LIGHT FOUR POINTED BLACK CUSP (`U+2BCC`) (#1960).
  - WHITE FOUR POINTED CUSP (`U+2BCE`) (#1960).
This commit is contained in:
be5invis 2023-08-25 21:56:19 -07:00
parent 58c71fdca7
commit 0950a86c20
4 changed files with 63 additions and 26 deletions

View file

@ -1,5 +1,9 @@
* Add characters:
- BLACK DIAMOND MINUS WHITE X (`U+2756`) (#1960).
- WHITE CONCAVE-SIDED DIAMOND (`U+27E1`) (#1960).
- LEFT BARB UP RIGHT BARB UP HARPOON (`U+294E`) ... UP BARB LEFT DOWN BARB LEFT HARPOON (`U+2951`).
- LIGHT FOUR POINTED BLACK CUSP (`U+2BCC`) (#1960).
- WHITE FOUR POINTED CUSP (`U+2BCE`) (#1960).
* Add support for specialized Vietnamese dual diacritics (#1935).
* Make bowl height of Cyrillic Yat and Tall Yat (`U+0463`, `U+1C67`) consistent (#1945).
* Make Guillemets (`«`, `»`) curly for Default Slab.

View file

@ -210,31 +210,18 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
if T [VBar.m Geom.MidX (Geom.MidY + Geom.Size - hv) (Geom.MidY - hv) s] [glyph-proc]
if B [VBar.m Geom.MidX (Geom.MidY - Geom.Size + hv) (Geom.MidY + hv) s] [glyph-proc]
do "Miscellaneous"
create-glyph [MangleName 'uni2389'] [MangleUnicode 0x2389] : glyph-proc
define shiftUp : ApparentTranslate 0
Math.max
0.5 * [Math.sqrt 2] * Size.MediumSmall.sw
Geom.Size * (1 - Size.MediumSmall.size)
do "Diamond minus white X"
create-glyph [MangleName "blackDiamondMinusWhiteX"] [MangleUnicode 0x2756] : glyph-proc
set-width Geom.Width
include : refer-glyph : MangleName 'whiteCircle'
include : intersection
refer-glyph : MangleName 'blackCircleO'
union
difference
HBar.m 0 Geom.Width Geom.MidY GeometryStroke
with-transform [ApparentTranslate 0 0.01] : with-transform shiftUp : refer-glyph : MangleName 'blackMediumEqualDiamond'
intersection
MaskBelow (Geom.MidY + GeometryStroke / 2)
with-transform shiftUp : refer-glyph : MangleName 'whiteMediumEqualDiamond'
create-glyph [MangleName 'uni238A'] [MangleUnicode 0x238A] : glyph-proc
set-width Geom.Width
include : refer-glyph : MangleName 'whiteCircle'
include : intersection
refer-glyph : MangleName 'blackCircleO'
refer-glyph : MangleName 'whiteEqualTriangleDown'
local gap : Math.max (0.2 * Geom.Size) [UnicodeWeightGrade 4 Geom.Scalar]
include : difference
refer-glyph : MangleName "blackDiamond"
dispiro
flat (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size) [widths.center gap]
curl (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size)
dispiro
flat (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size) [widths.center gap]
curl (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size)
do "Moon Phases"
alias [MangleName 'newMoon'] [MangleUnicode 0x1F311] [MangleName 'blackCircle']
@ -282,3 +269,29 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
composite-proc
WaxingMoonMask
FlipAround Geom.MidX Geom.MidY
do "Miscellaneous"
create-glyph [MangleName 'uni2389'] [MangleUnicode 0x2389] : glyph-proc
define shiftUp : ApparentTranslate 0
Math.max
0.5 * [Math.sqrt 2] * Size.MediumSmall.sw
Geom.Size * (1 - Size.MediumSmall.size)
set-width Geom.Width
include : refer-glyph : MangleName 'whiteCircle'
include : intersection
refer-glyph : MangleName 'blackCircleO'
union
difference
HBar.m 0 Geom.Width Geom.MidY GeometryStroke
with-transform [ApparentTranslate 0 0.01] : with-transform shiftUp : refer-glyph : MangleName 'blackMediumEqualDiamond'
intersection
MaskBelow (Geom.MidY + GeometryStroke / 2)
with-transform shiftUp : refer-glyph : MangleName 'whiteMediumEqualDiamond'
create-glyph [MangleName 'uni238A'] [MangleUnicode 0x238A] : glyph-proc
set-width Geom.Width
include : refer-glyph : MangleName 'whiteCircle'
include : intersection
refer-glyph : MangleName 'blackCircleO'
refer-glyph : MangleName 'whiteEqualTriangleDown'

View file

@ -394,7 +394,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
do "Square-lozenge"
define [SquareLozengeShape cx cy size] : begin
define p 0.8
define p 0.7
return : spiro-outline
corner (cx - size) (cy + size)
g4 cx (cy + p * size)
@ -410,6 +410,24 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
StdWhiteShape SquareLozengeShape 'rotatedWhiteFourPointedCusp' 0x2BCF Size.MediumOblique
StdBlackShape SquareLozengeShape 'rotatedBlackFourPointedCusp' 0x2BCD Size.MediumOblique
do "Diamond-lozenge"
define [DiamondLazongeShape cx cy size] : begin
define p 0.7
return : spiro-outline
corner (cx - size) cy
g4 [mix cx [mix (cx - size) cx 0.5] p] [mix cy [mix cy (cy - size) 0.5] p]
corner cx (cy - size)
g4 [mix cx [mix cx (cx + size) 0.5] p] [mix cy [mix (cy - size) cy 0.5] p]
corner (cx + size) cy
g4 [mix cx [mix (cx + size) cx 0.5] p] [mix cy [mix cy (cy + size) 0.5] p]
corner cx (cy + size)
g4 [mix cx [mix cx (cx - size) 0.5] p] [mix cy [mix (cy + size) cy 0.5] p]
close
StdWhiteShape DiamondLazongeShape 'whiteConcaveSidedDiamond' 0x27E1 [Object.assign {.} Size.Oblique {.sw ([Math.sqrt 2] * [UnicodeWeightGrade 6 Geom.Scalar])}]
StdBlackShape DiamondLazongeShape 'lightFourPointedBlackCusp' 0x2BCC Size.Oblique
StdWhiteShape DiamondLazongeShape 'whiteFourPointedBlackCusp' 0x2BCE Size.ObliqueSA
do "Circle"
define [CircleShape cx cy size] : spiro-outline
g4 (cx - size) cy

View file

@ -45,13 +45,15 @@ glyph-block Symbol-Geometric-Shared : begin
VerySmall {.size DesignParameters.geometric_very_small_x .sw [Math.min GeometryStroke : AdviceStroke 7 Geom.Scalar]}
Tiny {.size DesignParameters.geometric_tiny_x .sw [Math.min GeometryStroke : AdviceStroke 8 Geom.Scalar]}
Oblique { .sw [Math.min GeometryStroke : AdviceStroke 4.75 Geom.Scalar] }
Oblique { .sw [Math.min GeometryStroke : AdviceStroke 4.75 Geom.Scalar] }
MediumOblique { .size DesignParameters.geometric_medium_x .sw [Math.min GeometryStroke : AdviceStroke 4.75 Geom.Scalar] }
MediumSmallOblique { .size DesignParameters.geometric_medium_small_x .sw [Math.min GeometryStroke : AdviceStroke 5.25 Geom.Scalar] }
SmallOblique { .size DesignParameters.geometric_small_x .sw [Math.min GeometryStroke : AdviceStroke 6.25 Geom.Scalar] }
VerySmallOblique { .size DesignParameters.geometric_very_small_x .sw [Math.min GeometryStroke : AdviceStroke 7.25 Geom.Scalar] }
TinyOblique { .size DesignParameters.geometric_tiny_x .sw [Math.min GeometryStroke : AdviceStroke 8.25 Geom.Scalar] }
ObliqueSA { .sw ([Math.sqrt 2] * [Math.min GeometryStroke : AdviceStroke 4.75 Geom.Scalar]) }
TinyInner { .innerSize (1 / 4) }
SmallInner { .innerSize (1 / 3) }
MediumInner { .innerSize (2 / 3) }