jamesgk
f7c251e9a2
Rename "report" parameter to "stats"
...
This also makes the stats parameter optional in the other public rf
module functions.
2015-12-08 14:21:44 -08:00
jamesgk
56f36a1b2a
[API] Take in list of fonts, no **kwarg syntax
...
This is hopefully the last non-backwards-compatible API change. We
take a list of fonts in rf.fonts_to_quadratic so that we can spell out
its keyword arguments explicitly. Also, only one max error argument is
accepted.
2015-12-08 14:19:57 -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
e6b47d61c9
cu2qu.rf: only get fist item returned from curve_to_quadratic, ignore approx error
...
curve_to_quadratic and curves_to_quadratic now return a (spline, error) tuple.
2015-12-07 15:09:26 +00: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
Behdad Esfahbod
aba3051aac
[benchmark] Print time in micro-seconds
2015-12-03 18:13:27 -08:00
jamesgk
72ebeb1085
Add license to benchmark script
2015-12-01 17:28:19 -08:00
jamesgk
3d4a7872ab
Add a benchmarking suite for curve/s_to_quadratic
2015-12-01 17:13:14 -08:00
jamesgk
a787cd2daf
Pass tuples to curves_to_quadratic in rf module
2015-12-01 17:12:30 -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
bf6b2d9f7e
Specify tolerance in em through max_err_em
...
This way, the `max_err` parameter is consistent with the other
functions (being in font units).
2015-11-24 12:52:03 -08:00
jamesgk
4f107a9119
Merge branch 'master' into error-em
2015-11-20 14:39:10 -08:00
jamesgk
79ea6b4973
Swap order of "max_err" and "max_n" parameters
...
I like this new order better, since max_err seems to be the more
important parameter, and it corresponds more closely with the actual
font object params (which can be lists) than max_n (which is always
a single value).
2015-11-20 12:06:18 -08:00
jamesgk
e94071a2d8
Specify max error in em instead of font units
...
This should be more compatible between fonts with different UPM. In
fact, it should work within a single call with such fonts.
The default max error is now 0.0025 em, which is about 5 units for a
2048 UPM font.
2015-11-20 12:04:48 -08:00
jamesgk
042a392d35
Take in dictionary of conversion stats
...
This allows stats to be accumulated between function calls.
2015-11-19 17:11:06 -08:00
jamesgk
8bbdb47cf5
Rename "robofab" module to "rf"
...
Apparently naming this robofab conflicts with the global robofab
module.
2015-11-19 16:59:49 -08:00
jamesgk
68d5213dd1
Update comments -- conversion is always compatible
2015-11-19 16:45:05 -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
jamesgk
ff3d0bae3b
More consistent naming
2015-11-06 11:15:12 -08:00
jamesgk
c551ce3ecf
Simplify API, always convert compatibly
2015-11-05 15:54:04 -08:00
jamesgk
d51c924893
Rename to cu2qu
...
We want a simpler, less dry name. The only thing this is missing is an
implication of interpolation-compatibility.
2015-11-05 15:43:14 -08:00
jamesgk
10b1e9f500
More descriptive variable names.
2015-10-05 17:36:36 -07:00
jamesgk
2712c74b37
Add comments, fix comment formatting.
2015-10-05 16:01:11 -07:00
jamesgk
b1c4f96001
Don't allow this to be run as a script
2015-10-01 17:59:40 -07:00
jamesgk
c6c61105d8
Clean up stuff
...
There should be no changed functionality here. Just cleaning:
- Consistent variable naming style
- Consistent quote types for strings
- No lines over 80 characters
- At least some comment for every function
- Get rid of excessive error catching
2015-10-01 17:41:19 -07:00
jamesgk
a411cd2138
Handle segment.as_quadratic like replace_segments
...
Have a non-collection function for this, then a method of
SegmentCollection which uses that function.
2015-10-01 17:40:19 -07:00
jamesgk
72fef95dfd
Return a report of conversion
2015-10-01 17:14:58 -07:00
jamesgk
a23b97e79c
Take max N and max error as user inputs
2015-10-01 17:10:40 -07:00
jamesgk
e686d61aeb
Initial commit
2015-10-01 17:09:28 -07:00