What’s New in the Pulse Physiology Engine 4.4.0
×
SELiquidCompartmentsSubstanceModification.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/engine/SEAction.h"
6#include "cdm/properties/SEScalarMass.h"
7
9{
10 friend class PBAction;//friend the serialization class
11public:
12
13 struct Modifier
14 {
15 std::string Compartment;
16 std::string Substance;
17
19
20 bool IsValid() const;
21 };
22
25
26 static constexpr char const* Name = "LiquidCompartmentsSubstanceModification";
27 std::string GetName() const override{ return Name; }
28
29 void Clear() override; //clear memory
30 virtual void Copy(const SELiquidCompartmentsSubstanceModification& src);
31
32 bool IsValid() const override;
33
34 virtual bool HasModifier() const;
35 virtual Modifier& GetModifier(const std::string& cmpt, const std::string& sub);
36 virtual const std::vector<Modifier*>& GetModifiers() const { return m_Modifiers; }
37
38 const SEScalar* GetScalar(const std::string& name) override;
39
40protected:
41 std::vector<Modifier*> m_Modifiers;
42};
Definition: Logger.h:71
Definition: PBActions.h:16
Definition: SEAction.h:14
virtual const SEScalar * GetScalar(const std::string &name)=0
virtual bool IsValid() const
Definition: SEAction.h:35
virtual void Clear()
Definition: SEAction.cpp:21
static SEAction * Copy(const SEAction &, const SESubstanceManager &)
Definition: SEAction.cpp:53
Definition: SELiquidCompartmentsSubstanceModification.h:9
std::vector< Modifier * > m_Modifiers
Definition: SELiquidCompartmentsSubstanceModification.h:41
virtual const std::vector< Modifier * > & GetModifiers() const
Definition: SELiquidCompartmentsSubstanceModification.h:36
std::string GetName() const override
Definition: SELiquidCompartmentsSubstanceModification.h:27
Definition: SEScalar.h:19
Definition: SEScalarMass.h:28
Definition: SELiquidCompartmentsSubstanceModification.h:14
std::string Substance
Definition: SELiquidCompartmentsSubstanceModification.h:16
std::string Compartment
Definition: SELiquidCompartmentsSubstanceModification.h:15
SEScalarMass MassIncrement
Definition: SELiquidCompartmentsSubstanceModification.h:18

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.