5304 Commits

Author SHA1 Message Date
Behdad Esfahbod
d56b844142 [varLib] Round outline deltas using banker's round as well
See https://github.com/fonttools/fonttools/pull/2214#issuecomment-790742479
2021-03-04 13:00:04 -07:00
Just van Rossum
6a8821d91c
Revert "Use Vector in some places where it improves the clarity of the code" (#2215)
* Revert most of "Use Vector in some places where it improves the clarity of the code (#2206)"

This reverts most of commit 0d3ce2cafc6f604fc46d4d3bfbab34a5bc59e27b.
2021-03-04 20:15:24 +01:00
Behdad Esfahbod
07a7dd3eb5 [varLib] Make newly-added round arguments keyword-only
So they are not accidentally set, only intentionally. Keeps positional-args
open for more direct uses.
2021-03-04 09:44:34 -07:00
Behdad Esfahbod
f5ef0b517b [varLib] Round most deltas using bankers' round, not otRound
See https://github.com/fonttools/fonttools/pull/2214#issuecomment-790742479
2021-03-04 09:43:26 -07:00
Behdad Esfahbod
606b072f40 [glyf] Add round=otRound parameter to GlyphCoordinates.toInt() & __round__() 2021-03-04 09:43:08 -07:00
Behdad Esfahbod
68004b8fec [varLib] Shift most (all?) delta-rounding to VarModel
Reduces error.

The main varfont-builder now asks the model to do rounding, and asks
VariationStore to do no rounding, so we don't spend extra times rounding
multiple times (specially with the heavy otRound).

I *think* I got it all and right...

Fixes https://github.com/fonttools/fonttools/issues/2213
2021-03-04 09:20:43 -07:00
Behdad Esfahbod
77acdbced3 [glyf] Remove stale comment about Python 2 2021-03-04 09:20:43 -07:00
Behdad Esfahbod
fdd8267065 [varLib.models] Add optional rounding to VariationModel() relevant methods
Users to be updated to benefit.

Part of https://github.com/fonttools/fonttools/issues/2213
2021-03-04 09:20:43 -07:00
Behdad Esfahbod
3a9a2bd4b1 [misc.roundTools] Add noRound(), maybeRound(), and roundFunc()
Moving out of CFF code, to be used in VariationModel().

Part of https://github.com/fonttools/fonttools/issues/2213
2021-03-04 09:20:43 -07:00
Behdad Esfahbod
abc1ba07a4 [misc.roundTools] New module; move otRound() here
Code relying on old place (fixedTools.otRound) still works.
2021-03-04 09:20:43 -07:00
Just van Rossum
0d3ce2cafc
Use Vector in some places where it improves the clarity of the code (#2206)
* Use Vector in some places where it improves the clarity of the code

* add __all__ to vector.py

* turned some list comprehensions into generator expressions: there's no need for an intermediate list in these cases

* Add empty __slots__ to Vector, so we don't waste space on a __dict__.

* add some tests for segmentPointAtT
2021-03-04 15:32:45 +01:00
Cosimo Lupo
53b13263e9
Merge remote-tracking branch 'origin/main' into mutator-trivial-fixes 2021-03-04 10:49:49 +00:00
Behdad Esfahbod
ed77aeaebf [cff] Speed-up rounding
We can choose specific round function based on tolerance once,
instead of choosing every time a number is being rounded.
2021-03-03 18:32:30 -07:00
Behdad Esfahbod
28fae1d95f [cff] Simplify rounding logic
No semantic change. Just refactoring and simplification in anticipation
of coming changes.
2021-03-03 18:27:06 -07:00
Behdad Esfahbod
ff46e2838f [varLib.plot] Reorder imports to make missing library easier to detect
$ pip install matplotlib
2021-03-03 16:25:35 -07:00
Simon Cozens
4dd83e0d55 Make terminology consistent 2021-03-03 12:57:12 +00:00
Simon Cozens
e9b35d0318 Split off box-splitting/support code to separate function 2021-03-03 10:33:50 +00:00
Simon Cozens
8c8522560a Separate computing delta weights 2021-03-03 10:23:28 +00:00
Behdad Esfahbod
dec5bb554f [varLib.instancer] Grammar 2021-03-01 12:02:06 -07:00
Behdad Esfahbod
a93ced044f [varLib.mutator] Simplify maxp handling 2021-02-28 18:19:24 -07:00
Behdad Esfahbod
23e5d4eb0b [varLib.mutator] Fix typo: maxInstructionDefs -> maxStackElements 2021-02-28 18:16:23 -07:00
justvanrossum
9c9ab5ac3a removed info-less doc string 2021-02-27 20:05:53 +01:00
justvanrossum
44b7560fe5 move Vector to its own submodule, and rewrite as a tuple subclass 2021-02-27 19:54:53 +01:00
Cosimo Lupo
825b5044fe
Bump version: 4.21.1 → 4.21.2.dev0 2021-02-26 19:41:15 +00:00
Cosimo Lupo
cfd87d7ba7
Release 4.21.1 2021-02-26 19:41:14 +00:00
justvanrossum
2429a187fc Revert ABC changes to Pens, fixes #2198 2021-02-26 20:18:37 +01:00
Cosimo Lupo
4de2a4076b
Bump version: 4.21.0 → 4.21.1.dev0 2021-02-26 16:12:51 +00:00
Cosimo Lupo
a337752766
Release 4.21.0 2021-02-26 16:12:51 +00:00
Simon Cozens
f49ad5a9ad
Merge pull request #2192 from simoncozens/beziertools-intersections
Add intersections and point-at-time functions to bezierTools
2021-02-26 15:59:05 +00:00
Simon Cozens
a775b6e19c Fix _aligment_transformation as suggested 2021-02-26 13:13:59 +00:00
Marc Foley
52fec53d20
Drop nameID 25 if instantiating a static font 2021-02-26 10:32:38 +00:00
Cosimo Lupo
d1a8e1ee76
fall back to 'Regular' when no subFamilyName
assert we have some 'string' instead of silently continuing
2021-02-26 10:32:38 +00:00
Cosimo Lupo
0c92d33bc0
fix sub-string check in update uniqueID 2021-02-26 10:32:38 +00:00
Cosimo Lupo
fcfcb78cc0
make docstring shorter; fix _isRibbi
return True only if a corresponding english record is found and matches R/I/B/BI, else return False.
We don't really care if there are any other unrelated english records, we care about this specific one, whether it's RIBBI or not

minor
2021-02-26 10:32:21 +00:00
Marc Foley
fcc02826b4
Implement Cosimo feedback from previous pr 2021-02-26 10:31:53 +00:00
Cosimo Lupo
2be13d50ac
make instancer into a package dir and move all names-related funcs to submodule
move instancer tests to Tests/varLib/instancer directory

create instancer/__main__.py to make package executable
2021-02-26 10:31:30 +00:00
Marc Foley
336e7827e7 Implement Cosimo feedback 2021-02-26 10:19:43 +00:00
Marc Foley
daf6427b0b Implement Adobe ps naming for instantiated instances 2021-02-26 10:19:43 +00:00
Marc Foley
de38c9ce96 Tidy up variable name and run through black 2021-02-26 10:19:43 +00:00
Marc Foley
5eac886e5a Only create typographic subfamily name if there are nonRibbi tokens 2021-02-26 10:19:43 +00:00
Marc Foley
29e4ff987c instancer: implement Cosimo feedback 2021-02-26 10:19:43 +00:00
Marc Foley
bef1d08c0b instancer: updateNameTableStyleRecords use strings as input instead of axis values 2021-02-26 10:19:43 +00:00
Marc Foley
11f0ade44c cleanup _updateUniqueIdNameRecord 2021-02-26 10:19:43 +00:00
Marc Foley
0bcbbfdbb5 instancer: reuse existing instantiateSTAT func 2021-02-26 10:19:43 +00:00
Marc Foley
9a72311d19 instancer: refactor updateNameTable 2021-02-26 10:19:43 +00:00
Marc Foley
b328475072 wip instancer: update uniqueID 2021-02-26 10:19:43 +00:00
Marc Foley
ce1d8a9955 instancer: Add axisDefaults to axisLimits 2021-02-26 10:19:43 +00:00
Marc Foley
69c8667982 instancer: sort axisValues so format 4 are dominant for constructing names 2021-02-26 10:19:43 +00:00
Marc Foley
0b639c2979 instancer: use bit mask for axisValue flags 2021-02-26 10:19:43 +00:00
Marc Foley
b4b1ce3579 instancer: include attribute axisValues 2021-02-26 10:19:42 +00:00