Initial circuits plugin work.
This commit is contained in:
parent
b5f21900eb
commit
f8a2ce3c59
50 changed files with 1451 additions and 97 deletions
42
plugins/circuits/src/ElectronicCircuit.h
Normal file
42
plugins/circuits/src/ElectronicCircuit.h
Normal 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;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue