Horizon
core_padstack.hpp
1 #pragma once
2 #include "core.hpp"
3 #include "pool/padstack.hpp"
4 #include "document/idocument_padstack.hpp"
5 
6 namespace horizon {
7 class CorePadstack : public Core, public virtual IDocumentPadstack {
8 public:
9  CorePadstack(const std::string &filename, IPool &pool);
10  bool has_object_type(ObjectType ty) const override;
11 
12  class LayerProvider &get_layer_provider() override;
13 
14  void rebuild(bool from_undo = false) override;
15 
16  Padstack &get_padstack() override;
17 
18  bool set_property(ObjectType type, const UUID &uu, ObjectProperty::ID property,
19  const class PropertyValue &value) override;
20  bool get_property(ObjectType type, const UUID &uu, ObjectProperty::ID property,
21  class PropertyValue &value) override;
22  bool get_property_meta(ObjectType type, const UUID &uu, ObjectProperty::ID property,
23  class PropertyMeta &meta) override;
24 
25  std::string get_display_name(ObjectType type, const UUID &uu) override;
26 
27  const Padstack &get_canvas_data();
28  std::pair<Coordi, Coordi> get_bbox() override;
29 
30  const std::string &get_filename() const override;
31 
32  ObjectType get_object_type() const override
33  {
34  return ObjectType::PADSTACK;
35  }
36 
37  const FileVersion &get_version() const override
38  {
39  return padstack.version;
40  }
41 
42 private:
43  std::map<UUID, Polygon> *get_polygon_map() override;
44  std::map<UUID, Hole> *get_hole_map() override;
45 
46  Padstack padstack;
47  std::string m_filename;
48 
49  class HistoryItem : public Core::HistoryItem {
50  public:
51  HistoryItem(const Padstack &s) : padstack(s)
52  {
53  }
54  Padstack padstack;
55  };
56  void history_push() override;
57  void history_load(unsigned int i) override;
58  void save(const std::string &suffix) override;
59  void delete_autosave() override;
60 
61 public:
62  std::string parameter_program_code;
63  ParameterSet parameter_set;
64  std::set<ParameterID> parameters_required;
65 };
66 } // namespace horizon
Definition: core_padstack.hpp:7
void rebuild(bool from_undo=false) override
Expands the non-working document.
Definition: core_padstack.cpp:215
Definition: core.hpp:184
Where Tools and and documents meet.
Definition: core.hpp:42
Definition: file_version.hpp:8
Definition: idocument_padstack.hpp:5
Definition: ipool.hpp:12
Definition: layer_provider.hpp:7
Definition: padstack.hpp:21
Definition: core_properties.hpp:90
Definition: core_properties.hpp:7
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16