2 #include "util/uuid.hpp"
3 #include "nlohmann/json_fwd.hpp"
5 #include "junction.hpp"
6 #include "util/uuid_ptr.hpp"
17 enum class Type { INVALID, PLANE, KEEPOUT };
18 virtual Type get_type()
const = 0;
19 virtual UUID get_uuid()
const = 0;
20 virtual ~PolygonUsage(){};
31 enum class Type { LINE, ARC };
33 Vertex(
const json &j);
34 Vertex(
const Coordi &c);
38 json serialize()
const;
41 Type type = Type::LINE;
52 Polygon(
const UUID &uu,
const json &j);
53 Polygon(
const UUID &uu);
54 UUID get_uuid()
const;
56 Vertex *append_vertex(
const Coordi &pos = Coordi());
57 std::pair<unsigned int, unsigned int> get_vertices_for_edge(
unsigned int edge);
69 bool is_valid()
const;
72 std::deque<Vertex> vertices;
74 std::string parameter_class;
77 json serialize()
const;
bool arc_reverse
false: counter clockwise true: clockwise
Definition: polygon.hpp:48
Polygon used in Padstack, Package and Board for specifying filled Regions.
Definition: polygon.hpp:27
Polygon remove_arcs(unsigned int precision=16) const
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:166
basic_json<> json
default JSON class
Definition: json_fwd.hpp:61