16 void write_line(
const std::string &s);
18 void comment(
const std::string &s);
20 void write_apertures();
25 unsigned int get_or_create_aperture_circle(uint64_t diameter);
28 void draw_line(
const Coordi &from,
const Coordi &to, uint64_t width);
29 void draw_arc(
const Coordi &from,
const Coordi &to,
const Coordi ¢er,
bool flip, uint64_t width);
31 void draw_polygon(
const ClipperLib::Path &path);
32 void draw_fragments(
const ClipperLib::Paths &paths);
33 const std::string &get_filename();
38 Line(
const Coordi &f,
const Coordi &t,
unsigned int ap) : from(f), to(t), aperture(ap)
43 unsigned int aperture;
48 : from(f), to(t), center(c), flip(fl), aperture(ap)
55 unsigned int aperture;
60 Region(
const ClipperLib::Path &p,
bool d =
true,
int prio = 0) : path(p), dark(d), priority(prio){};
61 ClipperLib::Path path;
70 enum class Code {
CIRCLE = 1, CENTER_LINE = 21, OUTLINE = 4 };
72 std::vector<int64_t> modifiers;
99 std::vector<Coordi> vertices;
102 ApertureMacro(
unsigned int n) : name(n)
107 std::vector<std::unique_ptr<Primitive>> primitives;
111 std::string out_filename;
113 std::map<uint64_t, unsigned int> apertures_circle;
114 std::map<std::tuple<UUID, std::string, int, bool>, ApertureMacro> apertures_macro;
116 unsigned int aperture_n = 10;
118 std::deque<Line> lines;
119 std::deque<Arc> arcs;
120 ClipperLib::Paths fragments;
121 std::deque<ClipperLib::Path> polygons;
122 std::deque<std::pair<unsigned int, Coordi>> pads;
123 void write_decimal(int64_t x,
bool comma =
true);
124 void write_prim(
const ApertureMacro::PrimitiveOutline *prim);
125 void write_prim(
const ApertureMacro::PrimitiveCenterLine *prim);
127 void write_path(
const ClipperLib::Path &path);