Continue simplify args

This commit is contained in:
Belleve Invis 2020-06-13 01:38:32 -07:00
parent 60f2ff7e9b
commit f906185099

View file

@ -89,8 +89,8 @@ glyph-block AutoBuild-Enclosure : begin
define [AdjustDigitCount digits width] : Math.max 1 (digits * Width / width) define [AdjustDigitCount digits width] : Math.max 1 (digits * Width / width)
define [EnclosureStrokeScale dscale digits width] : dscale / [Math.pow [AdjustDigitCount digits width] 0.66] define [EnclosureStrokeScale dscale digits width] : dscale / [Math.pow [AdjustDigitCount digits width] 0.66]
define [EnsureInnerSubGlyphImpl miniatureFont digits finalPlacement dscale xCompress shift] : lambda [gidPart] : begin define [EnsureInnerSubGlyphImpl miniatureFont prefix finalPlacement dscale xCompress shift] : lambda [gidPart] : begin
define gniPart : '.ci.' + gidPart + '@' + [{ digits finalPlacement dscale xCompress shift }.join '/'] define gniPart : '.ci.' + gidPart + '@' + [{ prefix finalPlacement dscale xCompress shift }.join '/']
if [not : query-glyph gniPart] : create-glyph gniPart : glyph-construction if [not : query-glyph gniPart] : create-glyph gniPart : glyph-construction
set-width 0 set-width 0
include miniatureFont.(gidPart) include miniatureFont.(gidPart)
@ -103,7 +103,10 @@ glyph-block AutoBuild-Enclosure : begin
apply-transform : Translate finalPlacement 0 apply-transform : Translate finalPlacement 0
return gniPart return gniPart
define [EnsureInnerSubGlyphSeq miniatureFont digits dscale parts width mockInnerWidth bal baly] : begin define [EnsureInnerSubGlyphSeq miniatureFont prefix job dimens] : begin
define { gn unicode parts w bal baly } job
define [object width mockInnerWidth dscale] dimens
local totalWidth 0 local totalWidth 0
local firstDerivedGyph null local firstDerivedGyph null
local shift 0 local shift 0
@ -122,13 +125,15 @@ glyph-block AutoBuild-Enclosure : begin
foreach partIndex [range 0 parts.length] : do foreach partIndex [range 0 parts.length] : do
define gidPart parts.(partIndex) define gidPart parts.(partIndex)
define finalPlacement : accumulatedAdvanceSoFar - width / 2 - totalWidth * dscale / 2 define finalPlacement : accumulatedAdvanceSoFar - width / 2 - totalWidth * dscale / 2
finalParts.push : EnsureComponentGlyphT gidPart : EnsureInnerSubGlyphImpl miniatureFont digits finalPlacement dscale xCompress shift finalParts.push : EnsureComponentGlyphT gidPart : EnsureInnerSubGlyphImpl miniatureFont prefix finalPlacement dscale xCompress shift
set accumulatedAdvanceSoFar : accumulatedAdvanceSoFar + miniatureFont.(gidPart).advanceWidth * dscale * xCompress set accumulatedAdvanceSoFar : accumulatedAdvanceSoFar + miniatureFont.(gidPart).advanceWidth * dscale * xCompress
return finalParts return finalParts
define [EnclosureInner gnEnclosure miniatureFont digits dscale parts width mockInnerWidth bal baly] : begin define [EnclosureInner gnEnclosure miniatureFont prefix job dimens] : begin
local finalParts : EnsureInnerSubGlyphSeq miniatureFont digits dscale parts width mockInnerWidth bal baly define { gn unicode parts w bal baly } job
define [object width mockInnerWidth dscale] dimens
local finalParts : EnsureInnerSubGlyphSeq miniatureFont prefix job dimens
local inner : create-glyph : glyph-construction local inner : create-glyph : glyph-construction
foreach [gidPart : items-of finalParts] : include [refer-glyph gidPart] foreach [gidPart : items-of finalParts] : include [refer-glyph gidPart]
apply-transform : Translate width 0 apply-transform : Translate width 0
@ -178,8 +183,8 @@ glyph-block AutoBuild-Enclosure : begin
define miniatureFont : CreateDerivedFontFromJobs jobs {} : CircledMiniatureFont digits ww define miniatureFont : CreateDerivedFontFromJobs jobs {} : CircledMiniatureFont digits ww
define gnEnclosure : CircName null (prefix + digits + '.enclosure') {} suffix define gnEnclosure : CircName null (prefix + digits + '.enclosure') {} suffix
if [not : query-glyph gnEnclosure] : create-glyph gnEnclosure : fnEnclosure ww gap if [not : query-glyph gnEnclosure] : create-glyph gnEnclosure : fnEnclosure ww gap
foreach job [items-of jobs.decomposableJobs] : fn ww gap job miniatureFont gnEnclosure true foreach job [items-of jobs.decomposableJobs] : fn (prefix + digits) ww gap job miniatureFont gnEnclosure true
foreach job [items-of jobs.nonDecomposable] : fn ww gap job miniatureFont gnEnclosure false foreach job [items-of jobs.nonDecomposable] : fn (prefix + digits) ww gap job miniatureFont gnEnclosure false
applyRelations jobs.relApplications applyRelations jobs.relApplications
define [createCircledGlyphs digits demands] : EnclosureT 'circle' DECOMPOSABLE digits demands define [createCircledGlyphs digits demands] : EnclosureT 'circle' DECOMPOSABLE digits demands
@ -187,13 +192,14 @@ glyph-block AutoBuild-Enclosure : begin
define [object width sw top bot left right smoothA smoothB] : circleDimens digits ww define [object width sw top bot left right smoothA smoothB] : circleDimens digits ww
set-width width set-width width
include : OShape top bot left right sw smoothA smoothB include : OShape top bot left right sw smoothA smoothB
lambda [ww gap job miniatureFont gnEnclosure decomposable] : begin lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin
define { gn unicode parts w bal baly } job define { gn unicode parts w bal baly } job
define [object width mockInnerWidth dscale] : circleDimens digits ww define dimens : circleDimens digits ww
define [object width mockInnerWidth dscale] dimens
if [not : query-glyph gn] : create-glyph gn : glyph-construction if [not : query-glyph gn] : create-glyph gn : glyph-construction
set-width width set-width width
if (w == ww && unicode) : assign-unicode unicode if (w == ww && unicode) : assign-unicode unicode
include : EnclosureInner [if decomposable gnEnclosure null] miniatureFont digits dscale parts width mockInnerWidth bal baly include : EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
include : refer-glyph gnEnclosure include : refer-glyph gnEnclosure
define [createBoxedGlyphs digits demands] : EnclosureT 'boxed' DECOMPOSABLE digits demands define [createBoxedGlyphs digits demands] : EnclosureT 'boxed' DECOMPOSABLE digits demands
@ -205,13 +211,14 @@ glyph-block AutoBuild-Enclosure : begin
HBarBottom left right bot sw HBarBottom left right bot sw
VBarLeft left bot top sw VBarLeft left bot top sw
VBarRight right bot top sw VBarRight right bot top sw
lambda [ww gap job miniatureFont gnEnclosure decomposable] : begin lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin
define { gn unicode parts w bal baly } job define { gn unicode parts w bal baly } job
define [object width mockInnerWidth dscale] : circleDimens digits ww define dimens : circleDimens digits ww
define [object width mockInnerWidth dscale] dimens
if [not : query-glyph gn] : create-glyph gn : glyph-construction if [not : query-glyph gn] : create-glyph gn : glyph-construction
set-width width set-width width
if (w == ww && unicode) : assign-unicode unicode if (w == ww && unicode) : assign-unicode unicode
include : EnclosureInner [if decomposable gnEnclosure null] miniatureFont digits dscale parts width mockInnerWidth bal baly include : EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
include : refer-glyph gnEnclosure include : refer-glyph gnEnclosure
define [createInsetCircledGlyphs digits demands] : EnclosureT 'inset-circle' NON-DECOMPOSABLE digits demands define [createInsetCircledGlyphs digits demands] : EnclosureT 'inset-circle' NON-DECOMPOSABLE digits demands
@ -219,15 +226,16 @@ glyph-block AutoBuild-Enclosure : begin
define [object width sw top bot left right smoothA smoothB] : circleDimens digits ww define [object width sw top bot left right smoothA smoothB] : circleDimens digits ww
set-width width set-width width
include : OShapeOutline top bot left right sw smoothA smoothB include : OShapeOutline top bot left right sw smoothA smoothB
lambda [ww gap job miniatureFont gnEnclosure decomposable] : begin lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin
define { gn unicode parts w bal baly } job define { gn unicode parts w bal baly } job
define [object width mockInnerWidth dscale] : circleDimens digits ww define dimens : circleDimens digits ww
define [object width mockInnerWidth dscale] dimens
if [not : query-glyph gn] : create-glyph gn : glyph-construction if [not : query-glyph gn] : create-glyph gn : glyph-construction
set-width width set-width width
if (w == ww && unicode) : assign-unicode unicode if (w == ww && unicode) : assign-unicode unicode
include : difference include : difference
refer-glyph gnEnclosure refer-glyph gnEnclosure
EnclosureInner [if decomposable gnEnclosure null] miniatureFont digits dscale parts width mockInnerWidth bal baly EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
define [createInsetBoxedGlyphs digits demands] : EnclosureT 'inset-boxed' NON-DECOMPOSABLE digits demands define [createInsetBoxedGlyphs digits demands] : EnclosureT 'inset-boxed' NON-DECOMPOSABLE digits demands
lambda [ww gap] : glyph-construction lambda [ww gap] : glyph-construction
@ -239,15 +247,16 @@ glyph-block AutoBuild-Enclosure : begin
corner right bot corner right bot
corner right top corner right top
close close
lambda [ww gap job miniatureFont gnEnclosure decomposable] : begin lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin
define { gn unicode parts w bal baly } job define { gn unicode parts w bal baly } job
define [object width mockInnerWidth dscale] : circleDimens digits ww define dimens : circleDimens digits ww
define [object width mockInnerWidth dscale] dimens
if [not : query-glyph gn] : create-glyph gn : glyph-construction if [not : query-glyph gn] : create-glyph gn : glyph-construction
set-width width set-width width
if (w == ww && unicode) : assign-unicode unicode if (w == ww && unicode) : assign-unicode unicode
include : difference include : difference
refer-glyph gnEnclosure refer-glyph gnEnclosure
EnclosureInner [if decomposable gnEnclosure null] miniatureFont digits dscale parts width mockInnerWidth bal baly EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
define [createInsetMosaicGlyphs digits demands] : EnclosureT 'inset-mosaic' NON-DECOMPOSABLE digits demands define [createInsetMosaicGlyphs digits demands] : EnclosureT 'inset-mosaic' NON-DECOMPOSABLE digits demands
lambda [ww gap] : glyph-construction lambda [ww gap] : glyph-construction
@ -260,15 +269,16 @@ glyph-block AutoBuild-Enclosure : begin
corner mosaicRight mosaicBot corner mosaicRight mosaicBot
corner mosaicRight mosaicTop corner mosaicRight mosaicTop
close close
lambda [ww gap job miniatureFont gnEnclosure decomposable] : begin lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin
define { gn unicode parts w bal baly } job define { gn unicode parts w bal baly } job
define [object width mockInnerWidth dscale] : circleDimens digits ww define dimens : circleDimens digits ww
define [object width mockInnerWidth dscale] dimens
if [not : query-glyph gn] : create-glyph gn : glyph-construction if [not : query-glyph gn] : create-glyph gn : glyph-construction
set-width width set-width width
if (w == ww && unicode) : assign-unicode unicode if (w == ww && unicode) : assign-unicode unicode
include : difference include : difference
refer-glyph gnEnclosure refer-glyph gnEnclosure
EnclosureInner [if decomposable gnEnclosure null] miniatureFont digits dscale parts width mockInnerWidth bal baly EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
define [createDoubleCircledGlyphs digits demands] : EnclosureT 'double-circle' DECOMPOSABLE digits demands define [createDoubleCircledGlyphs digits demands] : EnclosureT 'double-circle' DECOMPOSABLE digits demands
lambda [ww gap] : glyph-construction lambda [ww gap] : glyph-construction
@ -284,13 +294,14 @@ glyph-block AutoBuild-Enclosure : begin
begin sw1 begin sw1
smoothA - sw + sw1 smoothA - sw + sw1
smoothB - sw + sw1 smoothB - sw + sw1
lambda [ww gap job miniatureFont gnEnclosure decomposable] : begin lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin
define { gn unicode parts w bal baly } job define { gn unicode parts w bal baly } job
define [object width mockInnerWidth dscale] : circleDimens digits ww (ww * gap) define dimens : circleDimens digits ww (ww * gap)
define [object width mockInnerWidth dscale] dimens
if [not : query-glyph gn] : create-glyph gn : glyph-construction if [not : query-glyph gn] : create-glyph gn : glyph-construction
set-width width set-width width
if (w == ww && unicode) : assign-unicode unicode if (w == ww && unicode) : assign-unicode unicode
include : EnclosureInner [if decomposable gnEnclosure null] miniatureFont digits dscale parts width mockInnerWidth bal baly include : EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
include : refer-glyph gnEnclosure include : refer-glyph gnEnclosure
define [BraceCrowd digits width] : 2.75 + [AdjustDigitCount digits width] define [BraceCrowd digits width] : 2.75 + [AdjustDigitCount digits width]
@ -307,7 +318,8 @@ glyph-block AutoBuild-Enclosure : begin
define [createBracedGlyphs digits demands] : begin define [createBracedGlyphs digits demands] : begin
foreach {suffix ww} [items-of circleWidthClasses] : do foreach {suffix ww} [items-of circleWidthClasses] : do
define jobs : CollectJobs DECOMPOSABLE ('braced' + digits) suffix demands define prefix ('braced' + digits)
define jobs : CollectJobs DECOMPOSABLE prefix suffix demands
define miniatureFont : CreateDerivedFontFromJobs jobs {} : lambda [gs] : Miniature define miniatureFont : CreateDerivedFontFromJobs jobs {} : lambda [gs] : Miniature
glyphs -- gs glyphs -- gs
crowd -- [BraceCrowd digits ww] crowd -- [BraceCrowd digits ww]
@ -339,11 +351,12 @@ glyph-block AutoBuild-Enclosure : begin
define [CreateGlyphImpl jobDecomposable job] : begin define [CreateGlyphImpl jobDecomposable job] : begin
local {gn unicode parts w bal baly} job local {gn unicode parts w bal baly} job
if [not : query-glyph gn] : create-glyph gn : glyph-construction if [not : query-glyph gn] : create-glyph gn : glyph-construction
define [object width mockInnerWidth dscale] : bracedDottdeDimens digits ww define dimens : bracedDottdeDimens digits ww
define [object width mockInnerWidth dscale] dimens
set-width width set-width width
if (w == ww) : assign-unicode unicode if (w == ww) : assign-unicode unicode
include : refer-glyph gnb include : refer-glyph gnb
include : EnclosureInner [if jobDecomposable gnb null] miniatureFont digits dscale parts width mockInnerWidth bal baly include : EnclosureInner [if jobDecomposable gnb null] miniatureFont prefix job dimens
foreach job [items-of jobs.decomposableJobs] : CreateGlyphImpl true job foreach job [items-of jobs.decomposableJobs] : CreateGlyphImpl true job
foreach job [items-of jobs.nonDecomposable] : CreateGlyphImpl false job foreach job [items-of jobs.nonDecomposable] : CreateGlyphImpl false job