Cosimo Lupo
86e1202129
[instancer] expand singles/tuples to triples upfront and use triples throughout
...
Also renamed AxisTent => AxisTriple because I think "tent" is more appropriate to visualize master supports (i.e. a triangle with a peak in the middle), here it's simply the new desired min, default, max values of an axis, or the axis limits.
The public facing instantiateVariableFont continues to accept a hybrid map of axis tags to single values or 2- (and now also 3-) tuples, these are normalized to an AxisLimits mapping that contains only AxisTriples and passed around to the internal methods.
2022-10-21 17:49:35 +01:00
Cosimo Lupo
40b2473a48
Merge pull request #2728 from fonttools/instancer-l4
...
[instancer] Towards L4 instancing
2022-10-21 16:39:09 +01:00
Cosimo Lupo
c41cda33c1
featureVars: set FeatureCount/LangSysCount, even if 0
2022-10-20 16:45:44 +01:00
Cosimo Lupo
040fdb03a0
Rework assertion per feedback
2022-10-13 19:17:33 +01:00
Cosimo Lupo
3c935f95ca
normalizeLocation: fix ZeroDivisionErrors with extrapolate=True
...
these happens when v < default and default==lower, or when v > default but default==upper...
2022-10-13 18:39:56 +01:00
Behdad Esfahbod
233014117b
[instancer] Adjust featureVariations retaining logic
...
https://github.com/fonttools/fonttools/pull/2728#discussion_r975606307
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
9c7ffef55e
[instancer] Run black
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
e554ec1dc6
[instancer] Small fix for featureVariations instancing
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
1ff1a537e8
[instancer] Implement L4 featureVariations
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
bce11dfc85
[instancer.solver] Improve diagram for a case
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
3bdfb3e205
[instancer] Remove debug print
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
3f7b250803
[instancer] Add test for FeatureVariations limiting range
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
5ff9546531
[TupleVariation] Add __imul__
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
fbf796a0a9
[instancer] Use minimum/maximum instead of tuple indices
...
One of the cases is a bugfix in fact...
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
36bf633555
[instancer.solver] Format
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
b54ac734cc
[instancer.solver] Add assertion
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
aabced171e
[instancer.solver] Fix case3 with gain
...
Ouch!
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
7ee8414cab
[instancer.solver] Better handling of peak==axisDef
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
e08553011a
[instancer.solver] Handle when peak falls on new axis default
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
528bcdf1a2
[instancer] No need to check for scalar=1
...
The scaleDeltas() function does it.
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
d2cb561cee
[instancer] L4 avar mapping
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
24cd9dc00e
[instancer] Simplify avar mapping more
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
7330c78b10
[instancer] Towards L4 avar
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
d17d1355a2
[instancer] Simplify avar normalization
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
3108e52a90
[instancer] Remove redundant checks
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
e2a875b26c
[instancer] Implement featureVariations L4 instancing
...
I *think* this is all.
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
890938ef09
[instancer.solver] Try harder to fix on python 3.7
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
3c998785db
[instancer.solver] Use older lru_cache instead of cache
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
8f6779d67e
[instancer] Fix the rest of tests
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
53b6c4c9fe
[instancer.solver] Fix negative -2 case
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
5254c9354c
[instancer] Fix most tests!
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
cff162579d
[instancer] Fix a few more tests
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
272e4e8999
[instancer] Fix a few more tests
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
5118e3327d
[instancer] Fix some more tests
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
0947ca6b6c
[instancer] Fix "drop" to some extent
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
d03879607b
[instancer] Make a few tests happy
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
4dc271ac72
[instancer.solver] Remove redundant words
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
c628cc82b5
[instancer.solver] Rename internal function
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
6b6aba6bd4
[instancer.solver] Add ASCII-art
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
948788adaf
[instancer.solver] More API doc
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
7d15e33e69
[instancer.solver] Document API
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
52c791ad1d
[instancer.solver] Add a special case
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
245c3e9575
[instancer.solver] Comment algorithm
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
617f19ff8d
[instancer.solver] Add comments
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
7f79fad3d0
[instancer.solver] Remove unused _solveWithoutGain()
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
b6a3ef37e1
[instancer.solver] Second try at sending everything through WithGain
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
f6ce737476
[instancer] Add assert
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
c3fa1b59ac
[instancer.solver] Return None as gain tent
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
dd5452527e
[instancer.solver] More fixes
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
4637daf191
[instancer.solver] Fix 3a
2022-10-13 10:35:02 -06:00