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;
31 enum class Type { LINE, ARC };
38 json serialize()
const;
41 Type type = Type::LINE;
54 UUID get_uuid()
const;
57 std::pair<unsigned int, unsigned int> get_vertices_for_edge(
unsigned int edge);
58 const Vertex &get_vertex(
int edge)
const;
59 Vertex &get_vertex(
int edge);
71 bool is_valid()
const;
72 std::pair<Coordi, Coordi> get_bbox()
const;
75 std::vector<Vertex> vertices;
77 std::string parameter_class;
80 json serialize()
const;
Definition: polygon.hpp:15
Definition: polygon.hpp:29
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
Definition: polygon.cpp:58
bool has_arcs() const
Definition: polygon.cpp:119
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