SEFluidCircuitNode.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/circuit/SECircuitNode.h"
8
9class CDM_DECL SEFluidCircuitNode : public SECircuitNode<FLUID_CIRCUIT_NODE>
10{
11 friend class PBCircuit;//friend the serialization class
12 friend class SECircuitManager;
13protected:
14 SEFluidCircuitNode(const std::string& name, Logger* logger);
15public:
16 virtual ~SEFluidCircuitNode();
17
18 void Clear() override; //clear memory
19
20 virtual bool HasPressure() const;
21 virtual SEScalarPressure& GetPressure();
22 virtual double GetPressure(const PressureUnit& unit) const;
23
24 virtual bool HasNextPressure() const;
25 virtual SEScalarPressure& GetNextPressure();
26 virtual double GetNextPressure(const PressureUnit& unit) const;
27
28 virtual bool HasVolume() const;
29 virtual SEScalarVolume& GetVolume();
30 virtual double GetVolume(const VolumeUnit& unit) const;
31
32 virtual bool HasNextVolume() const;
33 virtual SEScalarVolume& GetNextVolume();
34 virtual double GetNextVolume(const VolumeUnit& unit) const;
35
36 virtual bool HasVolumeBaseline() const;
37 virtual SEScalarVolume& GetVolumeBaseline();
38 virtual double GetVolumeBaseline(const VolumeUnit& unit) const;
39
40 SEFluidCircuitNode* GetBlackBoxSourceNode() const;
41 SEFluidCircuitNode* GetBlackBoxTargetNode() const;
42 void SetBlackBoxSourceTargetNodes(SEFluidCircuitNode& src, SEFluidCircuitNode& tgt);
43
44 SEFluidCircuitPath* GetBlackBoxSourcePath() const;
45 SEFluidCircuitPath* GetBlackBoxTargetPath() const;
46 void SetBlackBoxSourceTargetPaths(SEFluidCircuitPath& src, SEFluidCircuitPath& tgt);
47
48protected:
49 SEFluidCircuitNode* m_BlackBoxSourceNode=nullptr; // Only set on middle nodes
50 SEFluidCircuitNode* m_BlackBoxTargetNode=nullptr; // Only set on middle nodes
51 SEFluidCircuitPath* m_BlackBoxSourcePath = nullptr;// Only set on middle nodes
52 SEFluidCircuitPath* m_BlackBoxTargetPath = nullptr;// Only set on middle nodes
53};
Definition: Logger.h:71
Definition: PBCircuit.h:26
Definition: SEScalarPressure.h:8
Definition: SECircuitManager.h:38
Definition: SECircuitNode.h:31
virtual void Clear()
Definition: SEFluidBlackBox.h:9
Definition: SEFluidCircuitNode.h:10
Definition: SEFluidCircuitPath.h:9
Definition: SEScalarPressure.h:29
Definition: SEScalarVolume.h:28
Definition: SEScalarVolume.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.