11 Commits

Author SHA1 Message Date
Behdad Esfahbod
b0cf3e1ebe [instancer] Allow null ConditionSet
Fixes https://github.com/fonttools/fonttools/issues/3211
2023-07-19 19:55:42 -06:00
Behdad Esfahbod
0893ba93f8 [instancer/L4] Address review comments 2023-07-11 08:46:46 -06:00
Behdad Esfahbod
204532aee3 [instancer/L4] Misc fixes and fix tests 2023-06-21 15:09:56 -06:00
Behdad Esfahbod
43e5aae018 [instancer/L4] Fix avar mapping as well 2023-06-21 15:09:56 -06:00
Behdad Esfahbod
72b6102949 [instancer/L4] Fix normalizeValue for L4 solver
Imagine a font with current min/default/max of 100,700,1000. And new
setting of 100,400,1000. The current normalizeLocation will calculate
the new location for 700 to be +.33, whereas it should calculate +.5!
This is because 400 translates to -.5, so 700 will be normalized to
-1,-.5,+1 and get +.33...

We need a special normalizeLocation that is aware of the "distance"
between min/default/max, ie. the non-normalized values. Then it will be
clear that the distance from 400 to 700 is equal to 700 to 1000, and as
such 700 should be normalized to .5, not .33... I'm still trying to
figure out the case where avar is present.

Store this distance in NormalizeAxisLimit and reach it out in the
solver.

Fixes https://github.com/fonttools/fonttools/issues/3177
2023-06-21 15:09:56 -06:00
Nikolaus Waxweiler
d584daa8fd Blacken code 2022-12-13 11:26:36 +00:00
Behdad Esfahbod
672c4bacdd [instancer.featureVars] Address review comments 2022-11-04 11:55:48 -06:00
Behdad Esfahbod
392706949c [instancer.featureVars] Fix deficiency in L4 instancing
See discussion on the issue.  I think I got this right.

Fixes https://github.com/fonttools/fonttools/issues/2737
2022-11-03 14:55:01 -06:00
Behdad Esfahbod
1b6f4fb858 [instancer.featureVars] Minor adjustments 2022-11-03 14:54:47 -06:00
Behdad Esfahbod
ecfcdffe9f [instancer.featureVars] Combine two functions
Fold _limitFeatureVariationRecord() into
_instantiateFeatureVariationRecord().
2022-11-03 14:22:02 -06:00
Behdad Esfahbod
6e156a7f13 [instancer] Split featureVars code into own module
Towards fixing https://github.com/fonttools/fonttools/issues/2737
2022-11-03 14:21:27 -06:00