2#include "util/uuid.hpp"
3#include "nlohmann/json_fwd.hpp"
6#include "util/uuid_ptr.hpp"
15 enum class Type { INVALID, PLANE, KEEPOUT };
16 virtual Type get_type()
const = 0;
17 virtual UUID get_uuid()
const = 0;
29 enum class Type { LINE, ARC };
36 json serialize()
const;
39 Type type = Type::LINE;
52 UUID get_uuid()
const;
55 std::pair<unsigned int, unsigned int> get_vertices_for_edge(
unsigned int edge);
56 const Vertex &get_vertex(
int edge)
const;
57 Vertex &get_vertex(
int edge);
69 bool is_valid()
const;
70 std::pair<Coordi, Coordi> get_bbox()
const;
80 std::vector<Vertex> vertices;
82 std::string parameter_class;
85 json serialize()
const;
Definition polygon.hpp:13
Definition polygon.hpp:27
bool arc_reverse
false: counter clockwise true: clockwise
Definition polygon.hpp:46
Polygon used in Padstack, Package and Board for specifying filled Regions.
Definition polygon.hpp:25
Polygon remove_arcs(unsigned int precision=16) const
Definition polygon.cpp:53
bool has_arcs() const
Definition polygon.cpp:114
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