2 #include "block/block.hpp"
4 #include "schematic/schematic.hpp"
5 #include "document/idocument_schematic.hpp"
12 CoreSchematic(
const std::string &schematic_filename,
const std::string &block_filename,
13 const std::string &pictures_dir,
IPool &pool);
14 bool has_object_type(ObjectType ty)
const override;
17 Line *get_line(
const UUID &uu)
override;
18 Arc *get_arc(
const UUID &uu)
override;
21 Sheet *get_sheet()
override;
22 const Sheet *get_sheet()
const;
23 Text *get_text(
const UUID &uu)
override;
26 void delete_junction(
const UUID &uu)
override;
27 Line *insert_line(
const UUID &uu)
override;
28 void delete_line(
const UUID &uu)
override;
29 Arc *insert_arc(
const UUID &uu)
override;
30 void delete_arc(
const UUID &uu)
override;
32 void delete_schematic_symbol(
const UUID &uu)
override;
35 void delete_line_net(
const UUID &uu)
override;
37 Text *insert_text(
const UUID &uu)
override;
38 void delete_text(
const UUID &uu)
override;
40 class Picture *insert_picture(
const UUID &uu)
override;
41 class Picture *get_picture(
const UUID &uu)
override;
42 void delete_picture(
const UUID &uu)
override;
44 std::vector<Line *> get_lines()
override;
45 std::vector<Arc *> get_arcs()
override;
46 std::vector<LineNet *> get_net_lines()
override;
47 std::vector<NetLabel *> get_net_labels()
override;
49 class Block *get_block()
override;
52 bool set_property(ObjectType type,
const UUID &uu, ObjectProperty::ID property,
54 bool get_property(ObjectType type,
const UUID &uu, ObjectProperty::ID property,
56 bool get_property_meta(ObjectType type,
const UUID &uu, ObjectProperty::ID property,
59 std::string get_display_name(ObjectType type,
const UUID &uu)
override;
60 std::string get_display_name(ObjectType type,
const UUID &uu,
const UUID &sheet)
override;
62 class Rules *get_rules()
override;
66 return &bom_export_settings;
71 return &pdf_export_settings;
74 void rebuild(
bool from_undo =
false)
override;
77 void delete_sheet(
const UUID &uu);
79 void set_sheet(
const UUID &uu);
80 const Sheet &get_canvas_data();
81 std::pair<Coordi, Coordi> get_bbox()
override;
83 const std::string &get_filename()
const override;
85 bool get_project_meta_loaded_from_block()
const
87 return project_meta_loaded_from_block;
90 ObjectType get_object_type()
const override
92 return ObjectType::SCHEMATIC;
100 void reload_pool()
override;
103 std::optional<Block> block;
104 const bool project_meta_loaded_from_block;
105 std::optional<Schematic> sch;
113 std::string m_schematic_filename;
114 std::string m_block_filename;
115 std::string m_pictures_dir;
119 HistoryItem(
const Block &b,
const Schematic &s) : block(b), sch(s)
125 void history_push()
override;
126 void history_load(
unsigned int i)
override;
127 void save(
const std::string &suffix)
override;
128 void delete_autosave()
override;
Graphical arc.
Definition: arc.hpp:20
Definition: bom_export_settings.hpp:11
A block is one level of hierarchy in the netlist.
Definition: block.hpp:26
Definition: core_schematic.hpp:10
void rebuild(bool from_undo=false) override
Expands the non-working document.
Definition: core_schematic.cpp:606
Where Tools and and documents meet.
Definition: core.hpp:42
Definition: file_version.hpp:8
Definition: idocument_schematic.hpp:5
A Junction is a point in 2D-Space.
Definition: junction.hpp:20
Definition: layer_provider.hpp:7
LineNet is similar to Line, except it denotes electrical connection.
Definition: line_net.hpp:17
Graphical line.
Definition: line.hpp:19
Definition: pdf_export_settings.hpp:9
Definition: picture.hpp:10
Definition: core_properties.hpp:7
Definition: schematic_rules.hpp:10
Definition: schematic_symbol.hpp:17
A Schematic is the visual representation of a Block.
Definition: schematic.hpp:29
Definition: symbol.hpp:71
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