Behdad Esfahbod
688939394b
[varLib.models] Generate narrower tents
...
Based on https://github.com/fonttools/fonttools/pull/2218
but modify the general solver instead.
2022-08-14 14:00:09 -06:00
Simon Cozens
0f03e6529a
[docs] Fix sphinx warnings ( #2453 )
...
* Add default auto doc options
* Ensure all references are unique
* Use anonymous links to avoid duplicate references
* Remove default options, fix wrong module name
* Don’t index repeated class
* Remove repeated classes included through automodule
* Fix warnings
* We don’t use our own static directory
* Correctly format XML in docs
* Fix indentation
* Fix overline
* Bring TOC to top
* Fix definition list
* Offset definition lists and examples
* Fix erroneous markup
* Fix markup
* Already included in automodule
* Fix args markup
* Correct markup for example
* Don’t reindex repeated module
* Correct XML code block markup
* Fix markup errors, change example to doctest
* Correct list markup
* Make ttx docstring both valid RST and valid help output
* Various other boring markup fixes
* Fix example indenting
* Make docstring valid RST and valid help output
* Mock import for reportlab
* It’s ok if manual links don’t appear in toctrees
* Oops typo, I guess doctests are useful
2021-12-02 15:31:49 +00:00
Simon Cozens
b41b062402
We are iterating over supports, not locations, here
2021-05-12 16:13:58 +01:00
Simon Cozens
2aa1a6ddf6
Remove else-after-return
2021-05-12 15:04:41 +01:00
Simon Cozens
5ac809410f
Reformat with black
2021-05-12 15:02:59 +01:00
Simon Cozens
1526b9e024
Another unused enumeration
2021-05-12 15:01:18 +01:00
Simon Cozens
f711b65475
Index was never used
2021-05-12 14:57:20 +01:00
Simon Cozens
1c509f931d
Avoid unnecessary intermediary variables
2021-05-12 14:56:44 +01:00
Simon Cozens
ab328b5ecc
axisPoints is not used outside the sort function
2021-05-12 14:55:14 +01:00
Behdad Esfahbod
96690de9a9
[varLib] Optimize out multiplication by 1 when computing deltas
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
062b7c434e
Merge pull request #2214 from fonttools/varLib-round
...
[varLib] Move rounding to VariationModel, to avoid error accumulation from multiple deltas
2021-03-04 16:40:40 -07: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
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
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
Cosimo Lupo
81d0042a9e
varLib.models: fix argument name in main()
2020-08-12 09:41:46 +01:00
Simon Cozens
089f24da6b
Ensure all fonttools CLI tools have help documentation ( #1948 )
...
Note UI change : `fonttools varLib.models` now takes prefixed options `-d` or `-l` instead of guessing the intended feature from the number of arguments.
We have a number of command line tools which are somewhat opaque. (varLib.models in particular was very confusing.) This ensures that they all use argparse to have a consistent interface, and all have --help documentation which at least details their parameters, and hopefully therefore gives more of a clue about what they do. Those which use logging have had a command-line logging parameter added.
2020-05-12 15:11:30 +01:00
Simon Cozens
2cef07af80
[doc] Add help options to fonttools CLI ( #1920 )
...
This adds a `help` verb (and `--help` option) to the `fonttools` command line tool. Submodules will be listed in the help text if they have an importable `main` function with a docstring, and `main`'s docstring will be used as the one-line description for the help text.
2020-05-12 06:31:13 +01:00
Nikolaus Waxweiler
5a53d1d4ad
models: Use new exceptions where input is checked
2020-02-13 15:01:52 +00:00
Cosimo Lupo
38a8eb0e34
varLib.models: fix KeyError when no on-axis points while sorting masters
...
E.g. when trying to model/plot an unusual designspace like: fonttools varLib.plot 0,0 -1,-1 1,-1 -1,1 1,1
2019-08-12 12:59:45 +02:00
Nikolaus Waxweiler
0f3eaca219
models.py: minor lint fix
2019-08-10 22:20:24 +01:00
Nikolaus Waxweiler
68a5ceac6d
varLib: Remove py23 imports
2019-08-10 15:39:02 +01:00
Nikolaus Waxweiler
01328213c7
Remove __future__ imports
2019-08-09 12:20:13 +01:00
Behdad Esfahbod
2ac470b96b
Ouch, fix indentation
...
My bad. Really sorry.
2019-05-25 17:18:35 -04:00
Behdad Esfahbod
0442d9062a
Improve allEqual
2019-05-25 16:12:24 -04:00
Cosimo Lupo
2dedea5f8f
models: remove unused axisOrder argument from _computeMasterSupports private method
...
it's no longer used in the body of the method. If needed, it's accessible from self.axisOrder
2019-03-04 16:58:15 -08:00
Cosimo Lupo
f8c7950e48
models: minor: explicitly test for axisOrder is None
...
389cf7c56a (r32585140)
2019-03-04 16:51:53 -08:00
Cosimo Lupo
05824b8616
VariationModel: assert that locations are unique
2019-03-04 11:42:54 -08:00
Cosimo Lupo
d8152feb21
VariationModels: remove unused lowerBound/upperBound static methods
2019-03-04 11:15:06 -08:00
Cosimo Lupo
389cf7c56a
VariationModel: don't use mutable list default value for 'axisOrder' parameter
2019-03-04 10:58:47 -08:00
Cosimo Lupo
148b421705
models.main: actually pass normalized master locations to VariationModel
2019-03-01 13:04:52 -08:00
Behdad Esfahbod
31019eac8e
[CFF] Whitespace
2018-11-30 21:46:16 -05:00
ReadRoberts
331a55588b
[varlib] update model.reorderMasters() to support arbitrary mapping.
2018-11-30 10:37:34 -08:00
ReadRoberts
29b1246515
[varlib] Move master list reordering into models.py
...
It is useful to re-order the CFF2 master font list to match the sorted location order, but doing so means touching internal fields of the model, so we'll move this into the VariationModel class.
2018-11-30 09:12:27 -08:00
Behdad Esfahbod
5c1ca73123
[varLib] Rename allSame() to allEqual()
...
Being same ("is") is not the same as being equal ("=="), even though
the two are equal most of the time.
2018-11-10 15:06:07 -05:00
Behdad Esfahbod
7711755b2c
[varLib] Add mapper to allSameAs() and use it
2018-11-09 09:51:53 -05:00
Behdad Esfahbod
bff73edcfd
[varLib] Add models.allNone
2018-11-09 09:48:02 -05:00
Behdad Esfahbod
7cda1c1a97
[varLib] Add models.allSameAs()
2018-11-08 23:41:09 -05:00
Behdad Esfahbod
14e8c06565
[varLib] Fixups
...
Part of https://github.com/googlei18n/fontmake/issues/88
Part of https://github.com/fonttools/fonttools/issues/1355
2018-11-08 12:29:07 -05:00
Behdad Esfahbod
b95967dd07
[varLib] Add models.allSame() and use it
...
Part of https://github.com/googlei18n/fontmake/issues/88
Part of https://github.com/fonttools/fonttools/issues/1355
2018-11-08 11:36:58 -05:00
Behdad Esfahbod
fba530a548
[varLib] Add VariationModel.getDeltasAndSupports()
...
which automatically fetches submodel. Needs docstrings...
Part of https://github.com/googlei18n/fontmake/issues/88
Part of https://github.com/fonttools/fonttools/issues/1355
2018-11-08 11:31:44 -05:00
Behdad Esfahbod
6886075a23
[varLib] rename .modelFor() to .getSubModel()
...
Part of https://github.com/googlei18n/fontmake/issues/88
Part of https://github.com/fonttools/fonttools/issues/1355
2018-11-08 11:31:42 -05:00
Behdad Esfahbod
23c58e91d0
[varLib] Allow sparse masters for CVT tables
...
Part of https://github.com/googlei18n/fontmake/issues/88
Part of https://github.com/fonttools/fonttools/issues/1355
2018-11-08 11:31:41 -05:00
Behdad Esfahbod
65bcbf8ac2
[varLib] Implement getting subModels
...
To be used for sparse masters.
Part of https://github.com/googlei18n/fontmake/issues/88
Part of https://github.com/fonttools/fonttools/issues/1355
2018-11-08 11:31:25 -05:00
Behdad Esfahbod
62003f492f
[varLib] If multiple axes have the same range ratio, cut across both
...
The symmetry is desired.
Before:
$ ./fonttools varLib.models 0,0 .5,0 0,.5 .5,.5 1,1
Sorted locations:
[{}, {'A': 0.5}, {'B': 0.5}, {'A': 0.5, 'B': 0.5}, {'A': 1.0, 'B': 1.0}]
Supports:
[{},
{'A': (0, 0.5, 1.0)},
{'B': (0, 0.5, 1.0)},
{'A': (0, 0.5, 1.0), 'B': (0, 0.5, 1.0)},
{'A': (0.5, 1.0, 1.0), 'B': (0, 1.0, 1.0)}]
Note the last line assymetry.
After:
$ ./fonttools varLib.models 0,0 .5,0 0,.5 .5,.5 1,1
Sorted locations:
[{}, {'A': 0.5}, {'B': 0.5}, {'A': 0.5, 'B': 0.5}, {'A': 1.0, 'B': 1.0}]
Supports:
[{},
{'A': (0, 0.5, 1.0)},
{'B': (0, 0.5, 1.0)},
{'A': (0, 0.5, 1.0), 'B': (0, 0.5, 1.0)},
{'A': (0.5, 1.0, 1.0), 'B': (0.5, 1.0, 1.0)}]
7ee81c8821 (commitcomment-31054804)
2018-10-28 09:30:09 -07:00
Cosimo Lupo
6a5a4c7422
varLib.models: fix TypeError comparing float with None
2018-10-26 11:07:12 +01:00
Behdad Esfahbod
7ee81c8821
[varLib] Take total bounding box into account when resolving model
...
Umm. Not sure how useful this is, but helps with cases where there
were not masters on extremes and people expected this to work.
Happens in Higher-Order Interpolation since the axis extremes
are not interesting.
Fixes https://github.com/googlei18n/fontmake/issues/473
Test case (in case someone wants to add it to test suite!):
Before:
$ ./fonttools varLib.models 0,0 .5,0 0,.5 .5,.5 1,1
Sorted locations:
[{}, {'A': 0.5}, {'B': 0.5}, {'A': 0.5, 'B': 0.5}, {'A': 1.0, 'B': 1.0}]
Supports:
[{},
{'A': (0, 0.5, 0.5)},
{'B': (0, 0.5, 0.5)},
{'A': (0, 0.5, 0.5), 'B': (0, 0.5, 0.5)},
{'A': (0.5, 1.0, 1.0), 'B': (0, 1.0, 1.0)}]
After:
$ ./fonttools varLib.models 0,0 .5,0 0,.5 .5,.5 1,1
Sorted locations:
[{}, {'A': 0.5}, {'B': 0.5}, {'A': 0.5, 'B': 0.5}, {'A': 1.0, 'B': 1.0}]
Supports:
[{},
{'A': (0, 0.5, 1.0)},
{'B': (0, 0.5, 1.0)},
{'A': (0, 0.5, 1.0), 'B': (0, 0.5, 1.0)},
{'A': (0.5, 1.0, 1.0), 'B': (0, 1.0, 1.0)}]
2018-10-25 19:46:44 -07:00
Cosimo Lupo
8900505200
models: add piecewiseLinearMap function
...
copied from fontTools.varLib._DesignspaceAxis._map static method.
I place it here since it is also used by varLib.mutator, so makes sense
to have a public function
2018-09-11 18:06:06 +02:00
Behdad Esfahbod
a3a25e09b2
[varLib.models] Rename variables for clarity
2018-06-17 18:47:53 -04:00