Initial circuits plugin work.

This commit is contained in:
jmsgrogan 2023-01-20 16:47:39 +00:00
parent b5f21900eb
commit f8a2ce3c59
50 changed files with 1451 additions and 97 deletions

View file

@ -0,0 +1,42 @@
#pragma once
#include <memory>
#include <vector>
#include "CircuitElement.h"
#include "LogicGate.h"
#include "Terminal.h"
using LogicGatePtr = std::unique_ptr<LogicGate>;
class ElectronicCircuit
{
public:
void addInputTerminal(TerminalPtr terminal);
void addOutputTerminal(TerminalPtr terminal);
void addWire(WirePtr wire);
void addLogicGate(LogicGatePtr gate);
const std::vector<Terminal*>& getInputTerminals() const
{
return mInputTerminals;
}
const std::vector<LogicGate*>& getLogicGates() const
{
return mLogicGates;
}
private:
std::vector<Terminal*> mInputTerminals;
std::vector<Terminal*> mOutputTerminals;
std::vector<Wire*> mWires;
std::vector<LogicGate*> mLogicGates;
std::vector<std::unique_ptr<CircuitElement> > mElements;
};