2 #include "common/common.hpp"
3 #include "util/placement.hpp"
4 #include "util/uuid.hpp"
8 #include "attributes.hpp"
9 #include "clipper/clipper.hpp"
10 #include "board/plane.hpp"
11 #include "eda_data.hpp"
12 #include "attribute_util.hpp"
13 #include "features.hpp"
14 #include "components.hpp"
27 namespace horizon::ODB {
31 enum class Polarity { POSITIVE, NEGATIVE };
35 std::map<std::string, Features> layer_features;
36 std::optional<Features> profile;
38 std::optional<Components> comp_top;
39 std::optional<Components> comp_bot;
50 std::map<std::string, unsigned int> steps;
54 Layer(
unsigned int r,
const std::string &n) : row(r), name(n)
58 const unsigned int row;
59 const std::string name;
61 enum class Context { BOARD, MISC };
79 std::optional<Span> span;
81 Polarity polarity = Polarity::POSITIVE;
83 std::vector<Layer> layers;
85 Layer &add_layer(
const std::string &name);
86 void add_step(
const std::string &name);
88 void write(std::ostream &ost)
const;
99 Step &add_step(
const std::string &name);
101 std::string job_name =
"board";
102 std::map<std::string, Step> steps;
104 using SymbolKey = std::tuple<UUID, int, std::string>;
105 std::map<SymbolKey, Symbol> symbols;
106 std::set<std::string> symbol_names;
108 std::string get_or_create_symbol(
const Padstack &ps,
int layer);
113 std::string enum_to_string(Polarity);
114 std::string enum_to_string(Matrix::Layer::Type);
115 std::string enum_to_string(Matrix::Layer::Context);
Definition: board_package.hpp:13
Definition: components.hpp:25
Definition: eda_data.hpp:17
Definition: padstack.hpp:19
Definition: tree_writer.hpp:7