Horizon
idocument.hpp
1 #pragma once
2 #include "common/common.hpp"
3 
4 namespace horizon {
5 class IDocument {
6 public:
7  virtual bool has_object_type(ObjectType ty) const = 0;
8 
9  virtual class Junction *insert_junction(const class UUID &uu) = 0;
10  virtual class Junction *get_junction(const UUID &uu) = 0;
11  virtual void delete_junction(const UUID &uu) = 0;
12 
13  virtual class Line *insert_line(const UUID &uu) = 0;
14  virtual class Line *get_line(const UUID &uu) = 0;
15  virtual void delete_line(const UUID &uu) = 0;
16 
17  virtual class Arc *insert_arc(const UUID &uu) = 0;
18  virtual class Arc *get_arc(const UUID &uu) = 0;
19  virtual void delete_arc(const UUID &uu) = 0;
20 
21  virtual class Text *insert_text(const UUID &uu) = 0;
22  virtual class Text *get_text(const UUID &uu) = 0;
23  virtual void delete_text(const UUID &uu) = 0;
24 
25  virtual class Polygon *insert_polygon(const UUID &uu) = 0;
26  virtual class Polygon *get_polygon(const UUID &uu) = 0;
27  virtual void delete_polygon(const UUID &uu) = 0;
28 
29  virtual class Hole *insert_hole(const UUID &uu) = 0;
30  virtual class Hole *get_hole(const UUID &uu) = 0;
31  virtual void delete_hole(const UUID &uu) = 0;
32 
33  virtual class Dimension *insert_dimension(const UUID &uu) = 0;
34  virtual class Dimension *get_dimension(const UUID &uu) = 0;
35  virtual void delete_dimension(const UUID &uu) = 0;
36 
37  virtual class Keepout *insert_keepout(const UUID &uu) = 0;
38  virtual class Keepout *get_keepout(const UUID &uu) = 0;
39  virtual void delete_keepout(const UUID &uu) = 0;
40 
41  virtual class Picture *insert_picture(const UUID &uu) = 0;
42  virtual class Picture *get_picture(const UUID &uu) = 0;
43  virtual void delete_picture(const UUID &uu) = 0;
44 
45  virtual std::vector<Line *> get_lines() = 0;
46  virtual std::vector<Arc *> get_arcs() = 0;
47  virtual std::vector<Keepout *> get_keepouts() = 0;
48 
49  virtual class Block *get_block() = 0;
50  virtual class Rules *get_rules() = 0;
51  virtual class IPool &get_pool() = 0;
52  virtual class LayerProvider &get_layer_provider() = 0;
53 
54  virtual std::string get_display_name(ObjectType type, const UUID &uu) = 0;
55  virtual std::string get_display_name(ObjectType type, const UUID &uu, const UUID &sheet) = 0;
56 
57  virtual const class FileVersion &get_version() const = 0;
58 
59  virtual ~IDocument()
60  {
61  }
62 };
63 
64 } // namespace horizon