Horizon
Loading...
Searching...
No Matches
core_package.hpp
1#pragma once
2#include "core.hpp"
3#include "pool/package.hpp"
4#include "document/idocument_package.hpp"
5
6namespace horizon {
7class CorePackage : public Core, public virtual IDocumentPackage {
8public:
9 CorePackage(const std::string &filename, IPool &pool);
10 bool has_object_type(ObjectType ty) const override;
11
12 Package &get_package() override;
13
14 /*Polygon *insert_polygon(const UUID &uu);
15 Polygon *get_polygon(const UUID &uu=true);
16 void delete_polygon(const UUID &uu);
17 Hole *insert_hole(const UUID &uu);
18 Hole *get_hole(const UUID &uu=true);
19 void delete_hole(const UUID &uu);*/
20
21 class LayerProvider &get_layer_provider() override;
22
23 bool set_property(ObjectType type, const UUID &uu, ObjectProperty::ID property,
24 const class PropertyValue &value) override;
25 bool get_property(ObjectType type, const UUID &uu, ObjectProperty::ID property,
26 class PropertyValue &value) override;
27 bool get_property_meta(ObjectType type, const UUID &uu, ObjectProperty::ID property,
28 class PropertyMeta &meta) override;
29
30 std::string get_display_name(ObjectType type, const UUID &uu) override;
31 class Rules *get_rules() override;
32 GridSettings *get_grid_settings() override
33 {
34 return &grid_settings;
35 }
36
37 const Package &get_canvas_data();
38 std::pair<Coordi, Coordi> get_bbox() override;
39 json get_meta() override;
40
41 void reload_pool() override;
42
43 const std::string &get_filename() const override;
44
45 ObjectType get_object_type() const override
46 {
47 return ObjectType::PACKAGE;
48 }
49
50 const FileVersion &get_version() const override
51 {
52 return package.version;
53 }
54
55 void set_temp_mode();
56 void set_filename(const std::string &filename);
57
58private:
59 std::map<UUID, Junction> *get_junction_map() override;
60 std::map<UUID, Line> *get_line_map() override;
61 std::map<UUID, Arc> *get_arc_map() override;
62 std::map<UUID, Text> *get_text_map() override;
63 std::map<UUID, Polygon> *get_polygon_map() override;
64 std::map<UUID, Hole> *get_hole_map() override;
65 std::map<UUID, Keepout> *get_keepout_map() override;
66 std::map<UUID, Dimension> *get_dimension_map() override;
67 std::map<UUID, Picture> *get_picture_map() override;
68
69 Package package;
70 std::string m_filename;
71 std::string m_pictures_dir;
72
73 PackageRules rules;
74 GridSettings grid_settings;
75
76 void rebuild_internal(bool from_undo, const std::string &comment) override;
77 std::unique_ptr<HistoryManager::HistoryItem> make_history_item(const std::string &comment) override;
78 void history_load(const HistoryManager::HistoryItem &it) override;
79 void save(const std::string &suffix) override;
80 void delete_autosave() override;
81
82public:
83 std::string parameter_program_code;
84 ParameterSet parameter_set;
85
86 std::map<UUID, Package::Model> models;
87 UUID default_model;
88};
89} // namespace horizon
Definition core_package.hpp:7
json get_meta() override
Definition core_package.cpp:255
Where Tools and and documents meet.
Definition core.hpp:42
Definition file_version.hpp:9
Definition grid_settings.hpp:9
Definition history_manager.hpp:10
Definition idocument_package.hpp:5
Definition ipool.hpp:15
Definition layer_provider.hpp:8
Definition package_rules.hpp:11
Definition package.hpp:29
Definition core_properties.hpp:104
Definition core_properties.hpp:8
Definition rules.hpp:54
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16
a class to store JSON values
Definition json.hpp:177
Tiny metaprogramming library.
Definition meta.hpp:116