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"
27namespace horizon::ODB {
31enum 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);
113std::string enum_to_string(Polarity);
114std::string enum_to_string(Matrix::Layer::Type);
115std::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