Horizon
Loading...
Searching...
No Matches
core_padstack.hpp
1#pragma once
2#include "core.hpp"
3#include "pool/padstack.hpp"
4#include "document/idocument_padstack.hpp"
5
6namespace horizon {
7class CorePadstack : public Core, public virtual IDocumentPadstack {
8public:
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 Padstack &get_padstack() override;
15
16 bool set_property(ObjectType type, const UUID &uu, ObjectProperty::ID property,
17 const class PropertyValue &value) override;
18 bool get_property(ObjectType type, const UUID &uu, ObjectProperty::ID property,
19 class PropertyValue &value) override;
20 bool get_property_meta(ObjectType type, const UUID &uu, ObjectProperty::ID property,
21 class PropertyMeta &meta) override;
22
23 std::string get_display_name(ObjectType type, const UUID &uu) override;
24
25 const Padstack &get_canvas_data();
26 std::pair<Coordi, Coordi> get_bbox() override;
27
28 const std::string &get_filename() const override;
29
30 ObjectType get_object_type() const override
31 {
32 return ObjectType::PADSTACK;
33 }
34
35 const FileVersion &get_version() const override
36 {
37 return padstack.version;
38 }
39
40 void set_temp_mode();
41 void set_filename(const std::string &filename);
42
43private:
44 std::map<UUID, Polygon> *get_polygon_map() override;
45 std::map<UUID, Hole> *get_hole_map() override;
46
47 Padstack padstack;
48 std::string m_filename;
49
50 void rebuild_internal(bool from_undo, const std::string &comment) override;
51 std::unique_ptr<HistoryManager::HistoryItem> make_history_item(const std::string &comment) override;
52 void history_load(const HistoryManager::HistoryItem &it) override;
53 void save(const std::string &suffix) override;
54 void delete_autosave() override;
55
56public:
57 std::string parameter_program_code;
58 ParameterSet parameter_set;
59 std::set<ParameterID> parameters_required;
60};
61} // namespace horizon
Definition core_padstack.hpp:7
Where Tools and and documents meet.
Definition core.hpp:42
Definition file_version.hpp:9
Definition history_manager.hpp:10
Definition idocument_padstack.hpp:5
Definition ipool.hpp:15
Definition layer_provider.hpp:8
Definition padstack.hpp:19
Definition core_properties.hpp:104
Definition core_properties.hpp:8
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16
Tiny metaprogramming library.
Definition meta.hpp:116