stuff-from-scratch/plugins/circuits/src/ElectronicCircuit.h
2023-12-21 09:18:44 +00:00

52 lines
864 B
C++

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