-
[pointPen] Allow
reverseFlippedparameter ofDecomposingPointPento take aReverseFlippedenum value to control whether/how to reverse contour direction of flipped components, in addition to the existing True/False. This allows to setReverseFlipped.ON_CURVE_FIRSTto ensure that the decomposed outline starts with an on-curve point before being reversed, for better consistency with other segment-oriented contour transformations. The change is backward compatible, and the default behavior hasn't changed (#3934). -
[filterPen] Added
ContourFilterPointPen, base pen for buffered contour operations, andOnCurveStartPointPenfilter to ensure contours start with an on-curve point (#3934). -
[cu2qu] Fixed difference in cython vs pure-python complex division by real number (#3930).
-
[varLib.avar] Refactored and added some new sub-modules and scripts (#3926).
varLib.avar.buildmodule to build avar (and a missing fvar) binaries into a possibly empty TTFont,varLib.avar.unbuildmodule to print a .designspace snippet that would generate the same avar binary,varLib.avar.mapmodule to take TTFont and do the mapping, in user/normalized space,varLib.avar.planmodule moved fromvarLib.avarPlanner.
The bare
fonttools varLib.avarscript is deprecated, in favour offonttools varLib.avar.build(orunbuild). -
[interpolatable] Clarify
linear_sum_assignmentbackend options and minimal dependency usage (#3927). -
[post] Speed up
build_psNameMapping(#3923). -
[ufoLib] Added typing annotations to fontTools.ufoLib (#3875).