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"
6 class SEFluidBlackBox;
8 
9 class CDM_DECL SEFluidCircuitNode : public SECircuitNode<FLUID_CIRCUIT_NODE>
10 {
11  friend class PBCircuit;//friend the serialization class
12  friend class SECircuitManager;
13 protected:
14  SEFluidCircuitNode(const std::string& name, Logger* logger);
15 public:
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 
48 protected:
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.