James Godfrey-Kittle
152baa88a5
No lines over 80 characters
...
This meant going back on my horizontal whitespace around operators
stance, but in this case I think it looks better to reduce whitespace
than to break up the line.
2016-07-28 12:07:44 -07:00
James Godfrey-Kittle
65befad036
Update some comments
2016-07-28 12:03:53 -07:00
James Godfrey-Kittle
8dc57da4ae
Remove unnecessary parentheses
2016-07-28 12:00:13 -07:00
James Godfrey-Kittle
e5cf42545b
Variable names
...
In some cases these changes were made for clarity, in some cases more
just for consistency. Anyways we should now have mostly consistent and
reasonably clear variable names everywhere.
2016-07-28 11:56:14 -07:00
James Godfrey-Kittle
3225b1e249
No camelcase
...
I guess this was done for consistency with names in FontTools, but I
gotta say it was bugging me that some functions in this module used
underscores and some used camelcase. Style guide says underscores.
2016-07-28 11:41:42 -07:00
James Godfrey-Kittle
ccb1a73edd
Factor before variable when no whitespace
...
This is just a consistency thing; see code above change.
2016-07-28 11:37:08 -07:00
James Godfrey-Kittle
746873233b
More whitespace around binary operators
...
This is very subjective, but my preference is more whitespace.
Generally the only place I didn't put in whitespace was for
multiplication within statements that also contained additions,
without parentheses.
2016-07-28 11:35:32 -07:00
James Godfrey-Kittle
847d12180b
Get rid of unnecessary decimal points
...
We import division from __future__, so float division happens by
default.
2016-07-28 11:21:47 -07:00
James Godfrey-Kittle
d864619c8b
Typo
2016-07-27 16:52:19 -07:00
James Godfrey-Kittle
4d72a44d35
Remove unused code
2016-07-27 16:52:09 -07:00
James Godfrey-Kittle
a91108185f
Correct single-segment approximation return
2016-07-27 16:51:45 -07:00
James Godfrey-Kittle
039e35b212
No error returned from API, update tests
2016-07-27 13:21:47 -07:00
Behdad Esfahbod
9a2d4b810a
Reduce more work
2016-07-26 16:00:49 -04:00
Behdad Esfahbod
f6daaae2f8
Port dot() product to native complex operations
...
For reference:
http://www.solitaryroad.com/c606.html
2016-07-26 15:43:38 -04:00
Behdad Esfahbod
efb25578a1
Minor
2016-07-25 04:16:02 -04:00
Behdad Esfahbod
0b91ec8024
Remove unuse exception
2016-07-25 04:14:34 -04:00
Behdad Esfahbod
13cd5c3b09
Some more micro-optimization
2016-07-25 04:08:37 -04:00
Behdad Esfahbod
b9dcbb5668
Do some less work!
2016-07-25 04:00:44 -04:00
Behdad Esfahbod
021d8c107d
Remove unused code
2016-07-25 03:57:33 -04:00
Behdad Esfahbod
59e8ce6e84
Inline cubic_cubic_fit()
...
Results in a few percents speedup.
2016-07-25 03:53:23 -04:00
Behdad Esfahbod
3aa4c1e1e4
Remove unused error code
2016-07-25 03:38:13 -04:00
Behdad Esfahbod
612aa2af87
Return results in tuples, not complex points
2016-07-25 03:35:40 -04:00
Behdad Esfahbod
1cc3c5eae8
Inline _splitCubicIntoN()
2016-07-25 03:14:02 -04:00
Behdad Esfahbod
40bba687ab
Replace splitCubicAtT() with splitCubicIntoN()
...
Another 6% speedup.
2016-07-25 03:13:01 -04:00
Behdad Esfahbod
64af3ad4a8
Inline cubic_quadratic_fit()
...
Another 5%.
2016-07-25 03:04:51 -04:00
Behdad Esfahbod
abc18236af
Inline splitCubicIntoTwo()
...
Saves another 5%.
2016-07-25 02:12:15 -04:00
Behdad Esfahbod
c50d498ea5
Hand-code splitCubicIntoThree()
2016-07-24 14:10:41 -04:00
Behdad Esfahbod
8a13ef1edf
Use splitCubicIntoTwo() more
...
Shaves another 5%.
2016-07-24 13:54:52 -04:00
Behdad Esfahbod
dff2cd8669
Add splitCubicIntoTwo()
...
Speeds up another 15% or so.
2016-07-24 13:54:52 -04:00
Behdad Esfahbod
12629a715b
Whitespace
2016-07-23 17:11:45 -07:00
Behdad Esfahbod
f63a31dd99
Do less work.
2016-07-23 17:11:28 -07:00
Behdad Esfahbod
d3f566ba54
Use complex numbers to implement points
...
Shows a 30% speedup for me.
2016-07-22 23:40:44 -07:00
Behdad Esfahbod
46f8416fff
Remove more unused code
2016-07-22 23:11:13 -07:00
Behdad Esfahbod
bd52b4d510
Remove unused code
2016-07-22 15:52:00 -07:00
Behdad Esfahbod
49c2d886a0
Use exact error
...
To me, this looks about 40% faster.
WIP though. API needs to change to take out error output argument.
Further optimization is possible by merging loops.
2016-07-22 02:21:41 -07:00
Behdad Esfahbod
185216bbfe
Remove unused return values
2016-07-22 01:13:12 -07:00
Behdad Esfahbod
2d5e57e973
Make it twice faster by inlining lerp and expanding bezier equations
2016-07-22 00:49:19 -07:00
jamesgk
3c3c579ab1
Assert # error tolerances matches # fonts/curves
2015-12-10 12:50:53 -08:00
jamesgk
b568c934d0
Remove max_n parameter
...
This is probably not useful as a parameter, so instead we hardcode the
value into the main module.
2015-12-08 12:44:29 -08:00
jamesgk
856ffe1fca
Make only a few functions public
...
This way we hopefully don't have to worry about changing things behind
the scenes.
2015-12-08 12:42:42 -08:00
Cosimo Lupo
4dffdb7dd7
cu2qu.__init__: return (spline[s], error[s]) tuple from curve[s]_to_quadratic; raise exception if no approximation is found; ensure returned spline is a list of tuples
2015-12-07 15:09:26 +00:00
jamesgk
a79fb041a2
Use __future__ imports to ease Python2/3 compat
2015-12-04 13:07:32 -08:00
jamesgk
561bed0ea0
Remove Point class and only use built-ins
...
Using built-in types (mostly tuples) seems to cut the running time
overall by about one half. Spelling out linear interpolation in the
bezier_at functions actually cuts the running time by another 10%,
but I'm not sure if it's worth it given that this code looks a bit
nicer.
2015-12-01 13:22:24 -08:00
jamesgk
97ce534d7b
Move geometry.py to __init__.py
2015-12-01 12:30:31 -08:00
jamesgk
ebf1573564
Remove __init__.py (will be replace by geometry.py)
2015-12-01 11:04:48 -08:00
jamesgk
45364ed045
Move RoboFab-specific code to a "robofab" module
2015-11-19 16:40:52 -08:00
Cosimo Lupo
e8db3a18bb
don't truncate floats but round them before casting them to ints
2015-11-14 18:04:22 +00:00
jamesgk
ebcd99b1df
Rearrange some code
...
Hopefully this should make the code supporting the public API more
clear.
2015-11-12 16:36:23 -08:00
jamesgk
3855de8887
Move non-RoboFab code into a separate module
2015-11-12 16:22:15 -08:00
jamesgk
3e7c9a39d3
Move cu2qu into a package
2015-11-12 16:18:58 -08:00