Simple Nano Circuit 0.0.2
NetlistClass.h
1#ifndef _NetlistClass_H_
2#define _NetlistClass_H_
3
4#include <iostream>
5#include <list>
6#include <vector>
7
8#include <SDL.h>
9
10#include "MathMatrixClass.h"
11
12#include "ICType.h"
13#include "PinProperty.h"
14
17
19{
20 public:
22 ~NetlistClass() {};
23
24 public:
25 void Reporting();
26 void WriteMathQuestionParamsGND(MathMatrixClass::Matrix*, MathMatrixClass::VectorDouble*, MathMatrixClass::VectorDouble*, MathMatrixClass::VectorIndex*);
27 void WriteMathQuestionParamsKCL(MathMatrixClass::Matrix*, MathMatrixClass::VectorDouble*, MathMatrixClass::VectorDouble*, MathMatrixClass::VectorIndex*);
28 void WriteMathQuestionParamsKVL(MathMatrixClass::Matrix*, MathMatrixClass::VectorDouble*, MathMatrixClass::VectorDouble*, MathMatrixClass::VectorIndex*);
29 bool isExistSolvedNetlist(const std::set<NetlistClass*>&);
30 void crawlSuperNodeIcs(NetlistClass*, NetlistClass*, std::list<NetlistClass*>, std::list<double>, std::list<SuperNodeIcModel*>&);
31
32 private:
33 double voltage = 0;
34 public:
35 void setVoltage(double _voltage) { this->voltage = _voltage; };
36 double getVoltage() const { return this->voltage; };
37
38 private:
39 static constexpr size_t INVALID_INDEX = static_cast<size_t>(-1);
40 size_t index = INVALID_INDEX;
41 public:
42 void setIndex(size_t _index) { this->index = _index; };
43 size_t getIndex() const { return this->index; };
44
45 private:
46 std::list<BaseElectronObject*> memberIcs;
47 public:
48 void appendMember(BaseElectronObject*);
49 bool includeMember(BaseElectronObject*);
50 void removeMember(BaseElectronObject*);
51 size_t countMember();
53
54 public:
55 SDL_Point getLongestWirePosition();
56
58 void dfs(std::list<NetlistClass*>& , std::set< NetlistClass* >& );
59
61 bool includeCapacitorGround() {return false;};
62 bool include(ICType);
63 bool include(ICType, PinProperty);
64
65 void WriteBackVoltageToEachFootPins(const double&);
66};
67
68#endif
Definition: BaseElectronObject.h:13
Definition: NetlistClass.h:19
void moveMembersTo(NetlistClass *)
Definition: NetlistClass.cpp:209
bool includeCapacitorGround()
判断当前网络节点下是否有“地”
Definition: NetlistClass.h:61
void dfs(std::list< NetlistClass * > &, std::set< NetlistClass * > &)
深度优先遍历
Definition: NetlistClass.cpp:279
void WriteBackVoltageToEachFootPins(const double &)
Definition: NetlistClass.cpp:311
void Reporting()
公共方法
Definition: NetlistClass.cpp:31
Definition: SuperNodeIcModel.h:10