SETissueCompartment.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 #pragma once
4 #include "cdm/compartment/SECompartment.h"
5 class SESubstance;
7 
8 class CDM_DECL SETissueCompartment : public SECompartment
9 {
10  friend class PBCompartment;//friend the serialization class
11  friend class SECompartmentManager;
12 protected:
13  SETissueCompartment(const std::string& name,
14  SELiquidCompartment& extracellular,
15  SELiquidCompartment& intracellular, Logger* logger);
16 public:
17  virtual ~SETissueCompartment();
18 
19  void Clear() override;
20 
21  const SEScalar* GetScalar(const std::string& name) override;
22 
23  // Children on tissue is not supported at this time
24  bool HasChildren() const override { return false; }
25  virtual const std::vector<SETissueCompartment*>& GetChildren() = delete;
26  virtual const std::vector<SETissueCompartment*>& GetLeaves() = delete;
27 
28  virtual SELiquidCompartment& GetExtracellular() { return m_Extracellular; }
29  virtual const SELiquidCompartment& GetExtracellular() const { return m_Extracellular; }
30  virtual SELiquidCompartment& GetIntracellular() { return m_Intracellular; }
31  virtual const SELiquidCompartment& GetIntracellular() const { return m_Intracellular; }
32 
33  virtual void StateChange() override;
34 
35  virtual bool HasAcidicPhospohlipidConcentration() const;
36  virtual SEScalarMassPerMass& GetAcidicPhospohlipidConcentration();
37  virtual double GetAcidicPhospohlipidConcentration(const MassPerMassUnit& unit) const;
38 
39  virtual bool HasMatrixVolume() const;
40  virtual SEScalarVolume& GetMatrixVolume();
41  virtual double GetMatrixVolume(const VolumeUnit& unit) const;
42 
43  virtual bool HasNeutralLipidsVolumeFraction() const;
44  virtual SEScalar0To1& GetNeutralLipidsVolumeFraction();
45  virtual double GetNeutralLipidsVolumeFraction() const;
46 
47  virtual bool HasNeutralPhospholipidsVolumeFraction() const;
48  virtual SEScalar0To1& GetNeutralPhospholipidsVolumeFraction();
49  virtual double GetNeutralPhospholipidsVolumeFraction() const;
50 
51  virtual bool HasTissueToPlasmaAlbuminRatio() const;
52  virtual SEScalar& GetTissueToPlasmaAlbuminRatio();
53  virtual double GetTissueToPlasmaAlbuminRatio() const;
54 
55  virtual bool HasTissueToPlasmaAlphaAcidGlycoproteinRatio() const;
56  virtual SEScalar& GetTissueToPlasmaAlphaAcidGlycoproteinRatio();
57  virtual double GetTissueToPlasmaAlphaAcidGlycoproteinRatio() const;
58 
59  virtual bool HasTissueToPlasmaLipoproteinRatio() const;
60  virtual SEScalar& GetTissueToPlasmaLipoproteinRatio();
61  virtual double GetTissueToPlasmaLipoproteinRatio() const;
62 
63  virtual bool HasTotalMass() const;
64  virtual SEScalarMass& GetTotalMass();
65  virtual double GetTotalMass(const MassUnit& unit) const;
66 
67  virtual const SEScalarVolume& GetTotalVolume();
68  virtual double GetTotalVolume(const VolumeUnit& unit) const;
69 
70 protected:
71 
80 
84 };
Definition: Logger.h:71
Definition: SEScalarMassPerMass.h:8
Definition: SEScalarMass.h:8
Definition: PBCompartment.h:28
Definition: SECompartment.h:14
virtual void Clear()
Definition: SECompartment.cpp:18
virtual void StateChange()=0
virtual const SEScalar * GetScalar(const std::string &name)=0
Definition: SECompartmentManager.h:25
Definition: SELiquidCompartment.h:11
Definition: SEScalar0To1.h:8
Definition: SEScalar.h:19
Definition: SEScalarMass.h:28
Definition: SEScalarMassPerMass.h:25
Definition: SEScalarVolume.h:28
Definition: SESubstance.h:15
Definition: SESubstanceManager.h:9
Definition: SETissueCompartment.h:9
virtual SELiquidCompartment & GetIntracellular()
Definition: SETissueCompartment.h:30
SEScalar * m_TissueToPlasmaLipoproteinRatio
Definition: SETissueCompartment.h:78
SEScalar0To1 * m_NeutralLipidsVolumeFraction
Definition: SETissueCompartment.h:74
bool HasChildren() const override
Definition: SETissueCompartment.h:24
SEScalarVolume * m_TotalVolume
Definition: SETissueCompartment.h:81
virtual const std::vector< SETissueCompartment * > & GetChildren()=delete
virtual const SELiquidCompartment & GetIntracellular() const
Definition: SETissueCompartment.h:31
SELiquidCompartment & m_Extracellular
Definition: SETissueCompartment.h:82
SEScalarMassPerMass * m_AcidicPhospohlipidConcentration
Definition: SETissueCompartment.h:72
SELiquidCompartment & m_Intracellular
Definition: SETissueCompartment.h:83
virtual const SELiquidCompartment & GetExtracellular() const
Definition: SETissueCompartment.h:29
SEScalar * m_TissueToPlasmaAlphaAcidGlycoproteinRatio
Definition: SETissueCompartment.h:77
SEScalarMass * m_TotalMass
Definition: SETissueCompartment.h:79
virtual SELiquidCompartment & GetExtracellular()
Definition: SETissueCompartment.h:28
SEScalarVolume * m_MatrixVolume
Definition: SETissueCompartment.h:73
SEScalar * m_TissueToPlasmaAlbuminRatio
Definition: SETissueCompartment.h:76
SEScalar0To1 * m_NeutralPhospholipidsVolumeFraction
Definition: SETissueCompartment.h:75
virtual const std::vector< SETissueCompartment * > & GetLeaves()=delete
Definition: SEScalarVolume.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.