PhysiologyEngineTimedStabilization.h
1 /**************************************************************************************
2 Copyright 2015 Applied Research Associates, Inc.
3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 this file except in compliance with the License. You may obtain a copy of the License
5 at:
6 http://www.apache.org/licenses/LICENSE-2.0
7 Unless required by applicable law or agreed to in writing, software distributed under
8 the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9 CONDITIONS OF ANY KIND, either express or implied. See the License for the
10 specific language governing permissions and limitations under the License.
11 **************************************************************************************/
12 
13 #pragma once
14 
15 #include <biogears/cdm/engine/PhysiologyEngineStabilization.h>
16 #include <biogears/cdm/properties/SEScalarTime.h>
17 #include <biogears/schema/cdm/EngineConfiguration.hxx>
18 
19 CDM_BIND_DECL(PhysiologyEngineTimedConditionStabilizationData)
20 
21 namespace biogears {
23 public:
26 
27  virtual void Clear();
28 
29  virtual bool Load(const CDM::PhysiologyEngineTimedConditionStabilizationData& in);
31 
32 protected:
33  virtual void Unload(CDM::PhysiologyEngineTimedConditionStabilizationData& data) const;
34 
35 public:
36  virtual std::string GetName() const;
37  virtual const char* GetName_cStr() const;
38  virtual void SetName(const char* name);
39  virtual void SetName(const std::string& name);
40  virtual bool HasName() const;
41  virtual void InvalidateName();
42 
43  virtual bool HasTime();
44  virtual SEScalarTime& GetTime();
45  virtual const SEScalarTime& GetTime() const;
46 
47 protected:
48  std::string m_Name;
50 };
51 
52 CDM_BIND_DECL(PhysiologyEngineTimedStabilizationData)
54 public:
57 
58  virtual void Clear() override;
59 
60  virtual bool Load(const CDM::PhysiologyEngineTimedStabilizationData& in);
61  virtual CDM::PhysiologyEngineTimedStabilizationData* Unload() const override;
62 
63 protected:
64  virtual void Unload(CDM::PhysiologyEngineTimedStabilizationData& data) const;
65 
66 public:
67  virtual bool Load(const char* file) override;
68  virtual bool Load(const std::string& file) override;
69 
70  virtual bool StabilizeRestingState(PhysiologyEngine& engine) override;
71  virtual bool StabilizeFeedbackState(PhysiologyEngine& engine) override;
72  virtual bool StabilizeConditions(PhysiologyEngine& engine, const std::vector<const SECondition*>& conditions) override;
73 
74  virtual SEScalarTime& GetRestingStabilizationTime();
75  virtual double GetRestingStabilizationTime(const TimeUnit& unit) const;
76 
77  virtual bool HasFeedbackStabilizationTime() const;
78  virtual SEScalarTime& GetFeedbackStabilizationTime();
79  virtual double GetFeedbackStabilizationTime(const TimeUnit& unit) const;
80 
81  virtual bool HasConditionCriteria(const char* name) const;
82  virtual bool HasConditionCriteria(const std::string& name) const;
83  virtual void RemoveConditionCriteria(const char* name);
84  virtual void RemoveConditionCriteria(const std::string& name);
85  virtual const std::vector<PhysiologyEngineTimedStabilizationCriteria*>& GetConditionCriteria() const;
86  virtual PhysiologyEngineTimedStabilizationCriteria& GetConditionCriteria(const char* name);
87  virtual PhysiologyEngineTimedStabilizationCriteria& GetConditionCriteria(const std::string& name);
88  virtual PhysiologyEngineTimedStabilizationCriteria* GetConditionCriteria(const char* name) const;
89  virtual PhysiologyEngineTimedStabilizationCriteria* GetConditionCriteria(const std::string& name) const;
90 
91 protected:
92  virtual bool Stabilize(PhysiologyEngine& engine, const SEScalarTime& time);
93 
96  std::vector<PhysiologyEngineTimedStabilizationCriteria*> m_ConditionCriteria;
97 };
98 }
std::string m_Name
Definition: PhysiologyEngineTimedStabilization.h:48
Class corresponding to the PhysiologyEngineTimedConditionStabilizationData schema type...
Definition: EngineConfiguration.hxx:1787
Definition: Logger.h:27
Definition: PhysiologyEngineTimedStabilization.h:22
Definition: Logger.h:75
Definition: PhysiologyEngineTimedStabilization.h:53
SEScalarTime * m_FeedbackStabilizationTime
Definition: PhysiologyEngineTimedStabilization.h:95
Definition: PhysiologyEngine.h:68
Definition: SEScalarTime.h:37
Definition: SEScalarTime.h:18
std::vector< PhysiologyEngineTimedStabilizationCriteria * > m_ConditionCriteria
Definition: PhysiologyEngineTimedStabilization.h:96
SEScalarTime m_RestingStabilizationTime
Definition: PhysiologyEngineTimedStabilization.h:94
Definition: PhysiologyEngineStabilization.h:28
Class corresponding to the PhysiologyEngineTimedStabilizationData schema type.
Definition: EngineConfiguration.hxx:1475
SEScalarTime m_Time
Definition: PhysiologyEngineTimedStabilization.h:49
Definition: SEElectricalCircuit.h:18