#pragma once #include "Memory.h" #include "Vector.h" #include "CircuitElement.h" #include "LogicGate.h" #include "Terminal.h" using LogicGatePtr = Ptr; class ElectronicCircuit { public: void addInputTerminal(TerminalPtr terminal); void addOutputTerminal(TerminalPtr terminal); void addWire(WirePtr wire); void addLogicGate(LogicGatePtr gate); const Vector& getInputTerminals() const { return mInputTerminals; } const Vector& getOutputTerminals() const { return mOutputTerminals; } const Vector& getLogicGates() const { return mLogicGates; } const Vector& getWires() const { return mWires; } private: Vector mInputTerminals; Vector mOutputTerminals; Vector mWires; Vector mLogicGates; Vector > mElements; };