2 #include "block/net.hpp"
3 #include "clipper/clipper.hpp"
4 #include "common/polygon.hpp"
11 PlaneSettings(
const json &j);
15 enum class Style { ROUND, SQUARE, MITER };
17 Style style = Style::ROUND;
19 bool keep_orphans =
false;
21 enum class ConnectStyle { SOLID, THERMAL };
22 ConnectStyle connect_style = ConnectStyle::SOLID;
25 uint64_t thermal_spoke_width = 0.2_mm;
27 enum class TextStyle { EXPAND, BBOX };
28 TextStyle text_style = TextStyle::EXPAND;
30 enum class FillStyle { SOLID, HATCH };
31 FillStyle fill_style = FillStyle::SOLID;
32 uint64_t hatch_border_width = 0.5_mm;
34 uint64_t hatch_line_spacing = 0.5_mm;
36 json serialize()
const;
39 class Plane :
public PolygonUsage {
46 Fragment(
const json &j);
48 ClipperLib::Paths paths;
49 bool contains(
const Coordi &c)
const;
50 json serialize()
const;
53 Plane(
const UUID &uu,
const json &j,
class Board &brd);
54 Plane(
const UUID &uu);
57 uuid_ptr<Polygon> polygon;
58 bool from_rules =
true;
60 PlaneSettings settings;
62 std::deque<Fragment> fragments;
63 unsigned int revision = 0;
65 Type get_type()
const override;
66 UUID get_uuid()
const override;
67 std::string get_name()
const;
69 json serialize()
const;