Skip to content

Commit ca6d467

Browse files
author
Lucas Marin
committed
Added time runover tracking to BioGearsEngine.cpp/h
1 parent c62f9c0 commit ca6d467

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

projects/biogears/libBiogears/include/biogears/engine/Controller/BioGearsEngine.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ class BIOGEARS_API BioGearsEngine : public PhysiologyEngine, public BioGears {
9898
virtual bool IsReady();
9999
virtual bool InitializeEngine(const std::vector<const SECondition*>* conditions = nullptr, const PhysiologyEngineConfiguration* config = nullptr);
100100

101+
double timeStep_remainder = 0.0;
101102
SEEventHandler* m_EventHandler;
102103
PhysiologyEngineTrack m_EngineTrack;
103104
#pragma warning(push,0)

projects/biogears/libBiogears/src/engine/Controller/BioGearsEngine.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,14 @@ void BioGearsEngine::AdvanceModelTime()
669669
void BioGearsEngine::AdvanceModelTime(double time, const TimeUnit& unit)
670670
{
671671
double time_s = Convert(time, unit, TimeUnit::s);
672+
double remains = time_s / m_Config->GetTimeStep(TimeUnit::s);
673+
remains -= static_cast<int>(remains);
674+
timeStep_remainder += remains;
672675
int count = (int)(time_s / m_Config->GetTimeStep(TimeUnit::s));
676+
if (timeStep_remainder >= 1.0) {
677+
++count;
678+
timeStep_remainder -= 1.0;
679+
}
673680
for (int i = 0; i < count; i++) {
674681
AdvanceModelTime();
675682
}

0 commit comments

Comments
 (0)