consolidate with ptl0.30.0 constants

This commit is contained in:
be5invis 2016-03-15 17:54:27 +08:00
parent d4f6c44f34
commit 791b2e4491
6 changed files with 30 additions and 20 deletions

View File

@ -395,7 +395,7 @@ export as build : define [buildFont para recursive recursiveCodes] : begin
if (pickHash && [not pickHash.(name)]) : return nothing
if para.verbose : console.log name
define glyphObject [new Glyph name]
local glyphObject [new Glyph name]
glyphList.push glyphObject
glyphs.(name) = glyphObject
glyphObject.set-width WIDTH

View File

@ -128,8 +128,8 @@ define customDecompositions : object
let : begin
suggestGC
define [isAboveMark mark] : mark && mark.anchors && mark.anchors.above && mark.anchors.above.type === MARK
define iotaBelowToLF : function [p] : if (p === glyphs.iotaBelow) glyphs.iotaLF p
define ogonekBelowToTR : function [p] : if (p === glyphs.ogonekBelow) glyphs.ogonekTR p
define [iotaBelowToLF p j parts] : if (p === glyphs.iotaBelow) : set parts.(j) glyphs.iotaLF
define [ogonekBelowToTR p j parts] : if (p === glyphs.ogonekBelow) : set parts.(j) glyphs.ogonekTR
define [subParts parts] : begin
local hasMarkAbove false
foreach p [items-of parts] : if [isAboveMark p] : set hasMarkAbove true
@ -139,8 +139,8 @@ let : begin
if (parts.0 === glyphs.j && hasMarkAbove) : parts.0 = glyphs.dotlessj
# replace below marks with trailing marks
if parts.0.anchors.lf : set parts : parts.map iotaBelowToLF
if parts.0.anchors.trailing : set parts : parts.map ogonekBelowToTR
if parts.0.anchors.lf : parts.forEach iotaBelowToLF
if parts.0.anchors.trailing : parts.forEach ogonekBelowToTR
# composite greek overmarks
for [local j 0] (j < parts.length) [inc j] : piecewise
@ -162,7 +162,8 @@ let : begin
set parts.(j) null; set parts.(j + 1) glyphs.dasiaperispomeni
return parts
define [pad s n] : begin
define [pad _s n] : begin
local s _s
while (s.length < n) : s = '0' + s
return s
local nComposed 0
@ -233,7 +234,8 @@ let : begin
suggestGC
define [suggestName name] : begin
define [suggestName _name] : begin
local name _name
if glyphs.(name) : begin
local j 2
while glyphs.(name + j) : inc j
@ -816,7 +818,8 @@ symbol-block 'CJK Double Width Characters'
if [not recursive] : begin
if [not para.cjk] : begin
set font.glyf : font.glyf.filter [lambda [g] : g.advanceWidth <= WIDTH]
set glyphList font.glyf
set glyphList.length font.glyf.length
for [local j 0] (j < font.glyf.length) [inc j] : set glyphList.(j) font.glyf.(j)
set font.features.cv {.}
foreach [name : items-of : Object.keys glyphs] : begin

View File

@ -3,7 +3,7 @@
"version": "1.8.2",
"main": "./generate.js",
"dependencies": {
"patel": ">=0.29.0",
"patel": ">=0.30.0",
"node-sfnt": ">=0.0.20",
"bezier-js": "*",
"yargs": "*",

View File

@ -6,11 +6,14 @@ import './transform' as : Transform && [object [transformPoint tp] [untransform
import './anchor' as Anchor
define-macro xytransform : syntax-rules
`[xytransform @tfm @x @y] : let [t : env.newt] `[begin \\
set @t @x
set @x : @x * @tfm.xx + @y * @tfm.yx + @tfm.x
set @y : @t * @tfm.xy + @y * @tfm.yy + @tfm.y
]
`[xytransform @tfm @x @y] : begin
set [env.declarations.get [formOf x]].isParameter 0
set [env.declarations.get [formOf y]].isParameter 0
let [t : env.newt] `[begin \\
set @t @x
set @x : @x * @tfm.xx + @y * @tfm.yx + @tfm.x
set @y : @t * @tfm.xy + @y * @tfm.yy + @tfm.y
]
define [mix a b p] : a + (b - a) * p
define [ratio l r m] : if [l === r] 0 ((m - l) / (r - l))

View File

@ -5,11 +5,14 @@ define [fallback] : for [local j 0] (j < arguments.length) [inc j] : if (argumen
define [linreg x0 y0 x1 y1 x] : y0 + (x - x0) * (y1 - y0) / (x1 - x0)
define-macro xytransform : syntax-rules
`[xytransform @tfm @x @y] : let [t : env.newt] `[begin \\
set @t @x
set @x : @x * @tfm.xx + @y * @tfm.yx + @tfm.x
set @y : @t * @tfm.xy + @y * @tfm.yy + @tfm.y
]
`[xytransform @tfm @x @y] : begin
set [env.declarations.get [formOf x]].isParameter 0
set [env.declarations.get [formOf y]].isParameter 0
let [t : env.newt] `[begin \\
set @t @x
set @x : @x * @tfm.xx + @y * @tfm.yx + @tfm.x
set @y : @t * @tfm.xy + @y * @tfm.yy + @tfm.y
]
define [normalY angle] : Math.sin angle
define [normalX angle vex] : [Math.cos angle] * vex

View File

@ -121,9 +121,10 @@ export : define [SetupBuilders args] : begin
(p <@ Array) : set a : a.concat [flatten p]
true : a.push p
return a
define [prepareSpiroKnots knots s] : begin
define [prepareSpiroKnots _knots s] : begin
local closed false
local lastafs {}
local knots _knots
while (knots.0 && knots.0 <@ Function) : begin
knots.0.call s
set knots : knots.slice 1