20 #ifndef LIBREPCB_CORE_CIRCUIT_H 21 #define LIBREPCB_CORE_CIRCUIT_H 26 #include "../../fileio/filepath.h" 27 #include "../../library/cmp/componentprefix.h" 28 #include "../../types/circuitidentifier.h" 29 #include "../../types/elementname.h" 30 #include "../../types/fileproofname.h" 31 #include "../../types/uuid.h" 44 class ComponentInstance;
48 class TransactionalDirectory;
void componentAdded(ComponentInstance &cmp)
void removeAssemblyVariant(std::shared_ptr< AssemblyVariant > av)
Definition: circuit.cpp:106
const QMap< Uuid, ComponentInstance * > & getComponentInstances() const noexcept
Definition: circuit.h:119
AssemblyVariantList mAssemblyVariants
Definition: circuit.h:157
QMap< Uuid, ComponentInstance * > mComponentInstances
Definition: circuit.h:160
Circuit & operator=(const Circuit &rhs)=delete
NetSignal * getNetSignalWithMostElements() const noexcept
Definition: circuit.cpp:211
void removeComponentInstance(ComponentInstance &cmp)
Definition: circuit.cpp:321
bool operator!=(const Circuit &rhs) noexcept
Definition: circuit.h:143
Project & getProject() const noexcept
Definition: circuit.h:81
const QMap< Uuid, NetClass * > & getNetClasses() const noexcept
Definition: circuit.h:96
AssemblyVariantList & getAssemblyVariants() noexcept
Definition: circuit.h:84
int addAssemblyVariant(std::shared_ptr< AssemblyVariant > av, int index=-1)
Definition: circuit.cpp:81
type_safe::constrained_type< QString, FileProofNameConstraint, FileProofNameVerifier > FileProofName
Definition: fileproofname.h:88
void removeNetSignal(NetSignal &netsignal)
Definition: circuit.cpp:244
void setAssemblyVariantName(std::shared_ptr< AssemblyVariant > av, const FileProofName &newName)
Definition: circuit.cpp:118
void setNetClassName(NetClass &netclass, const ElementName &newName)
Definition: circuit.cpp:174
Project & mProject
A reference to the Project object (from the ctor)
Definition: circuit.h:156
NetClass * getNetClassByName(const ElementName &name) const noexcept
Definition: circuit.cpp:135
Definition: occmodel.cpp:76
void setComponentInstanceName(ComponentInstance &cmp, const CircuitIdentifier &newName)
Definition: circuit.cpp:332
void removeNetClass(NetClass &netclass)
Definition: circuit.cpp:165
type_safe::constrained_type< QString, ComponentPrefixConstraint, ComponentPrefixVerifier > ComponentPrefix
Definition: componentprefix.h:78
QString generateAutoNetSignalName() const noexcept
Definition: circuit.cpp:193
ComponentInstance * getComponentInstanceByName(const QString &name) const noexcept
Definition: circuit.cpp:290
const AssemblyVariantList & getAssemblyVariants() const noexcept
Definition: circuit.h:87
The Circuit class represents all electrical connections in a project (drawn in the schematics) ...
Definition: circuit.h:70
QMap< Uuid, NetClass * > mNetClasses
Definition: circuit.h:158
void addNetClass(NetClass &netclass)
Definition: circuit.cpp:144
ComponentInstance * getComponentInstanceByUuid(const Uuid &uuid) const noexcept
Definition: circuit.cpp:285
~Circuit() noexcept
Definition: circuit.cpp:48
void netClassAdded(NetClass &netclass)
void setNetSignalName(NetSignal &netsignal, const CircuitIdentifier &newName, bool isAutoName)
Definition: circuit.cpp:253
type_safe::constrained_type< QString, CircuitIdentifierConstraint, CircuitIdentifierVerifier > CircuitIdentifier
Definition: circuitidentifier.h:93
void netSignalRemoved(NetSignal &netsignal)
const QMap< Uuid, NetSignal * > & getNetSignals() const noexcept
Definition: circuit.h:106
The NetSignal class.
Definition: netsignal.h:50
The Project class represents a whole (opened) project with all its content.
Definition: project.h:71
The NetClass class.
Definition: netclass.h:46
The ComponentInstance class.
Definition: componentinstance.h:54
void addNetSignal(NetSignal &netsignal)
Definition: circuit.cpp:223
void netSignalAdded(NetSignal &netsignal)
void assemblyVariantRemoved(std::shared_ptr< AssemblyVariant > &av)
void serialize(SExpression &root) const
Serialize into librepcb::SExpression node.
Definition: circuit.cpp:352
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition: uuid.h:56
QMap< Uuid, NetSignal * > mNetSignals
Definition: circuit.h:159
void assemblyVariantAdded(std::shared_ptr< AssemblyVariant > &av)
bool operator==(const Circuit &rhs) noexcept
Definition: circuit.h:142
NetSignal * getNetSignalByName(const QString &name) const noexcept
Definition: circuit.cpp:202
The SExpression class.
Definition: sexpression.h:66
void componentRemoved(ComponentInstance &cmp)
QString generateAutoComponentInstanceName(const ComponentPrefix &cmpPrefix) const noexcept
Definition: circuit.cpp:274
type_safe::constrained_type< QString, ElementNameConstraint, ElementNameVerifier > ElementName
Definition: elementname.h:83
void addComponentInstance(ComponentInstance &cmp)
Definition: circuit.cpp:298
void netClassRemoved(NetClass &netclass)