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 "fab_output_settings.hpp" 14 #include "nlohmann/json_fwd.hpp" 16 #include "pool/pool.hpp" 18 #include "util/uuid.hpp" 19 #include "util/warning.hpp" 21 #include "via_padstack_provider.hpp" 32 void propagate_nets();
33 std::map<int, Layer> layers;
35 void delete_dependants();
36 void vacuum_junctions();
43 void expand(
bool careful =
false);
44 void expand_packages();
47 void operator=(
const Board &brd);
49 void update_airwires(
bool fast =
false,
const std::set<UUID> &nets = {});
56 const std::map<int, Layer> &get_layers()
const override;
57 void set_n_inner_layers(
unsigned int n);
58 unsigned int get_n_inner_layers()
const;
62 std::vector<KeepoutContour> get_keepout_contours()
const;
67 std::map<UUID, Polygon> polygons;
68 std::map<UUID, BoardHole> holes;
69 std::map<UUID, BoardPackage> packages;
70 std::map<UUID, Junction> junctions;
71 std::map<UUID, Track> tracks;
72 std::map<UUID, Track> airwires;
73 std::map<UUID, Via> vias;
74 std::map<UUID, Text> texts;
75 std::map<UUID, Line> lines;
76 std::map<UUID, Arc> arcs;
77 std::map<UUID, Plane> planes;
78 std::map<UUID, Keepout> keepouts;
79 std::map<UUID, Dimension> dimensions;
81 std::vector<Warning> warnings;
90 json serialize()
const;
92 uint64_t thickness = 0.035_mm;
93 uint64_t substrate_thickness = .1_mm;
95 std::map<int, StackupLayer> stackup;
104 ClipperLib::Paths obstacles;
105 ClipperLib::Path track_path;
109 EXPAND_PROPAGATE_NETS = (1 << 0),
110 EXPAND_AIRWIRES = (1 << 1),
111 EXPAND_PACKAGES = (1 << 2)
114 ExpandFlags expand_flags = EXPAND_ALL;
115 std::set<UUID> packages_expand;
117 json serialize()
const;
120 unsigned int n_inner_layers = 0;
121 ClipperLib::Paths get_thermals(
class Plane *plane,
const class CanvasPads *ca)
const;
Interface for classes that store objects identified by UUID (e.g. Line or Junction) ...
Definition: object_provider.hpp:10
Polygon used in Padstack, Package and Board for specifying filled Regions.
Definition: polygon.hpp:27
a class to store JSON values
Definition: json.hpp:161
Definition: canvas_patch.hpp:6
Definition: fab_output_settings.hpp:10
Definition: board_rules.hpp:20
Definition: via_padstack_provider.hpp:13
A block is one level of hierarchy in the netlist.
Definition: block.hpp:26
Definition: layer_provider.hpp:7
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
Stores objects (Unit, Entity, Symbol, Part, etc.) from the pool.
Definition: pool.hpp:19
Definition: canvas_pads.hpp:7
basic_json<> json
default JSON class
Definition: json_fwd.hpp:61
A Junction is a point in 2D-Space.
Definition: junction.hpp:25
Definition: common.hpp:207
Definition: board_package.hpp:17