Cosimo Lupo
ac3b30e0db
areaPen.py: add default __future__ imports
2016-06-11 23:07:23 +01:00
Cosimo Lupo
ad4b94f4b9
areaPen.py: use regular tuples for points instead of namedtuple
2016-06-11 23:07:23 +01:00
Cosimo Lupo
046333dda5
areaPen.py: pen to calculate the area of a glyph (by Behdad)
...
https://github.com/behdad/fonttools/issues/617#issuecomment-225029592
2016-06-11 23:07:23 +01:00
Cosimo Lupo
d4b9a2bec3
[ttGlyphPen_test] ttProgram has __eq__ now, remove unnecessary assignments
...
previously assertEqual would fail, despite the `program` attributes where both empty, as the object have different id(). The Program.__eq__ method now compares self.__dict__ == other.__dict__, hence the test pass.
2016-03-11 15:10:50 +00:00
Cosimo Lupo
9b83c377c2
[ttGlyphPen] only add empty ttProgram to simple glyphs, not to composites
...
Unlike simple glyphs (with contours) which must always have `instructionLength`, the field is optional in composite glyphs and depends on whether `WE_HAVE_INSTR` flag is set:
https://www.microsoft.com/typography/otspec/glyf.htm
In the previous code, the TTGlyphPen was adding an empty `program` attribute to any new glyph, including composite glyphs. It should only do it for simple glyphs.
For example, if you take Roboto-Regular.ttf from here:
https://github.com/google/roboto/releases/tag/v2.129
The font (unhinted) was compiled using the ttGlyphPen. It has 1434 composite glyphs. For each of them, a USHORT value for the number of instructions (0) is written, so the binary ttf is 2.868 KB greater than
what it should be.
2016-03-11 10:53:41 +00:00
Cosimo Lupo
87d13888ce
[ttGlyphPen] check last point in qCurveTo is not None
...
otherwise, if points[-1] == 0, the on-curve point won't be added.
2016-03-09 17:58:48 +00:00
James Godfrey-Kittle
fd5b6de3ba
[TTGlyphPen] Add component flags argument
2016-03-07 14:48:46 -08:00
James Godfrey-Kittle
f02e771527
[TTGlyphPen] Don't cast values to int
...
The glyf table will handle rounding when compiling, so this is
unnecessary.
2016-02-16 17:17:14 -08:00
Cosimo Lupo
c4d2ebca66
remove deprecated use of 'quiet' option in test modules
2016-02-01 13:39:39 +00:00
Cosimo Lupo
974421e8b0
boundsPen_test: test single-point contours, with/without 'ignoreSinglePoints'
2016-01-07 15:48:23 +00:00
Cosimo Lupo
dc2ef2e341
boundsPen: add 'ignoreSinglePoints' argument to do like robofab.pens.boundsPen
...
if `ignoreSinglePoints` is True, single points are excluded from the computation of the bounds.
The default value (False) keeps the current behaviour (i.e., single points are not ignored).
https://github.com/robofab-developers/robofab/blob/master/Lib/robofab/pens/boundsPen.py
See discussion at: https://github.com/typemytype/booleanOperations/pull/20
2016-01-07 15:47:31 +00:00
James Godfrey-Kittle
45e496fdb8
[TTGlyphPen] Use bytes for array.array for python3
2015-11-06 11:50:39 -08:00
James Godfrey-Kittle
981ad5978c
Add endPath method to TransformPen
...
I think this was just forgotten before.
2015-11-06 11:25:48 -08:00
James Godfrey-Kittle
9ff7d62454
[TTGlyphPen] Do special case ignoring anchors
...
This fixes the ignoring anchors test, which led me to believe we
didn't need to special case them (which we do, and now are).
2015-11-05 15:28:19 -08:00
James Godfrey-Kittle
6dc5092e2b
[TTGlyphPen] Move some code around
...
No effective differences, just lingering un-committed local changes.
2015-11-05 15:19:53 -08:00
James Godfrey-Kittle
ec2daf00e4
[TTGlyphPen] Add unit tests
...
These test some pen methods which can't be tested via TTFont objects.
The other option seemed to be using UFOs, but this is simpler.
2015-11-05 15:18:32 -08:00
James Godfrey-Kittle
1bff12f311
[TTGlyphPen] Don't explicitly relcalc glyph bounds
...
There's no need to do this explicitly; it happens during the calls to
compile().
2015-11-05 15:13:43 -08:00
James Godfrey-Kittle
0b3b83f765
[TTGlyphPen] Don't special case ignoring anchors
...
There's no need to special case this, it happens anyways.
2015-11-05 15:12:18 -08:00
James Godfrey-Kittle
f5b9ec0186
[TTGlyphPen] Add a new e2e test
2015-11-05 14:11:51 -08:00
James Godfrey-Kittle
b511b2b0d8
[TTGlyphPen] Go back to using AbstractPen
...
Using BasePen breaks on quadratic splines, since there's no way to
know if a on-curve point was added by the pen or in the original
glyph. Should have considered this before....
2015-11-05 13:57:53 -08:00
James Godfrey-Kittle
7767683ea4
[TTGlyphPen] Abstract out a _popPoint method
2015-11-05 13:57:06 -08:00
James Godfrey-Kittle
9f5c51897c
[TTGlyphPen] Move checks for closed contours
...
We probably don't want to raise errors in init, which allows a drawer
to reset the pen state.
2015-11-05 13:54:51 -08:00
James Godfrey-Kittle
943d258bdb
[TTGlyphPen] Add a test using existing test data
2015-11-04 18:01:34 -08:00
James Godfrey-Kittle
fa82fcd213
[TTGlyphPen] Make components with correct defaults
...
This seems consistent with what one sees opening up an existing TTF.
2015-11-04 17:59:57 -08:00
James Godfrey-Kittle
8c61d08d94
[TTGlyphPen] Remove last point in closed contours
...
When a pen adds the first point to a contour at the end to close it,
we should remove it for the TrueType outline.
2015-11-04 17:58:27 -08:00
James Godfrey-Kittle
1c73a1942a
Don't use lineTo in moveTo
...
It shouldn't make a difference, but semantically this is now correct.
2015-11-04 17:21:17 -08:00
James Godfrey-Kittle
b83ed7ab2b
Allow a TTGlyph pen to be used more than once
2015-11-04 17:19:58 -08:00
James Godfrey-Kittle
58dd55c0ae
Use BasePen instead of AbstractPen in TTGlyphPen
2015-11-04 17:18:03 -08:00
James Godfrey-Kittle
5d7f3a9a1f
Fix author name typo
2015-10-30 10:32:04 -07:00
James Godfrey-Kittle
e85b975f3a
Fix imports in t2CharStringPen
...
We don't need the array module here, and it looks like py23.* should
be imported everywhere.
2015-10-23 11:36:46 -07:00
James Godfrey-Kittle
82e53f020c
Use Python3-compatible arguments for roundIntPoint
2015-10-23 11:23:21 -07:00
James Godfrey-Kittle
7b3ac62db7
Add pen which draws to Type 2 charstrings
2015-10-23 11:15:16 -07:00
James Godfrey-Kittle
8b4c3b7892
Add assertion and comments to ttGlyphPen
2015-10-06 09:14:04 -07:00
James Godfrey-Kittle
b916c5bb93
ttGlyphPen: handle qcurves with no on-curve points
2015-10-06 09:12:15 -07:00
James Godfrey-Kittle
b0c03b86d6
Add pen which draws to TrueType glyphs.
2015-10-01 15:12:20 -07:00
Cosimo Lupo
915b8c303a
Merge pull request #332 from miguelsousa/mixed_indents
...
fix "indentation contains mixed spaces and tabs" errors reported by Landscape
2015-08-09 13:21:30 +01:00
Miguel Sousa
d28a942683
fix two misc errors reported by Landscape
2015-08-09 00:40:31 -07:00
Miguel Sousa
a7aef47695
fix "indentation contains mixed spaces and tabs" errors reported by Landscape
2015-08-09 00:33:50 -07:00
Cosimo Lupo
bf0e336d31
replace all 'StringIO' with 'BytesIO'
2015-08-07 17:25:22 +01:00
Sascha Brawer
3cb5c9ca7c
Replace calls to obsolete unittest.assertEquals()
...
Since Python 2.7, unittest.assertEquals() has been deprecated.
https://docs.python.org/2.7/library/unittest.html#deprecated-aliases
2015-06-25 10:11:52 +02:00
Sascha Brawer
79bdf00587
Unit tests for PointInsidePen
2015-05-29 09:52:09 +02:00
Sascha Brawer
c84975299e
Unit tests for BoundsPen
2015-05-26 11:32:11 +02:00
Sascha Brawer
4bdf5140c4
Unit tests for BasePen
2015-05-09 13:20:56 +02:00
Behdad Esfahbod
7c9ab300c2
Add standard imports to all python sources
...
Previously, the trivial files didn't have them.
2015-04-14 17:26:59 -07:00
Adrien Tétar
65be78bd59
pens: qtPen tuple unpacking (py3/PEP3113)
...
http://legacy.python.org/dev/peps/pep-3113/
2014-09-25 22:15:23 +02:00
Adrien Tétar
8ed8e46659
pens: add a Qt pen
2014-09-20 10:21:33 +02: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