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"
28namespace horizon::ODB {
32enum class Polarity { POSITIVE, NEGATIVE };
36 std::map<std::string, Features> layer_features;
37 std::optional<Features> profile;
39 std::optional<Components> comp_top;
40 std::optional<Components> comp_bot;
51 std::map<std::string, unsigned int> steps;
55 Layer(
unsigned int r,
const std::string &n) : row(r), name(n)
59 const unsigned int row;
60 const std::string name;
62 enum class Context { BOARD, MISC };
82 std::optional<Span> span;
95 std::optional<Subtype> add_type;
97 Polarity polarity = Polarity::POSITIVE;
99 std::vector<Layer> layers;
101 Layer &add_layer(
const std::string &name);
102 void add_step(
const std::string &name);
104 void write(std::ostream &ost)
const;
107 unsigned int row = 1;
108 unsigned int col = 1;
115 Step &add_step(
const std::string &name);
117 std::string job_name =
"board";
118 std::map<std::string, Step> steps;
120 using SymbolKey = std::tuple<UUID, int, std::string>;
121 std::map<SymbolKey, Symbol> symbols;
122 std::set<std::string> symbol_names;
129std::string enum_to_string(Polarity);
130std::string enum_to_string(Matrix::Layer::Type);
131std::string enum_to_string(Matrix::Layer::Context);
Definition board_package.hpp:13
Definition layer_provider.hpp:8
Definition components.hpp:25
Definition eda_data.hpp:17
Definition package.hpp:29
Definition padstack.hpp:19
Polygon used in Padstack, Package and Board for specifying filled Regions.
Definition polygon.hpp:28
For commonly used Pad shapes.
Definition shape.hpp:15
Definition tree_writer.hpp:7