14 #include <biogears/cdm/CommonDataModel.h>
15 #include <biogears/cdm/circuit/SECircuitNode.h>
16 #include <biogears/cdm/circuit/SECircuitPath.h>
18 #define CIRCUIT_TEMPLATE typename CircuitBindType, typename NodeType, typename CircuitNodeBindType, typename PathType, typename CircuitPathBindType
19 #define CIRCUIT_TYPES CircuitBindType, NodeType, CircuitNodeBindType, PathType, CircuitPathBindType
21 CDM_BIND_DECL(CircuitData)
24 template <CIRCUIT_TEMPLATE>
33 virtual bool Load(
const CircuitBindType& in,
const std::map<std::string, NodeType*>& nodes,
const std::map<std::string, PathType*>& paths);
34 virtual CircuitBindType* Unload()
const;
37 virtual void Unload(CircuitBindType& data)
const;
40 virtual std::string GetName()
const;
41 virtual const char* GetName_cStr()
const;
43 virtual bool HasReferenceNode()
const;
44 virtual bool IsReferenceNode(NodeType& node)
const;
45 virtual const std::vector<NodeType*>& GetReferenceNodes()
const;
46 virtual void AddReferenceNode(NodeType& node);
49 virtual void AddNode(NodeType& node);
50 virtual bool HasNode(NodeType& node);
51 virtual bool HasNode(
const char* name);
52 virtual bool HasNode(
const std::string& name);
53 virtual NodeType* GetNode(
const char* name);
54 virtual NodeType* GetNode(
const std::string& name);
55 virtual const NodeType* GetNode(
const char* name)
const;
56 virtual const NodeType* GetNode(
const std::string& name)
const;
57 virtual const std::vector<NodeType*>& GetNodes()
const;
58 virtual void RemoveNode(
const NodeType& node);
59 virtual void RemoveNode(
const char* name);
60 virtual void RemoveNode(
const std::string& name);
61 size_t GetCalculatorIndex(
const NodeType& node)
const;
64 virtual void AddPath(PathType& node);
65 virtual bool HasPath(PathType& node);
66 virtual bool HasPath(
const char* name);
67 virtual bool HasPath(
const std::string& name);
68 virtual PathType* GetPath(
const char* name);
69 virtual PathType* GetPath(
const std::string& name);
70 virtual const PathType* GetPath(
const char* name)
const;
71 virtual const PathType* GetPath(
const std::string& name)
const;
72 virtual const std::vector<PathType*>& GetPaths()
const;
73 virtual void RemovePath(
const PathType& path);
74 virtual void RemovePath(
const char* name);
75 virtual void RemovePath(
const std::string& name);
76 virtual const std::vector<PathType*>& GetValvePaths();
77 virtual const std::vector<PathType*>& GetPolarizedElementPaths();
79 virtual const std::vector<PathType*>* GetTargetPaths(
const NodeType& node)
const;
80 virtual const std::vector<PathType*>* GetSourcePaths(
const NodeType& node)
const;
81 virtual const std::vector<PathType*>* GetConnectedPaths(
const NodeType& node)
const;
83 virtual void StateChange();
84 virtual void SetNextAndCurrentFromBaselines();
103 #include <biogears/cdm/circuit/SECircuit.inl>
Definition: SECircuit.h:25
std::vector< NodeType * > m_Nodes
Definition: SECircuit.h:91
std::map< const NodeType *, std::vector< PathType * > * > m_SourcePathMap
Definition: SECircuit.h:95
std::map< const NodeType *, std::vector< PathType * > * > m_ConnectedPathMap
Definition: SECircuit.h:96
std::vector< PathType * > m_ValvePaths
Definition: SECircuit.h:98
std::vector< PathType * > m_Paths
Definition: SECircuit.h:92
std::vector< PathType * > m_PolarizedElementPaths
Definition: SECircuit.h:99
std::vector< NodeType * > m_ReferenceNodes
Definition: SECircuit.h:90
std::stringstream m_ss
Definition: SECircuit.h:88
std::map< const NodeType *, std::vector< PathType * > * > m_TargetPathMap
Definition: SECircuit.h:94
std::string m_Name
Definition: SECircuit.h:87
Definition: SEElectricalCircuit.h:18
std::map< const NodeType *, size_t > m_CalculatorIndex
Definition: SECircuit.h:100