Biorbd
Characteristics.cpp
1 #define BIORBD_API_EXPORTS
2 #include "Muscles/Characteristics.h"
3 
4 #include "Muscles/State.h"
5 #include "Muscles/FatigueParameters.h"
6 
8  m_optimalLength(std::make_shared<biorbd::utils::Scalar>(0)),
9  m_fIsoMax(std::make_shared<biorbd::utils::Scalar>(0)),
10  m_PCSA(std::make_shared<biorbd::utils::Scalar>(0)),
11  m_tendonSlackLength(std::make_shared<biorbd::utils::Scalar>(0)),
12  m_pennationAngle(std::make_shared<biorbd::utils::Scalar>(0)),
13  m_stateMax(std::make_shared<biorbd::muscles::State>(biorbd::muscles::State(1, 1))),
14  m_minActivation(std::make_shared<biorbd::utils::Scalar>(0.01)),
15  m_torqueActivation(std::make_shared<biorbd::utils::Scalar>(0.01)),
16  m_torqueDeactivation(std::make_shared<biorbd::utils::Scalar>(0.04)),
17  m_fatigueParameters(std::make_shared<biorbd::muscles::FatigueParameters>(biorbd::muscles::FatigueParameters()))
18 {
19 
20 }
21 
23  const biorbd::muscles::Characteristics &other) :
24  m_optimalLength(other.m_optimalLength),
25  m_fIsoMax(other.m_fIsoMax),
26  m_PCSA(other.m_PCSA),
27  m_tendonSlackLength(other.m_tendonSlackLength),
28  m_pennationAngle(other.m_pennationAngle),
29  m_stateMax(other.m_stateMax),
30  m_minActivation(other.m_minActivation),
31  m_torqueActivation(other.m_torqueActivation),
32  m_torqueDeactivation(other.m_torqueDeactivation),
33  m_fatigueParameters(other.m_fatigueParameters)
34 {
35 
36 }
37 
39  const biorbd::utils::Scalar& optLength,
40  const biorbd::utils::Scalar& fmax,
41  const biorbd::utils::Scalar& PCSA,
42  const biorbd::utils::Scalar& tendonSlackLength,
43  const biorbd::utils::Scalar& pennAngle,
44  const biorbd::muscles::State &emgMax,
45  const biorbd::muscles::FatigueParameters &fatigueParameters,
46  const biorbd::utils::Scalar& torqueAct,
47  const biorbd::utils::Scalar& torqueDeact,
48  const biorbd::utils::Scalar& minAct):
49  m_optimalLength(std::make_shared<biorbd::utils::Scalar>(optLength)),
50  m_fIsoMax(std::make_shared<biorbd::utils::Scalar>(fmax)),
51  m_PCSA(std::make_shared<biorbd::utils::Scalar>(PCSA)),
52  m_tendonSlackLength(std::make_shared<biorbd::utils::Scalar>(tendonSlackLength)),
53  m_pennationAngle(std::make_shared<biorbd::utils::Scalar>(pennAngle)),
54  m_stateMax(std::make_shared<biorbd::muscles::State>(emgMax)),
55  m_minActivation(std::make_shared<biorbd::utils::Scalar>(minAct)),
56  m_torqueActivation(std::make_shared<biorbd::utils::Scalar>(torqueAct)),
57  m_torqueDeactivation(std::make_shared<biorbd::utils::Scalar>(torqueDeact)),
58  m_fatigueParameters(std::make_shared<biorbd::muscles::FatigueParameters>(fatigueParameters))
59 {
60 
61 }
62 
64 {
65 
66 }
67 
69 {
71  copy.DeepCopy(*this);
72  return copy;
73 }
74 
77 {
78  *m_optimalLength = *other.m_optimalLength;
79  *m_fIsoMax = *other.m_fIsoMax;
80  *m_PCSA = *other.m_PCSA;
81  *m_tendonSlackLength = *other.m_tendonSlackLength;
82  *m_pennationAngle = *other.m_pennationAngle;
83  *m_stateMax = other.m_stateMax->DeepCopy();
84  *m_minActivation = *other.m_minActivation;
85  *m_torqueActivation = *other.m_torqueActivation;
86  *m_torqueDeactivation = *other.m_torqueDeactivation;
87  *m_fatigueParameters = other.m_fatigueParameters->DeepCopy();
88 }
89 
90 // Get et Set
92  const biorbd::utils::Scalar& val)
93 {
94  *m_optimalLength = val;
95 }
96 const biorbd::utils::Scalar& biorbd::muscles::Characteristics::optimalLength() const
97 {
98  return *m_optimalLength;
99 }
100 
102  const biorbd::utils::Scalar& val)
103 {
104  *m_fIsoMax = val;
105 }
106 const biorbd::utils::Scalar& biorbd::muscles::Characteristics::forceIsoMax() const
107 {
108  return *m_fIsoMax;
109 }
110 
112  const biorbd::utils::Scalar& val)
113 {
114  *m_tendonSlackLength = val;
115 }
116 const biorbd::utils::Scalar& biorbd::muscles::Characteristics::tendonSlackLength() const
117 {
118  return *m_tendonSlackLength;
119 }
120 
122  const biorbd::utils::Scalar& val)
123 {
124  *m_pennationAngle = val;
125 }
126 const biorbd::utils::Scalar& biorbd::muscles::Characteristics::pennationAngle() const
127 {
128  return *m_pennationAngle;
129 }
130 
132  const biorbd::utils::Scalar& val)
133 {
134  *m_PCSA = val;
135 }
136 const biorbd::utils::Scalar& biorbd::muscles::Characteristics::PCSA() const
137 {
138  return *m_PCSA;
139 }
140 
142  const biorbd::utils::Scalar& val)
143 {
144  *m_minActivation = val;
145 }
146 const biorbd::utils::Scalar& biorbd::muscles::Characteristics::minActivation() const
147 {
148  return *m_minActivation;
149 }
150 
152  const biorbd::utils::Scalar& val)
153 {
154  *m_torqueActivation = val;
155 }
156 const biorbd::utils::Scalar& biorbd::muscles::Characteristics::torqueActivation() const
157 {
158  return *m_torqueActivation;
159 }
160 
162  const biorbd::utils::Scalar& val)
163 {
164  *m_torqueDeactivation = val;
165 }
166 const biorbd::utils::Scalar& biorbd::muscles::Characteristics::torqueDeactivation() const
167 {
168  return *m_torqueDeactivation;
169 }
170 
171 
173  const biorbd::muscles::State &emgMax) {
174  *m_stateMax = emgMax;
175 }
177  return *m_stateMax;
178 }
179 
181 {
182  *m_fatigueParameters = fatigueParameters;
183 }
185 {
186  return *m_fatigueParameters;
187 }
188 
biorbd::muscles::Characteristics::setOptimalLength
void setOptimalLength(const biorbd::utils::Scalar &val)
Set the length without tension.
Definition: Characteristics.cpp:91
biorbd::muscles::Characteristics::minActivation
const biorbd::utils::Scalar & minActivation() const
Return the minimal activation of the muscle.
Definition: Characteristics.cpp:146
biorbd::muscles::Characteristics::pennationAngle
const biorbd::utils::Scalar & pennationAngle() const
Return the angle of pennation.
Definition: Characteristics.cpp:126
biorbd::muscles::Characteristics::PCSA
const biorbd::utils::Scalar & PCSA() const
Return the physiological cross-sectional area of the muscle.
Definition: Characteristics.cpp:136
biorbd::muscles::Characteristics::m_fIsoMax
std::shared_ptr< biorbd::utils::Scalar > m_fIsoMax
Maximal isometric force Force maximale isométrique.
Definition: Characteristics.h:204
biorbd::muscles::Characteristics::setTendonSlackLength
void setTendonSlackLength(const biorbd::utils::Scalar &val)
Set the tendon slack length.
Definition: Characteristics.cpp:111
biorbd::muscles::State
EMG holder to interact with the muscle.
Definition: State.h:16
biorbd::muscles::Characteristics::setTorqueActivation
void setTorqueActivation(const biorbd::utils::Scalar &val)
Set the time activation constant.
Definition: Characteristics.cpp:151
biorbd::muscles::Characteristics::torqueActivation
const biorbd::utils::Scalar & torqueActivation() const
Return the time activation constant.
Definition: Characteristics.cpp:156
biorbd::muscles::Characteristics::forceIsoMax
const biorbd::utils::Scalar & forceIsoMax() const
Return the maximal isometric force at optimal length.
Definition: Characteristics.cpp:106
biorbd::muscles::Characteristics::m_optimalLength
std::shared_ptr< biorbd::utils::Scalar > m_optimalLength
Length without tension.
Definition: Characteristics.h:203
biorbd::muscles::Characteristics::setPennationAngle
void setPennationAngle(const biorbd::utils::Scalar &val)
Set the angle of pennation.
Definition: Characteristics.cpp:121
biorbd::muscles::Characteristics::setForceIsoMax
virtual void setForceIsoMax(const biorbd::utils::Scalar &val)
Set the maximal isometric force.
Definition: Characteristics.cpp:101
biorbd::muscles::Characteristics::stateMax
const biorbd::muscles::State & stateMax() const
Return the maximal excitation and activation of the muscle.
Definition: Characteristics.cpp:176
biorbd::muscles::Characteristics::m_torqueActivation
std::shared_ptr< biorbd::utils::Scalar > m_torqueActivation
Time activation constant.
Definition: Characteristics.h:212
biorbd::muscles::Characteristics::m_PCSA
std::shared_ptr< biorbd::utils::Scalar > m_PCSA
Physiological cross-sectional area of the muscle.
Definition: Characteristics.h:205
biorbd::muscles::Characteristics::m_torqueDeactivation
std::shared_ptr< biorbd::utils::Scalar > m_torqueDeactivation
Time deactivation constant.
Definition: Characteristics.h:213
biorbd::muscles::Characteristics::DeepCopy
biorbd::muscles::Characteristics DeepCopy() const
Deep copy of characteristics.
Definition: Characteristics.cpp:68
biorbd::muscles::FatigueParameters
Class FatigueParameters that holds the muscle fatigue parameters.
Definition: FatigueParameters.h:16
biorbd::muscles::Characteristics::tendonSlackLength
const biorbd::utils::Scalar & tendonSlackLength() const
Return the tendon slack length.
Definition: Characteristics.cpp:116
biorbd::muscles::Characteristics::setTorqueDeactivation
void setTorqueDeactivation(const biorbd::utils::Scalar &val)
Set the time deactivation constant.
Definition: Characteristics.cpp:161
biorbd::muscles::Characteristics::torqueDeactivation
const biorbd::utils::Scalar & torqueDeactivation() const
Return the time deactivation constant.
Definition: Characteristics.cpp:166
biorbd::muscles::Characteristics::~Characteristics
virtual ~Characteristics()
Destroy the class properly.
Definition: Characteristics.cpp:63
biorbd::muscles::Characteristics::m_tendonSlackLength
std::shared_ptr< biorbd::utils::Scalar > m_tendonSlackLength
Tendon slack length.
Definition: Characteristics.h:206
biorbd::muscles::Characteristics::setStateMax
void setStateMax(const biorbd::muscles::State &emgMax)
Set the maximal excitation and activation of the muscle.
Definition: Characteristics.cpp:172
biorbd::muscles::Characteristics::setMinActivation
void setMinActivation(const biorbd::utils::Scalar &val)
Set the minimal activation of the muscle.
Definition: Characteristics.cpp:141
biorbd::muscles::Characteristics::m_minActivation
std::shared_ptr< biorbd::utils::Scalar > m_minActivation
Minimal activation.
Definition: Characteristics.h:211
biorbd::muscles::Characteristics::setPCSA
void setPCSA(const biorbd::utils::Scalar &val)
Set the physiological cross-sectional area of the muscle.
Definition: Characteristics.cpp:131
biorbd::muscles::Characteristics::m_pennationAngle
std::shared_ptr< biorbd::utils::Scalar > m_pennationAngle
Angle of pennation.
Definition: Characteristics.h:207
biorbd::muscles::Characteristics::fatigueParameters
const biorbd::muscles::FatigueParameters & fatigueParameters() const
Return the fatigue parameters.
Definition: Characteristics.cpp:184
biorbd::muscles::Characteristics
Class Holds that muscle characteristics.
Definition: Characteristics.h:17
biorbd::muscles::Characteristics::setFatigueParameters
void setFatigueParameters(const biorbd::muscles::FatigueParameters &fatigueParameters)
Set the fatigue parameters.
Definition: Characteristics.cpp:180
biorbd::muscles::Characteristics::Characteristics
Characteristics()
Construct characteristics.
Definition: Characteristics.cpp:7
biorbd::muscles::Characteristics::optimalLength
virtual const biorbd::utils::Scalar & optimalLength() const
Return the optimal length at which maximal force occurs.
Definition: Characteristics.cpp:96
biorbd::muscles::Characteristics::m_fatigueParameters
std::shared_ptr< biorbd::muscles::FatigueParameters > m_fatigueParameters
Fatigue parameters.
Definition: Characteristics.h:216
biorbd::muscles::Characteristics::m_stateMax
std::shared_ptr< biorbd::muscles::State > m_stateMax
Maximal excitation et activation of the muscle.
Definition: Characteristics.h:208