50 void propagate_nets();
51 std::map<int, Layer> layers;
53 void delete_dependants();
54 void vacuum_junctions();
58 static Board new_from_file(
const std::string &filename,
Block &block,
IPool &pool);
60 static unsigned int get_app_version();
67 void operator=(
const Board &brd) =
delete;
69 void update_junction_connections();
70 void update_airwires(
bool fast,
const std::set<UUID> &nets);
75 void smash_package_silkscreen_graphics(
BoardPackage *pkg);
81 const std::map<int, Layer> &get_layers()
const override;
82 void set_n_inner_layers(
unsigned int n);
83 unsigned int get_n_inner_layers()
const;
86 plane_update_status_cb_t status_cb =
nullptr,
87 const std::atomic_bool &cancel = std::atomic_bool(
false));
88 void update_planes(plane_update_status_cb_t status_cb =
nullptr,
89 const std::atomic_bool &cancel = std::atomic_bool(
false));
90 std::vector<KeepoutContour> get_keepout_contours()
const;
91 std::pair<Coordi, Coordi> get_bbox()
const;
93 std::map<const BoardPackage *, PnPRow> get_PnP(
const PnPExportSettings &settings)
const;
99 std::map<UUID, Polygon> polygons;
100 std::map<UUID, BoardHole> holes;
101 std::map<UUID, BoardPackage> packages;
102 std::map<UUID, BoardJunction> junctions;
103 std::map<UUID, Track> tracks;
104 std::map<UUID, Via> vias;
105 std::map<UUID, Text> texts;
106 std::map<UUID, Line> lines;
107 std::map<UUID, Arc> arcs;
108 std::map<UUID, Plane> planes;
109 std::map<UUID, Keepout> keepouts;
110 std::map<UUID, Dimension> dimensions;
111 std::map<UUID, ConnectionLine> connection_lines;
112 std::map<UUID, IncludedBoard> included_boards;
113 std::map<UUID, BoardPanel> board_panels;
114 std::map<UUID, Picture> pictures;
115 std::map<UUID, BoardDecal> decals;
116 std::map<UUID, BoardNetTie> net_ties;
118 std::vector<Warning> warnings;
120 enum class OutputFormat { GERBER, ODB };
121 OutputFormat output_format = OutputFormat::GERBER;
129 std::map<UUID, std::list<Airwire>> airwires;
135 json serialize()
const;
137 uint64_t thickness = 0.035_mm;
138 uint64_t substrate_thickness = .1_mm;
140 std::map<int, StackupLayer> stackup;
152 EXPAND_PROPAGATE_NETS = (1 << 0),
153 EXPAND_AIRWIRES = (1 << 1),
154 EXPAND_PACKAGES = (1 << 2),
155 EXPAND_VIAS = (1 << 3),
156 EXPAND_ALL_AIRWIRES = (1 << 4),
159 ExpandFlags expand_flags = EXPAND_ALL;
160 std::set<UUID> airwires_expand;
162 json serialize()
const;
163 json serialize_planes()
const;
164 void load_planes(
const json &j);
165 void load_planes_from_file(
const std::string &filename);
166 void save_planes(
const std::string &filename);
168 void save_pictures(
const std::string &dir)
const;
169 void load_pictures(
const std::string &dir);
171 ItemSet get_pool_items_used()
const;
173 void flip_package_layer(
int &layer)
const;
174 int get_package_layer(
bool flip,
int layer)
const;
175 ParameterSet get_parameters()
const;
179 std::vector<Polygon> holes;
185 Outline get_outline_and_errors()
const;
187 std::set<LayerRange> get_drill_spans()
const;
189 std::string board_directory;
192 unsigned int n_inner_layers = 0;
193 ClipperLib::Paths get_thermals(
class Plane *plane,
const class CanvasPads *ca)
const;
194 void update_all_airwires();
195 void update_airwire(
bool fast,
const UUID &net);
198 void expand_packages();
199 Outline get_outline(
bool with_errors)
const;