Skip to content

Commit 27868bb

Browse files
ntatum94StevenAWhite
authored andcommitted
expanding out to include nodes for both arms and both legs.
1 parent 6203e5d commit 27868bb

File tree

11 files changed

+465
-17
lines changed

11 files changed

+465
-17
lines changed

projects/biogears/libBiogears/include/biogears/cdm/system/physiology/SEEnergySystem.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,22 @@ class BIOGEARS_API SEEnergySystem : public SESystem {
106106
SEScalarTemperature& GetSkinTemperatureHead();
107107
double GetSkinTemperatureHead(const TemperatureUnit& unit) const;
108108

109+
bool HasSkinTemperatureLeftArm() const;
110+
SEScalarTemperature& GetSkinTemperatureLeftArm();
111+
double GetSkinTemperatureLeftArm(const TemperatureUnit& unit) const;
112+
113+
bool HasSkinTemperatureRightArm() const;
114+
SEScalarTemperature& GetSkinTemperatureRightArm();
115+
double GetSkinTemperatureRightArm(const TemperatureUnit& unit) const;
116+
117+
bool HasSkinTemperatureLeftLeg() const;
118+
SEScalarTemperature& GetSkinTemperatureLeftLeg();
119+
double GetSkinTemperatureLeftLeg(const TemperatureUnit& unit) const;
120+
121+
bool HasSkinTemperatureRightLeg() const;
122+
SEScalarTemperature& GetSkinTemperatureRightLeg();
123+
double GetSkinTemperatureRightLeg(const TemperatureUnit& unit) const;
124+
109125
bool HasSodiumLostToSweat() const;
110126
SEScalarMass& GetSodiumLostToSweat();
111127
double GetSodiumLostToSweat(const MassUnit& unit) const;
@@ -135,6 +151,10 @@ class BIOGEARS_API SEEnergySystem : public SESystem {
135151
SEScalarMass* m_PotassiumLostToSweat;
136152
SEScalarTemperature* m_SkinTemperatureTorso;
137153
SEScalarTemperature* m_SkinTemperatureHead;
154+
SEScalarTemperature* m_SkinTemperatureLeftArm;
155+
SEScalarTemperature* m_SkinTemperatureRightArm;
156+
SEScalarTemperature* m_SkinTemperatureLeftLeg;
157+
SEScalarTemperature* m_SkinTemperatureRightLeg;
138158
SEScalarMass* m_SodiumLostToSweat;
139159
SEScalarMassPerTime* m_SweatRate;
140160
SEScalarPower* m_TotalMetabolicRate;

projects/biogears/libBiogears/include/biogears/engine/BioGearsPhysiologyEngine.h

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -533,16 +533,24 @@ namespace tatrc {
533533
DEFINE_STATIC_STRING(ExternalCore);
534534
DEFINE_STATIC_STRING(ExternalTorsoSkin);
535535
DEFINE_STATIC_STRING(ExternalHeadSkin);
536+
DEFINE_STATIC_STRING(ExternalLeftArmSkin);
537+
DEFINE_STATIC_STRING(ExternalRightArmSkin);
538+
DEFINE_STATIC_STRING(ExternalLeftLegSkin);
539+
DEFINE_STATIC_STRING(ExternalRightLegSkin);
536540
DEFINE_STATIC_STRING(ExternalGround);
537541
DEFINE_STATIC_STRING(InternalCore);
538542
DEFINE_STATIC_STRING(InternalTorsoSkin);
539543
DEFINE_STATIC_STRING(InternalHeadSkin);
544+
DEFINE_STATIC_STRING(InternalLeftArmSkin);
545+
DEFINE_STATIC_STRING(InternalRightArmSkin);
546+
DEFINE_STATIC_STRING(InternalLeftLegSkin);
547+
DEFINE_STATIC_STRING(InternalRightLegSkin);
540548
DEFINE_STATIC_STRING(InternalGround);
541549

542550
static const std::vector<std::string>& GetValues()
543551
{
544552
static std::vector<std::string> _values = {
545-
Active, Ambient, Clothing, Enclosure, ExternalCore, ExternalTorsoSkin, ExternalHeadSkin, ExternalGround, InternalCore, InternalTorsoSkin, InternalHeadSkin, InternalGround
553+
Active, Ambient, Clothing, Enclosure, ExternalCore, ExternalTorsoSkin, ExternalHeadSkin, ExternalLeftArmSkin, ExternalRightArmSkin, ExternalLeftLegSkin, ExternalRightLegSkin, ExternalGround, InternalCore, InternalTorsoSkin, InternalHeadSkin, InternalLeftArmSkin, InternalRightArmSkin, InternalLeftLegSkin, InternalRightLegSkin, InternalGround
546554
};
547555
return _values;
548556
}
@@ -560,22 +568,42 @@ namespace tatrc {
560568
DEFINE_STATIC_STRING(GroundToEnvironment);
561569
DEFINE_STATIC_STRING(ExternalTorsoSkinToGround);
562570
DEFINE_STATIC_STRING(ExternalHeadSkinToGround);
571+
DEFINE_STATIC_STRING(ExternalLeftArmSkinToGround);
572+
DEFINE_STATIC_STRING(ExternalRightArmSkinToGround);
573+
DEFINE_STATIC_STRING(ExternalLeftLegSkinToGround);
574+
DEFINE_STATIC_STRING(ExternalRightLegSkinToGround);
563575
DEFINE_STATIC_STRING(ExternalTorsoSkinToClothing);
564576
DEFINE_STATIC_STRING(ExternalHeadSkinToClothing);
577+
DEFINE_STATIC_STRING(ExternalLeftArmSkinToClothing);
578+
DEFINE_STATIC_STRING(ExternalRightArmSkinToClothing);
579+
DEFINE_STATIC_STRING(ExternalLeftLegSkinToClothing);
580+
DEFINE_STATIC_STRING(ExternalRightLegSkinToClothing);
565581
DEFINE_STATIC_STRING(GroundToInternalCore);
566582
DEFINE_STATIC_STRING(InternalCoreToInternalTorsoSkin);
567583
DEFINE_STATIC_STRING(InternalCoreToInternalHeadSkin);
584+
DEFINE_STATIC_STRING(InternalCoreToInternalLeftArmSkin);
585+
DEFINE_STATIC_STRING(InternalCoreToInternalRightArmSkin);
586+
DEFINE_STATIC_STRING(InternalCoreToInternalLeftLegSkin);
587+
DEFINE_STATIC_STRING(InternalCoreToInternalRightLegSkin);
568588
DEFINE_STATIC_STRING(InternalCoreToGround);
569589
DEFINE_STATIC_STRING(InternalTorsoSkinToGround);
570590
DEFINE_STATIC_STRING(InternalHeadSkinToGround);
591+
DEFINE_STATIC_STRING(InternalLeftArmSkinToGround);
592+
DEFINE_STATIC_STRING(InternalRightArmSkinToGround);
593+
DEFINE_STATIC_STRING(InternalLeftLegSkinToGround);
594+
DEFINE_STATIC_STRING(InternalRightLegSkinToGround);
571595
DEFINE_STATIC_STRING(InternalCoreToExternalCore);
572596
DEFINE_STATIC_STRING(InternalTorsoSkinToExternalTorsoSkin);
573597
DEFINE_STATIC_STRING(InternalHeadSkinToExternalHeadSkin);
598+
DEFINE_STATIC_STRING(InternalLeftArmSkinToExternalLeftArmSkin);
599+
DEFINE_STATIC_STRING(InternalRightArmSkinToExternalRightArmSkin);
600+
DEFINE_STATIC_STRING(InternalLeftLegSkinToExternalLeftLegSkin);
601+
DEFINE_STATIC_STRING(InternalRightLegSkinToExternalRightLegSkin);
574602

575603
static const std::vector<std::string>& GetValues()
576604
{
577605
static std::vector<std::string> _values = {
578-
ActiveToClothing, ClothingToEnclosure, ClothingToEnvironment, ExternalCoreToGround, GroundToActive, GroundToClothing, GroundToEnclosure, GroundToEnvironment, ExternalTorsoSkinToGround, ExternalHeadSkinToGround, ExternalTorsoSkinToClothing, ExternalHeadSkinToClothing, GroundToInternalCore, InternalCoreToInternalTorsoSkin, InternalCoreToInternalHeadSkin, InternalCoreToGround, InternalTorsoSkinToGround, InternalHeadSkinToGround, InternalCoreToExternalCore, InternalTorsoSkinToExternalTorsoSkin, InternalHeadSkinToExternalHeadSkin
606+
ActiveToClothing, ClothingToEnclosure, ClothingToEnvironment, ExternalCoreToGround, GroundToActive, GroundToClothing, GroundToEnclosure, GroundToEnvironment, ExternalTorsoSkinToGround, ExternalHeadSkinToGround, ExternalLeftArmSkinToGround, ExternalRightArmSkinToGround, ExternalLeftLegSkinToGround, ExternalRightLegSkinToGround, ExternalTorsoSkinToClothing, ExternalHeadSkinToClothing, ExternalLeftArmSkinToClothing, ExternalRightArmSkinToClothing, ExternalLeftLegSkinToClothing, ExternalRightLegSkinToClothing, GroundToInternalCore, InternalCoreToInternalTorsoSkin, InternalCoreToInternalHeadSkin, InternalCoreToInternalLeftArmSkin, InternalCoreToInternalRightArmSkin, InternalCoreToInternalLeftLegSkin, InternalCoreToInternalRightLegSkin, InternalCoreToGround, InternalTorsoSkinToGround, InternalHeadSkinToGround, InternalLeftArmSkinToGround, InternalRightArmSkinToGround, InternalLeftLegSkinToGround, InternalRightLegSkinToGround, InternalCoreToExternalCore, InternalTorsoSkinToExternalTorsoSkin, InternalHeadSkinToExternalHeadSkin, InternalLeftArmSkinToExternalLeftArmSkin, InternalRightArmSkinToExternalRightArmSkin, InternalLeftLegSkinToExternalLeftLegSkin, InternalRightLegSkinToExternalRightLegSkin
579607
};
580608
return _values;
581609
}

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

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,10 @@ namespace tatrc {
305305
DEFINE_STATIC_STRING(ExternalCore);
306306
DEFINE_STATIC_STRING(ExternalTorsoSkin);
307307
DEFINE_STATIC_STRING(ExternalHeadSkin);
308+
DEFINE_STATIC_STRING(ExternalLeftArmSkin);
309+
DEFINE_STATIC_STRING(ExternalRightArmSkin);
310+
DEFINE_STATIC_STRING(ExternalLeftLegSkin);
311+
DEFINE_STATIC_STRING(ExternalRightLegSkin);
308312
DEFINE_STATIC_STRING(ExternalGround);
309313
DEFINE_STATIC_STRING(Ambient);
310314
};
@@ -323,6 +327,14 @@ namespace tatrc {
323327
DEFINE_STATIC_STRING(ExternalTorsoSkinToClothing);
324328
DEFINE_STATIC_STRING(ExternalHeadSkinToGround);
325329
DEFINE_STATIC_STRING(ExternalHeadSkinToClothing);
330+
DEFINE_STATIC_STRING(ExternalLeftArmSkinToGround);
331+
DEFINE_STATIC_STRING(ExternalLeftArmSkinToClothing);
332+
DEFINE_STATIC_STRING(ExternalRightArmSkinToGround);
333+
DEFINE_STATIC_STRING(ExternalRightArmSkinToClothing);
334+
DEFINE_STATIC_STRING(ExternalLeftLegSkinToGround);
335+
DEFINE_STATIC_STRING(ExternalLeftLegSkinToClothing);
336+
DEFINE_STATIC_STRING(ExternalRightLegSkinToGround);
337+
DEFINE_STATIC_STRING(ExternalRightLegSkinToClothing);
326338
};
327339

328340
////////////////////////////////////////
@@ -333,14 +345,12 @@ namespace tatrc {
333345

334346
DEFINE_STATIC_STRING(InternalCore);
335347
DEFINE_STATIC_STRING(InternalGround);
336-
// Leaving out central blood, fat, and muscle nodes for proof of concept
337-
//DEFINE_STATIC_STRING(CentralBlood);
338-
//DEFINE_STATIC_STRING(TorsoMuscle);
339-
//DEFINE_STATIC_STRING(TorsoFat);
340-
//DEFINE_STATIC_STRING(TorsoMuscle);
341-
//DEFINE_STATIC_STRING(TorsoFat);
342348
DEFINE_STATIC_STRING(InternalTorsoSkin);
343349
DEFINE_STATIC_STRING(InternalHeadSkin);
350+
DEFINE_STATIC_STRING(InternalLeftArmSkin);
351+
DEFINE_STATIC_STRING(InternalRightArmSkin);
352+
DEFINE_STATIC_STRING(InternalLeftLegSkin);
353+
DEFINE_STATIC_STRING(InternalRightLegSkin);
344354
};
345355

346356
namespace InternalTemperaturePath {
@@ -349,9 +359,18 @@ namespace tatrc {
349359
DEFINE_STATIC_STRING(InternalCoreToGround);
350360

351361
DEFINE_STATIC_STRING(InternalTorsoSkinToTemperatureGround);
352-
DEFINE_STATIC_STRING(InternalHeadSkinToTemperatureGround);
353362
DEFINE_STATIC_STRING(InternalCoreToInternalTorsoSkin);
363+
DEFINE_STATIC_STRING(InternalHeadSkinToTemperatureGround);
354364
DEFINE_STATIC_STRING(InternalCoreToInternalHeadSkin);
365+
366+
DEFINE_STATIC_STRING(InternalLeftArmSkinToTemperatureGround);
367+
DEFINE_STATIC_STRING(InternalCoreToInternalLeftArmSkin);
368+
DEFINE_STATIC_STRING(InternalRightArmSkinToTemperatureGround);
369+
DEFINE_STATIC_STRING(InternalCoreToInternalRightArmSkin);
370+
DEFINE_STATIC_STRING(InternalLeftLegSkinToTemperatureGround);
371+
DEFINE_STATIC_STRING(InternalCoreToInternalLeftLegSkin);
372+
DEFINE_STATIC_STRING(InternalRightLegSkinToTemperatureGround);
373+
DEFINE_STATIC_STRING(InternalCoreToInternalRightLegSkin);
355374
};
356375

357376
////////////////////////////////////////
@@ -363,6 +382,10 @@ namespace tatrc {
363382
DEFINE_STATIC_STRING(InternalCoreToExternalCore);
364383
DEFINE_STATIC_STRING(InternalTorsoSkinToExternalTorsoSkin);
365384
DEFINE_STATIC_STRING(InternalHeadSkinToExternalHeadSkin);
385+
DEFINE_STATIC_STRING(InternalLeftArmSkinToExternalLeftArmSkin);
386+
DEFINE_STATIC_STRING(InternalRightArmSkinToExternalRightArmSkin);
387+
DEFINE_STATIC_STRING(InternalLeftLegSkinToExternalLeftLegSkin);
388+
DEFINE_STATIC_STRING(InternalRightLegSkinToExternalRightLegSkin);
366389
};
367390

368391
namespace CardiovascularNode {

projects/biogears/libBiogears/src/cdm/system/physiology/SEEnergySystem.cpp

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ constexpr char idLactateProductionRate[] = "LactateProductionRate";
3636
constexpr char idPotassiumLostToSweat[] = "PotassiumLostToSweat";
3737
constexpr char idSkinTemperatureTorso[] = "SkinTemperatureTorso";
3838
constexpr char idSkinTemperatureHead[] = "SkinTemperatureHead";
39+
constexpr char idSkinTemperatureLeftArm[] = "SkinTemperatureLeftArm";
40+
constexpr char idSkinTemperatureRightArm[] = "SkinTemperatureRightArm";
41+
constexpr char idSkinTemperatureLeftLeg[] = "SkinTemperatureLeftLeg";
42+
constexpr char idSkinTemperatureRightLeg[] = "SkinTemperatureRightLeg";
3943
constexpr char idSodiumLostToSweat[] = "SodiumLostToSweat";
4044
constexpr char idSweatRate[] = "SweatRate";
4145
constexpr char idTotalMetabolicRate[] = "TotalMetabolicRate";
@@ -56,6 +60,10 @@ SEEnergySystem::SEEnergySystem(Logger* logger)
5660
m_PotassiumLostToSweat = nullptr;
5761
m_SkinTemperatureTorso = nullptr;
5862
m_SkinTemperatureHead = nullptr;
63+
m_SkinTemperatureLeftArm = nullptr;
64+
m_SkinTemperatureRightArm = nullptr;
65+
m_SkinTemperatureLeftLeg = nullptr;
66+
m_SkinTemperatureRightLeg = nullptr;
5967
m_SodiumLostToSweat = nullptr;
6068
m_SweatRate = nullptr;
6169
m_TotalMetabolicRate = nullptr;
@@ -85,6 +93,10 @@ void SEEnergySystem::Clear()
8593
SAFE_DELETE(m_PotassiumLostToSweat);
8694
SAFE_DELETE(m_SkinTemperatureTorso);
8795
SAFE_DELETE(m_SkinTemperatureHead);
96+
SAFE_DELETE(m_SkinTemperatureLeftArm);
97+
SAFE_DELETE(m_SkinTemperatureRightArm);
98+
SAFE_DELETE(m_SkinTemperatureLeftLeg);
99+
SAFE_DELETE(m_SkinTemperatureRightLeg);
88100
SAFE_DELETE(m_SodiumLostToSweat);
89101
SAFE_DELETE(m_SweatRate);
90102
SAFE_DELETE(m_TotalMetabolicRate);
@@ -121,6 +133,14 @@ const SEScalar* SEEnergySystem::GetScalar(const std::string& name)
121133
return &GetSkinTemperatureTorso();
122134
if (name == idSkinTemperatureHead)
123135
return &GetSkinTemperatureHead();
136+
if (name == idSkinTemperatureLeftArm)
137+
return &GetSkinTemperatureLeftArm();
138+
if (name == idSkinTemperatureRightArm)
139+
return &GetSkinTemperatureRightArm();
140+
if (name == idSkinTemperatureLeftLeg)
141+
return &GetSkinTemperatureLeftLeg();
142+
if (name == idSkinTemperatureRightLeg)
143+
return &GetSkinTemperatureRightLeg();
124144
if (name == idSodiumLostToSweat)
125145
return &GetSodiumLostToSweat();
126146
if (name == idSweatRate)
@@ -161,6 +181,14 @@ bool SEEnergySystem::Load(const CDM::EnergySystemData& in)
161181
GetSkinTemperatureTorso().Load(in.SkinTemperatureTorso().get());
162182
if (in.SkinTemperatureHead().present())
163183
GetSkinTemperatureHead().Load(in.SkinTemperatureHead().get());
184+
if (in.SkinTemperatureLeftArm().present())
185+
GetSkinTemperatureLeftArm().Load(in.SkinTemperatureLeftArm().get());
186+
if (in.SkinTemperatureRightArm().present())
187+
GetSkinTemperatureRightArm().Load(in.SkinTemperatureRightArm().get());
188+
if (in.SkinTemperatureLeftLeg().present())
189+
GetSkinTemperatureLeftLeg().Load(in.SkinTemperatureLeftLeg().get());
190+
if (in.SkinTemperatureRightLeg().present())
191+
GetSkinTemperatureRightLeg().Load(in.SkinTemperatureRightLeg().get());
164192
if (in.SodiumLostToSweat().present())
165193
GetSodiumLostToSweat().Load(in.SodiumLostToSweat().get());
166194
if (in.SweatRate().present())
@@ -210,6 +238,14 @@ void SEEnergySystem::Unload(CDM::EnergySystemData& data) const
210238
data.SkinTemperatureTorso(std::unique_ptr<CDM::ScalarTemperatureData>(m_SkinTemperatureTorso->Unload()));
211239
if (m_SkinTemperatureHead != nullptr)
212240
data.SkinTemperatureHead(std::unique_ptr<CDM::ScalarTemperatureData>(m_SkinTemperatureHead->Unload()));
241+
if (m_SkinTemperatureLeftArm != nullptr)
242+
data.SkinTemperatureLeftArm(std::unique_ptr<CDM::ScalarTemperatureData>(m_SkinTemperatureLeftArm->Unload()));
243+
if (m_SkinTemperatureRightArm != nullptr)
244+
data.SkinTemperatureRightArm(std::unique_ptr<CDM::ScalarTemperatureData>(m_SkinTemperatureRightArm->Unload()));
245+
if (m_SkinTemperatureLeftLeg != nullptr)
246+
data.SkinTemperatureLeftLeg(std::unique_ptr<CDM::ScalarTemperatureData>(m_SkinTemperatureLeftLeg->Unload()));
247+
if (m_SkinTemperatureRightLeg != nullptr)
248+
data.SkinTemperatureRightLeg(std::unique_ptr<CDM::ScalarTemperatureData>(m_SkinTemperatureRightLeg->Unload()));
213249
if (m_SodiumLostToSweat != nullptr)
214250
data.SodiumLostToSweat(std::unique_ptr<CDM::ScalarMassData>(m_SodiumLostToSweat->Unload()));
215251
if (m_SweatRate != nullptr)
@@ -454,6 +490,82 @@ double SEEnergySystem::GetSkinTemperatureHead(const TemperatureUnit& unit) const
454490
return m_SkinTemperatureHead->GetValue(unit);
455491
}
456492
//-------------------------------------------------------------------------------
493+
bool SEEnergySystem::HasSkinTemperatureLeftArm() const
494+
{
495+
return m_SkinTemperatureLeftArm == nullptr ? false : m_SkinTemperatureLeftArm->IsValid();
496+
}
497+
//-------------------------------------------------------------------------------
498+
SEScalarTemperature& SEEnergySystem::GetSkinTemperatureLeftArm()
499+
{
500+
if (m_SkinTemperatureLeftArm == nullptr)
501+
m_SkinTemperatureLeftArm = new SEScalarTemperature();
502+
return *m_SkinTemperatureLeftArm;
503+
}
504+
//-------------------------------------------------------------------------------
505+
double SEEnergySystem::GetSkinTemperatureLeftArm(const TemperatureUnit& unit) const
506+
{
507+
if (m_SkinTemperatureLeftArm == nullptr)
508+
return SEScalar::dNaN();
509+
return m_SkinTemperatureLeftArm->GetValue(unit);
510+
}
511+
//-------------------------------------------------------------------------------
512+
bool SEEnergySystem::HasSkinTemperatureRightArm() const
513+
{
514+
return m_SkinTemperatureRightArm == nullptr ? false : m_SkinTemperatureRightArm->IsValid();
515+
}
516+
//-------------------------------------------------------------------------------
517+
SEScalarTemperature& SEEnergySystem::GetSkinTemperatureRightArm()
518+
{
519+
if (m_SkinTemperatureRightArm == nullptr)
520+
m_SkinTemperatureRightArm = new SEScalarTemperature();
521+
return *m_SkinTemperatureRightArm;
522+
}
523+
//-------------------------------------------------------------------------------
524+
double SEEnergySystem::GetSkinTemperatureRightArm(const TemperatureUnit& unit) const
525+
{
526+
if (m_SkinTemperatureRightArm == nullptr)
527+
return SEScalar::dNaN();
528+
return m_SkinTemperatureRightArm->GetValue(unit);
529+
}
530+
//-------------------------------------------------------------------------------
531+
bool SEEnergySystem::HasSkinTemperatureLeftLeg() const
532+
{
533+
return m_SkinTemperatureLeftLeg == nullptr ? false : m_SkinTemperatureLeftLeg->IsValid();
534+
}
535+
//-------------------------------------------------------------------------------
536+
SEScalarTemperature& SEEnergySystem::GetSkinTemperatureLeftLeg()
537+
{
538+
if (m_SkinTemperatureLeftLeg == nullptr)
539+
m_SkinTemperatureLeftLeg = new SEScalarTemperature();
540+
return *m_SkinTemperatureLeftLeg;
541+
}
542+
//-------------------------------------------------------------------------------
543+
double SEEnergySystem::GetSkinTemperatureLeftLeg(const TemperatureUnit& unit) const
544+
{
545+
if (m_SkinTemperatureLeftLeg == nullptr)
546+
return SEScalar::dNaN();
547+
return m_SkinTemperatureLeftLeg->GetValue(unit);
548+
}
549+
//-------------------------------------------------------------------------------
550+
bool SEEnergySystem::HasSkinTemperatureRightLeg() const
551+
{
552+
return m_SkinTemperatureRightLeg == nullptr ? false : m_SkinTemperatureRightLeg->IsValid();
553+
}
554+
//-------------------------------------------------------------------------------
555+
SEScalarTemperature& SEEnergySystem::GetSkinTemperatureRightLeg()
556+
{
557+
if (m_SkinTemperatureRightLeg == nullptr)
558+
m_SkinTemperatureRightLeg = new SEScalarTemperature();
559+
return *m_SkinTemperatureRightLeg;
560+
}
561+
//-------------------------------------------------------------------------------
562+
double SEEnergySystem::GetSkinTemperatureRightLeg(const TemperatureUnit& unit) const
563+
{
564+
if (m_SkinTemperatureRightLeg == nullptr)
565+
return SEScalar::dNaN();
566+
return m_SkinTemperatureRightLeg->GetValue(unit);
567+
}
568+
//-------------------------------------------------------------------------------
457569

458570
bool SEEnergySystem::HasSodiumLostToSweat() const
459571
{
@@ -547,6 +659,10 @@ Tree<const char*> SEEnergySystem::GetPhysiologyRequestGraph() const
547659
.emplace_back(idPotassiumLostToSweat)
548660
.emplace_back(idSkinTemperatureTorso)
549661
.emplace_back(idSkinTemperatureHead)
662+
.emplace_back(idSkinTemperatureLeftArm)
663+
.emplace_back(idSkinTemperatureRightArm)
664+
.emplace_back(idSkinTemperatureLeftLeg)
665+
.emplace_back(idSkinTemperatureRightLeg)
550666
.emplace_back(idSodiumLostToSweat)
551667
.emplace_back(idSweatRate)
552668
.emplace_back(idTotalMetabolicRate)

0 commit comments

Comments
 (0)