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"
5class SESubstance;
7
8class CDM_DECL SETissueCompartment : public SECompartment
9{
10 friend class PBCompartment;//friend the serialization class
12protected:
13 SETissueCompartment(const std::string& name,
14 SELiquidCompartment& extracellular,
15 SELiquidCompartment& intracellular, Logger* logger);
16public:
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
70protected:
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 const SEScalar * GetScalar(const std::string &name)=0
virtual void StateChange()=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 const std::vector< SETissueCompartment * > & GetChildren()=delete
SEScalar * m_TissueToPlasmaLipoproteinRatio
Definition: SETissueCompartment.h:78
SEScalar0To1 * m_NeutralLipidsVolumeFraction
Definition: SETissueCompartment.h:74
bool HasChildren() const override
Definition: SETissueCompartment.h:24
virtual SELiquidCompartment & GetExtracellular()
Definition: SETissueCompartment.h:28
SEScalarVolume * m_TotalVolume
Definition: SETissueCompartment.h:81
SELiquidCompartment & m_Extracellular
Definition: SETissueCompartment.h:82
virtual const SELiquidCompartment & GetIntracellular() const
Definition: SETissueCompartment.h:31
virtual const SELiquidCompartment & GetExtracellular() const
Definition: SETissueCompartment.h:29
SEScalarMassPerMass * m_AcidicPhospohlipidConcentration
Definition: SETissueCompartment.h:72
SELiquidCompartment & m_Intracellular
Definition: SETissueCompartment.h:83
SEScalar * m_TissueToPlasmaAlphaAcidGlycoproteinRatio
Definition: SETissueCompartment.h:77
SEScalarMass * m_TotalMass
Definition: SETissueCompartment.h:79
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
virtual SELiquidCompartment & GetIntracellular()
Definition: SETissueCompartment.h:30
Definition: SEScalarVolume.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.