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_top_block() = 0;
50  virtual class Rules *get_rules() = 0;
51  virtual class IPool &get_pool() = 0;
52  virtual class IPool &get_pool_caching() = 0;
53  virtual class LayerProvider &get_layer_provider() = 0;
54  virtual class GridSettings *get_grid_settings() = 0;
55 
56  virtual std::string get_display_name(ObjectType type, const UUID &uu) = 0;
57  virtual std::string get_display_name(ObjectType type, const UUID &uu, const UUID &sheet) = 0;
58 
59  virtual const class FileVersion &get_version() const = 0;
60 
61  virtual ~IDocument()
62  {
63  }
64 };
65 
66 } // namespace horizon
Graphical arc.
Definition: arc.hpp:20
A block is one level of hierarchy in the netlist.
Definition: block.hpp:29
Definition: dimension.hpp:12
Definition: file_version.hpp:9
Definition: grid_settings.hpp:9
A hole with diameter and position, that's it.
Definition: hole.hpp:18
Definition: idocument.hpp:5
Definition: ipool.hpp:14
A Junction is a point in 2D-Space.
Definition: junction.hpp:20
Definition: keepout.hpp:8
Definition: layer_provider.hpp:7
Graphical line.
Definition: line.hpp:19
Definition: picture.hpp:10
Polygon used in Padstack, Package and Board for specifying filled Regions.
Definition: polygon.hpp:27
Definition: rules.hpp:51
Used wherever a user-editable text is needed.
Definition: text.hpp:18
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16