From 7c6455f35d710839f91f9f942913bcc2984c37f8 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 24 Jul 2023 13:00:03 -0600 Subject: [PATCH] [avarPlanner] Simplify axis limits --- Lib/fontTools/varLib/avarPlanner.py | 45 ++++++++++------------------- 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/Lib/fontTools/varLib/avarPlanner.py b/Lib/fontTools/varLib/avarPlanner.py index 7b2729882..50e753f31 100644 --- a/Lib/fontTools/varLib/avarPlanner.py +++ b/Lib/fontTools/varLib/avarPlanner.py @@ -1,4 +1,5 @@ from fontTools.ttLib import newTable +from fontTools.ttLib.tables._f_v_a_r import Axis as fvarAxis from fontTools.pens.areaPen import AreaPen from fontTools.pens.basePen import NullPen from fontTools.pens.statisticsPen import StatisticsPen @@ -320,9 +321,7 @@ def planAxis( measureFunc, interpolateFunc, glyphSetFunc, - minValue, - defaultValue, - maxValue, + axisLimits, values=None, samples=None, glyphs=None, @@ -332,6 +331,10 @@ def planAxis( ): """Plan an axis.""" + if isinstance(axisLimits, fvarAxis): + axisLimits = (axisLimits.minValue, axisLimits.defaultValue, axisLimits.maxValue) + minValue, defaultValue, maxValue = axisLimits + if samples is None: samples = SAMPLES if glyphs is None: @@ -445,9 +448,7 @@ def planAxis( def planWeightAxis( glyphSetFunc, - minValue, - defaultValue, - maxValue, + axisLimits, weights=None, samples=None, glyphs=None, @@ -465,9 +466,7 @@ def planWeightAxis( measureWeight, interpolateLog, glyphSetFunc, - minValue, - defaultValue, - maxValue, + axisLimits, values=weights, samples=samples, glyphs=glyphs, @@ -479,9 +478,7 @@ def planWeightAxis( def planWidthAxis( glyphSetFunc, - minValue, - defaultValue, - maxValue, + axisLimits, widths=None, samples=None, glyphs=None, @@ -499,9 +496,7 @@ def planWidthAxis( measureWidth, interpolateLinear, glyphSetFunc, - minValue, - defaultValue, - maxValue, + axisLimits, values=widths, samples=samples, glyphs=glyphs, @@ -513,9 +508,7 @@ def planWidthAxis( def planSlantAxis( glyphSetFunc, - minValue, - defaultValue, - maxValue, + axisLimits, slants=None, samples=None, glyphs=None, @@ -533,9 +526,7 @@ def planSlantAxis( measureSlant, interpolateLinear, glyphSetFunc, - minValue, - defaultValue, - maxValue, + axisLimits, values=slants, samples=samples, glyphs=glyphs, @@ -724,9 +715,7 @@ def main(args=None): weightMapping, weightMappingNormalized = planWeightAxis( font.getGlyphSet, - wghtAxis.minValue, - wghtAxis.defaultValue, - wghtAxis.maxValue, + wghtAxis, weights=weights, samples=options.samples, glyphs=glyphs, @@ -774,9 +763,7 @@ def main(args=None): widthMapping, widthMappingNormalized = planWidthAxis( font.getGlyphSet, - wdthAxis.minValue, - wdthAxis.defaultValue, - wdthAxis.maxValue, + wdthAxis, widths=widths, samples=options.samples, glyphs=glyphs, @@ -824,9 +811,7 @@ def main(args=None): slantMapping, slantMappingNormalized = planSlantAxis( font.getGlyphSet, - slntAxis.minValue, - slntAxis.defaultValue, - slntAxis.maxValue, + slntAxis, slants=slants, samples=options.samples, glyphs=glyphs,