2#include "common/common.hpp"
11class KiCadModuleParser {
13 using LogCb = std::function<void(
const std::string &,
const std::string &)>;
14 void set_log_cb(LogCb cb);
20 static int get_layer(
const std::string &l);
21 static Coordi get_coord(
const SEXPR::SEXPR *data,
size_t offset = 1);
22 static Coordi get_size(
const SEXPR::SEXPR *data,
size_t offset = 1);
23 std::map<Coordi, class Junction *> junctions;
24 Junction *get_or_create_junction(
const Coordi &c);
27 virtual class Junction &create_junction() = 0;
28 virtual class Polygon &create_polygon() = 0;
29 virtual class Line &create_line() = 0;
32 virtual ~KiCadModuleParser()
37class KiCadPackageParser :
public KiCadModuleParser {
45 std::set<std::string> tags;
53 class Junction &create_junction()
override;
54 class Polygon &create_polygon()
override;
55 class Line &create_line()
override;
61class KiCadDecalParser :
public KiCadModuleParser {
63 KiCadDecalParser(
class Decal &d);
67 class Junction &create_junction()
override;
68 class Polygon &create_polygon()
override;
69 class Line &create_line()
override;
A Junction is a point in 2D-Space.
Definition junction.hpp:20
Graphical line.
Definition line.hpp:16
Definition package.hpp:29
Polygon used in Padstack, Package and Board for specifying filled Regions.
Definition polygon.hpp:28