Horizon
document.hpp
1 #pragma once
2 #include "idocument.hpp"
3 
4 namespace horizon {
5 class Document : public virtual IDocument {
6 public:
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 
50 protected:
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
horizon::Polygon
Polygon used in Padstack, Package and Board for specifying filled Regions.
Definition: polygon.hpp:27
horizon::IDocument
Definition: idocument.hpp:5
horizon::Line
Graphical line.
Definition: line.hpp:19
horizon::Dimension
Definition: dimension.hpp:12
horizon::Arc
Graphical arc.
Definition: arc.hpp:20
horizon::Keepout
Definition: keepout.hpp:9
horizon::Junction
A Junction is a point in 2D-Space.
Definition: junction.hpp:22
horizon::Text
Used wherever a user-editable text is needed.
Definition: text.hpp:18
horizon::Document
Definition: document.hpp:5
horizon::UUID
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
horizon::Picture
Definition: picture.hpp:10
horizon::Hole
A hole with diameter and position, that's it.
Definition: hole.hpp:18