67 Commits

Author SHA1 Message Date
Nikolaus Waxweiler
d584daa8fd Blacken code 2022-12-13 11:26:36 +00:00
Simon Cozens
54e307ea6c Fix docTests 2021-09-23 08:20:51 +01:00
Simon Cozens
ed0cf2fa92 Typo 2021-09-23 08:10:00 +01:00
Simon Cozens
13f6cbdaba Fix doctests 2021-09-22 16:41:02 +01:00
Simon Cozens
1cc8bf0827 Fix two problems when handling orthogonal lines 2021-09-22 16:28:10 +01:00
Just van Rossum
5fc65d7168
Misc py23 cleanups (#2243)
* Replaced all from ...py23 import * with explicit name imports, or removed completely when possible.
* Replaced tounicode() with tostr()
* Changed all BytesIO ans StringIO imports to from io import ..., replaced all UnicodeIO with StringIO.
* Replaced all unichr() with chr()
* Misc minor tweaks and fixes
2021-03-29 11:45:58 +02:00
Just van Rossum
6a8821d91c
Revert "Use Vector in some places where it improves the clarity of the code" (#2215)
* Revert most of "Use Vector in some places where it improves the clarity of the code (#2206)"

This reverts most of commit 0d3ce2cafc6f604fc46d4d3bfbab34a5bc59e27b.
2021-03-04 20:15:24 +01:00
Just van Rossum
0d3ce2cafc
Use Vector in some places where it improves the clarity of the code (#2206)
* Use Vector in some places where it improves the clarity of the code

* add __all__ to vector.py

* turned some list comprehensions into generator expressions: there's no need for an intermediate list in these cases

* Add empty __slots__ to Vector, so we don't waste space on a __dict__.

* add some tests for segmentPointAtT
2021-03-04 15:32:45 +01:00
Simon Cozens
a775b6e19c Fix _aligment_transformation as suggested 2021-02-26 13:13:59 +00:00
Simon Cozens
60c1ee0107 Black whole module 2021-02-26 10:03:37 +00:00
Simon Cozens
1a3478da0e Fixes from review 2021-02-26 10:03:32 +00:00
Simon Cozens
2ef7964e90 If we swapped the segments, we must swap them back when returning results 2021-02-18 22:12:20 +00:00
Simon Cozens
1795ee98b2 Address various feedback 2021-02-18 14:54:27 +00:00
Simon Cozens
fdceeee0c6 Unnecessary parens 2021-02-18 11:39:46 +00:00
Simon Cozens
c082616c6f Make hacky uniquifying thing more explicit 2021-02-18 11:39:36 +00:00
Simon Cozens
80a3227f44 Raise error in unknown curve degrees 2021-02-18 11:39:01 +00:00
Simon Cozens
6a223e5f93 Rename parameters 2021-02-18 11:38:40 +00:00
Simon Cozens
2e211194c8 No harm in handling all segment types here 2021-02-18 11:23:24 +00:00
Simon Cozens
c17b1c9e9f Oops, this has a different interface to the curve-based ones 2021-02-18 11:20:45 +00:00
Simon Cozens
01957a9b94 Intersection and point-at-time functions from beziers.py 2021-02-18 10:49:52 +00:00
justvanrossum
186032cb10 fixed formatting 2020-11-09 15:39:21 +01:00
Simon Cozens
76902b7129
[docs] fontTools.misc.* part 1 (#1956)
* Document misc.arrayTools
* Document misc.bezierTools
* Document cliTools
* Document eexec
2020-05-19 09:51:17 +01:00
Nikolaus Waxweiler
01328213c7 Remove __future__ imports 2019-08-09 12:20:13 +01:00
Behdad Esfahbod
2d4e76ff0b [bezierTools] Add calcCubicArcLength() and calcCubicArcLengthC()
Fixes https://github.com/fonttools/fonttools/issues/1142
2018-01-09 11:33:57 +01:00
Behdad Esfahbod
f7312fc9d0 [misc.bezierTools] Slightly improve previous commit
Part of https://github.com/fonttools/fonttools/issues/1142
2018-01-08 13:43:45 +00:00
Behdad Esfahbod
5dd888da1d [misc.bezierTools] Implement cusp loop for calcQuadraticArcLength()
Part of https://github.com/fonttools/fonttools/issues/1142
2018-01-08 13:41:27 +00:00
Behdad Esfahbod
fe5a2ea870 [misc.bezierTools] Remove approximate_fallback arg from calcQuadraticArcLength()
Part of https://github.com/fonttools/fonttools/issues/1142
2018-01-08 13:41:27 +00:00
Jens Kutilek
dd558f5df8 Move arc length calculations from pens.perimeterPen to misc.bezierTools 2017-11-14 13:03:58 +01:00
Cosimo Lupo
25aad9041d minor: fix doctest failing on latest pypy
Expected:
    [-0.0, -0.0, -0.0]
Got:
    [0.0, 0.0, 0.0]
2017-07-24 16:47:07 +01:00
Behdad Esfahbod
8701fedcfe More solveCubic() hardening
It really should be quite solid this time. :-)
2016-08-13 16:29:49 -07:00
Behdad Esfahbod
5bea5f4fd6 Remove unused line 2016-08-13 16:25:09 -07:00
Behdad Esfahbod
ca7f8d8808 Harden solveCubic() some more
Fixes https://github.com/behdad/fonttools/issues/617#issuecomment-239146815
2016-08-12 22:43:20 -07:00
Behdad Esfahbod
02b415c237 [bezierTools] Speed up a bit 2016-07-29 14:40:10 -07:00
Behdad Esfahbod
d96e246532 Make solveCubic() more robust
Fixes https://github.com/behdad/fonttools/issues/621#issuecomment-226671968
2016-07-19 22:50:09 -07:00
Behdad Esfahbod
10aaac53f2 Fix test 2016-07-16 21:58:41 -07:00
Behdad Esfahbod
81d84e6f85 Fix PointInsidePen
https://github.com/behdad/fonttools/issues/621
2016-07-16 21:47:37 -07:00
Behdad Esfahbod
78c29bc5a1 Some more solveCubic() work
Should be stable again now.
2016-06-08 18:56:31 -07:00
Behdad Esfahbod
b2bd15d580 Make solveCubic() more robust
Also, return duplicate roots multiple times.

Part of https://github.com/behdad/fonttools/issues/617
2016-06-08 14:54:23 -07:00
Behdad Esfahbod
d1424e9d5a Improve solveCubic() against rounding issues
Might fix https://github.com/behdad/fonttools/issues/617
2016-06-07 14:16:42 -07:00
Behdad Esfahbod
b30e12ae00 More whitespace 2015-04-26 02:01:01 -04:00
Behdad Esfahbod
bd67253118 Some more whitespace fixes from pep8 tool 2015-04-26 01:59:01 -04:00
Cosimo Lupo
1b58b828af [bezierTools] fix bug in splitLine function
The function was returning wrong values when the two points are
vertically aligned and the split 'isHorizontal':
Fixes https://github.com/behdad/fonttools/issues/241
2015-04-19 03:10:59 -07:00
Behdad Esfahbod
1296c7457e Make tests pass with Python3
In python3, str(float) is noisy.  Always format floats using "%g".
2015-03-03 15:54:37 -08:00
Behdad Esfahbod
e02b9ea05b Fix tests to return failures 2015-03-03 10:47:40 -08:00
Behdad Esfahbod
f192400039 Fix checks; add run-tests.sh 2015-03-03 09:57:41 -08:00
Behdad Esfahbod
1ae29591ef from __future__ import absolute_import
Such that our Python 2 is closer to Python 3.

Part of https://github.com/behdad/fonttools/issues/77
2014-01-14 15:07:50 +08:00
Behdad Esfahbod
153ec40209 Fix a few pychecker warnings
Fixes https://github.com/behdad/fonttools/issues/58
2013-12-04 01:15:46 -05:00
Behdad Esfahbod
32c10eecff py23 from __future__ import division and adjust divisions 2013-11-28 17:32:42 -05:00
Behdad Esfahbod
30e691edd0 py23 from __future__ import print_function 2013-11-27 17:27:45 -05:00
Behdad Esfahbod
7ed91eca1e py23 import in all nontrivial source files and unused import cleanup 2013-11-27 15:25:00 -05:00