Horizon
keepout.hpp
1 #pragma once
2 #include "common/polygon.hpp"
3 #include "clipper/clipper.hpp"
4 
5 namespace horizon {
6 using json = nlohmann::json;
7 
8 class Keepout : public PolygonUsage {
9 public:
10  Keepout(const UUID &uu, const json &j, class ObjectProvider &prv);
11  Keepout(const UUID &uu);
12  UUID uuid;
13  uuid_ptr<Polygon> polygon;
14  std::string keepout_class;
15 
16  std::set<PatchType> patch_types_cu;
17  bool exposed_cu_only = false;
18  bool all_cu_layers = false;
19 
20  Type get_type() const override;
21  UUID get_uuid() const override;
22 
23  json serialize() const;
24 };
25 
27 public:
28  const Keepout *keepout = nullptr;
29  const class BoardPackage *pkg = nullptr;
30  ClipperLib::Path contour;
31 };
32 
33 } // namespace horizon
Definition: board_package.hpp:15
Definition: keepout.hpp:26
Definition: keepout.hpp:8
Interface for classes that store objects identified by UUID (e.g. Line or Junction)
Definition: object_provider.hpp:10
Definition: polygon.hpp:15
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
Definition: uuid_ptr.hpp:8
a class to store JSON values
Definition: json.hpp:177
basic_json<> json
default JSON class
Definition: json_fwd.hpp:62