2 #include "block/block.hpp"
3 #include "board_hole.hpp"
4 #include "board_package.hpp"
5 #include "board_rules.hpp"
6 #include "clipper/clipper.hpp"
7 #include "common/dimension.hpp"
8 #include "common/hole.hpp"
9 #include "common/junction.hpp"
10 #include "common/layer_provider.hpp"
11 #include "common/polygon.hpp"
12 #include "common/keepout.hpp"
13 #include "common/pdf_export_settings.hpp"
14 #include "fab_output_settings.hpp"
15 #include "nlohmann/json_fwd.hpp"
17 #include "pool/pool.hpp"
19 #include "util/uuid.hpp"
20 #include "util/warning.hpp"
22 #include "via_padstack_provider.hpp"
23 #include "connection_line.hpp"
24 #include "step_export_settings.hpp"
35 void propagate_nets();
36 std::map<int, Layer> layers;
38 void delete_dependants();
39 void vacuum_junctions();
46 void expand(
bool careful =
false);
47 void expand_packages();
50 void operator=(
const Board &brd) =
delete;
52 void update_airwires(
bool fast =
false,
const std::set<UUID> &nets = {});
57 void smash_package_silkscreen_graphics(
BoardPackage *pkg);
61 const std::map<int, Layer> &get_layers()
const override;
62 void set_n_inner_layers(
unsigned int n);
63 unsigned int get_n_inner_layers()
const;
67 std::vector<KeepoutContour> get_keepout_contours()
const;
68 std::pair<Coordi, Coordi> get_bbox()
const;
74 std::map<UUID, Polygon> polygons;
75 std::map<UUID, BoardHole> holes;
76 std::map<UUID, BoardPackage> packages;
77 std::map<UUID, Junction> junctions;
78 std::map<UUID, Track> tracks;
79 std::map<UUID, Track> airwires;
80 std::map<UUID, Via> vias;
81 std::map<UUID, Text> texts;
82 std::map<UUID, Line> lines;
83 std::map<UUID, Arc> arcs;
84 std::map<UUID, Plane> planes;
85 std::map<UUID, Keepout> keepouts;
86 std::map<UUID, Dimension> dimensions;
87 std::map<UUID, ConnectionLine> connection_lines;
89 std::vector<Warning> warnings;
98 json serialize()
const;
101 uint64_t substrate_thickness = .1_mm;
103 std::map<int, StackupLayer> stackup;
115 ClipperLib::Paths obstacles;
116 ClipperLib::Path track_path;
120 EXPAND_PROPAGATE_NETS = (1 << 0),
121 EXPAND_AIRWIRES = (1 << 1),
122 EXPAND_PACKAGES = (1 << 2)
125 ExpandFlags expand_flags = EXPAND_ALL;
126 std::set<UUID> packages_expand;
128 json serialize()
const;
131 unsigned int n_inner_layers = 0;
132 ClipperLib::Paths get_thermals(
class Plane *plane,
const class CanvasPads *ca)
const;
133 void flip_package_layer(
int &layer)
const;