- cameo/path.c (path_is_closed): use points_eq instead of open-coding the
comparison
- cameo//path.c (EPSILON_MM, points_eq): consider two points as equal if
their projections on the xy plane are less than EPSILON_MM apart and
their z positions don't differ by more than the same distance
- Makefile (OBJS): added gerber.o
- cameo.c (usage, main): new option -g to process input a KiCad Gerber
- gerber.h, gerber.c (gerber_read): parse Gerber files as generated by KiCad
- path.h, path.c (path_reverse_inplace, points_eq, attr_eq, path_connect):
merge sets of paths with equal endpoints into single paths
- cameo/cameo.c (main): use getopt
- cameo/cameo.c (main, usage, process_path): option -d to enable dog-bone
notches (they're now disabled by default)
- cameo/path.h (struct path), cameo/path.c (path_new, path_from): added
attribute "notch" to enable notches for a path
- cameo/gnuplot.c (gnuplot_read, gnuplot_do_write): read and write the
#%notch hint
- cameo/cameo.c (process_paths): explain the inside/outside path detection
heuristics
- cameo/path.h (struct path), cameo/path.c (path_new): added attribute
"outside" to explicitly mark paths as outside edges
- cameo/path.c (path_from): new function to make a path that takes the
attributes of another path
- cameo/path.c (path_reverse, path_offset): use path_from instead of
path_new
- cameo/gnuplot.c (gnuplot_read, gnuplot_do_write): read and write the
#%outside hint
- cameo/path.h, cameo/path.c (path_replace): replace a path in a list of
paths with a different path
- cameo/path.h, cameo/path.c (path_find_leftmost): find the leftmost path
in a list of paths
- cameo/path.h, cameo/path.c (path_free): move freeing of points to separate
function free_points, for sharing with path_replace
- cameo/cameo.c (main): move path processing to new function process_paths
- cameo/cameo.c (process_paths): treat the leftmost path a outside path and
process it last. Treat all others as inside paths.
- cameo/Makefile (CFLAGS): added more warning flags
- cameo/path.h (path_direction): removed unused prototype
- cameo/path.c (angle): renamed to angle_3 to keep it from getting shadowed
by local variable
- cameo/path.h, cameo/path.c (offset_point, path_offset): added "left"
argument to indicate the handedness
- cameo/path.h, cameo/path.c (path_tool_is_left): new function to determine
which way the path turns
- cameo/cameo.c: auto-detect handedness and instruct path_offset accordingly