Horizon
Loading...
Searching...
No Matches
document.hpp
1#pragma once
2#include "idocument.hpp"
3
4namespace horizon {
5class Document : public virtual IDocument {
6public:
7 class Junction *insert_junction(const class UUID &uu) override;
8 class Junction *get_junction(const UUID &uu) override;
9 void delete_junction(const UUID &uu) override;
10
11 class Line *insert_line(const UUID &uu) override;
12 class Line *get_line(const UUID &uu) override;
13 void delete_line(const UUID &uu) override;
14
15 class Arc *insert_arc(const UUID &uu) override;
16 class Arc *get_arc(const UUID &uu) override;
17 void delete_arc(const UUID &uu) override;
18
19 class Text *insert_text(const UUID &uu) override;
20 class Text *get_text(const UUID &uu) override;
21 void delete_text(const UUID &uu) override;
22
23 class Polygon *insert_polygon(const UUID &uu) override;
24 class Polygon *get_polygon(const UUID &uu) override;
25 void delete_polygon(const UUID &uu) override;
26
27 class Hole *insert_hole(const UUID &uu) override;
28 class Hole *get_hole(const UUID &uu) override;
29 void delete_hole(const UUID &uu) override;
30
31 class Dimension *insert_dimension(const UUID &uu) override;
32 class Dimension *get_dimension(const UUID &uu) override;
33 void delete_dimension(const UUID &uu) override;
34
35 class Keepout *insert_keepout(const UUID &uu) override;
36 class Keepout *get_keepout(const UUID &uu) override;
37 void delete_keepout(const UUID &uu) override;
38
39 class Picture *insert_picture(const UUID &uu) override;
40 class Picture *get_picture(const UUID &uu) override;
41 void delete_picture(const UUID &uu) override;
42
43 std::vector<Line *> get_lines() override;
44 std::vector<Arc *> get_arcs() override;
45 std::vector<Keepout *> get_keepouts() override;
46
47 std::string get_display_name(ObjectType type, const UUID &uu) override;
48 std::string get_display_name(ObjectType type, const UUID &uu, const UUID &sheet) override;
49
50protected:
51 virtual std::map<UUID, Junction> *get_junction_map()
52 {
53 return nullptr;
54 }
55 virtual std::map<UUID, Line> *get_line_map()
56 {
57 return nullptr;
58 }
59 virtual std::map<UUID, Arc> *get_arc_map()
60 {
61 return nullptr;
62 }
63 virtual std::map<UUID, Text> *get_text_map()
64 {
65 return nullptr;
66 }
67 virtual std::map<UUID, Polygon> *get_polygon_map()
68 {
69 return nullptr;
70 }
71 virtual std::map<UUID, Hole> *get_hole_map()
72 {
73 return nullptr;
74 }
75 virtual std::map<UUID, Dimension> *get_dimension_map()
76 {
77 return nullptr;
78 }
79 virtual std::map<UUID, Keepout> *get_keepout_map()
80 {
81 return nullptr;
82 }
83 virtual std::map<UUID, Picture> *get_picture_map()
84 {
85 return nullptr;
86 }
87};
88
89} // namespace horizon
Graphical arc.
Definition arc.hpp:17
Definition dimension.hpp:9
Definition document.hpp:5
A hole with diameter and position, that's it.
Definition hole.hpp:15
Definition idocument.hpp:5
A Junction is a point in 2D-Space.
Definition junction.hpp:20
Definition keepout.hpp:8
Graphical line.
Definition line.hpp:16
Definition picture.hpp:10
Polygon used in Padstack, Package and Board for specifying filled Regions.
Definition polygon.hpp:25
Used wherever a user-editable text is needed.
Definition text.hpp:15
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16