2 #include "util/uuid.hpp"
3 #include "nlohmann/json_fwd.hpp"
4 #include "pool/unit.hpp"
5 #include "block/block.hpp"
7 #include "schematic_rules.hpp"
8 #include "common/pdf_export_settings.hpp"
9 #include <glibmm/regex.h>
13 #include "util/file_version.hpp"
31 Schematic(
const UUID &uu,
const json &, Block &block,
class IPool &pool);
32 unsigned int update_nets();
35 static Schematic new_from_file(
const std::string &filename, Block &block, IPool &pool);
36 Schematic(
const UUID &uu, Block &block);
46 void operator=(
const Schematic &sch) =
delete;
83 void swap_gates(
const UUID &comp,
const UUID &g1,
const UUID &g2);
85 std::map<UUIDPath<2>, std::string> get_unplaced_gates()
const;
87 static Glib::RefPtr<Glib::Regex> get_sheetref_regex();
92 std::map<UUID, Sheet> sheets;
94 bool group_tag_visible =
false;
101 enum class Order { RIGHT_DOWN, DOWN_RIGHT };
102 Order order = Order::RIGHT_DOWN;
104 enum class Mode { SEQUENTIAL, SHEET_100, SHEET_1000 };
105 Mode mode = Mode::SHEET_100;
107 bool fill_gaps =
true;
109 bool ignore_unknown =
false;
110 json serialize()
const;
113 Annotation annotation;
116 PDFExportSettings pdf_export_settings;
120 json serialize()
const;
121 void save_pictures(
const std::string &dir)
const;
122 void load_pictures(
const std::string &dir);
void disconnect_symbol(Sheet *sheet, SchematicSymbol *sym)
Removes all connections from sym and connects the dangling net lines to junctions.
Definition: schematic.hpp:97
LineNet is similar to Line, except it denotes electrical connection.
Definition: line_net.hpp:23
void autoconnect_symbol(Sheet *sheet, SchematicSymbol *sym)
Connects unconnected pins of sym to Nets specified by junctions coincident with pins.
A block is one level of hierarchy in the netlist.
Definition: block.hpp:25
Definition: schematic_symbol.hpp:17
A Schematic is the visual representation of a Block.
Definition: schematic.hpp:29
void expand(bool careful=false)
This is where the magic happens.
Definition: schematic_rules.hpp:10
a class to store JSON values
Definition: json.hpp:166
void smash_symbol(Sheet *sheet, SchematicSymbol *sym)
Turns sym's texts to regular text objects.
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
void unsmash_symbol(Sheet *sheet, SchematicSymbol *sym)
Undoes what smash_symbol did.
basic_json<> json
default JSON class
Definition: json_fwd.hpp:61
void update_refs()
objects owned by the Sheets may hold pointers to other objects of the same sheet or the Block associa...