Biorbd
Characteristics.h
1 #ifndef BIORBD_MUSCLES_CHARACTERISTICS_H
2 #define BIORBD_MUSCLES_CHARACTERISTICS_H
3 
4 #include <memory>
5 #include <cstddef>
6 #include "biorbdConfig.h"
7 #include "Utils/Scalar.h"
8 
9 namespace biorbd {
10 namespace muscles {
11 class State;
12 class FatigueParameters;
16 class BIORBD_API Characteristics
17 {
18 public:
23 
30 
45  const biorbd::utils::Scalar& optLength,
46  const biorbd::utils::Scalar& fmax,
47  const biorbd::utils::Scalar& PCSA,
48  const biorbd::utils::Scalar& tendonSlackLength,
49  const biorbd::utils::Scalar& pennAngle,
50  const biorbd::muscles::State& emgMax,
51  const biorbd::muscles::FatigueParameters& fatigueParameters,
52  const biorbd::utils::Scalar& torqueAct = 0.01,
53  const biorbd::utils::Scalar& torqueDeact = 0.04,
54  const biorbd::utils::Scalar& minAct = 0.01);
55 
59  virtual ~Characteristics();
60 
65  biorbd::muscles::Characteristics DeepCopy() const;
66 
71  void DeepCopy(
73 
74 
79  void setOptimalLength(
80  const biorbd::utils::Scalar& val);
81 
86  virtual const biorbd::utils::Scalar& optimalLength() const;
87 
92  virtual void setForceIsoMax(
93  const biorbd::utils::Scalar& val);
94 
99  const biorbd::utils::Scalar& forceIsoMax() const;
100 
105  void setTendonSlackLength(
106  const biorbd::utils::Scalar& val);
111  const biorbd::utils::Scalar& tendonSlackLength() const;
112 
117  void setPennationAngle(
118  const biorbd::utils::Scalar& val);
123  const biorbd::utils::Scalar& pennationAngle() const;
124 
129  void setPCSA(
130  const biorbd::utils::Scalar& val);
131 
136  const biorbd::utils::Scalar& PCSA() const;
137 
142  void setMinActivation(
143  const biorbd::utils::Scalar& val);
144 
149  const biorbd::utils::Scalar& minActivation() const;
150 
155  void setTorqueActivation(
156  const biorbd::utils::Scalar& val);
157 
162  const biorbd::utils::Scalar& torqueActivation() const;
163 
168  void setTorqueDeactivation(
169  const biorbd::utils::Scalar& val);
170 
175  const biorbd::utils::Scalar& torqueDeactivation() const;
176 
181  void setStateMax(
182  const biorbd::muscles::State &emgMax);
183 
188  const biorbd::muscles::State& stateMax() const;
189 
194  void setFatigueParameters(
195  const biorbd::muscles::FatigueParameters& fatigueParameters);
200  const biorbd::muscles::FatigueParameters& fatigueParameters() const;
201 
202 protected:
203  std::shared_ptr<biorbd::utils::Scalar> m_optimalLength;
204  std::shared_ptr<biorbd::utils::Scalar> m_fIsoMax;
205  std::shared_ptr<biorbd::utils::Scalar> m_PCSA;
206  std::shared_ptr<biorbd::utils::Scalar> m_tendonSlackLength;
207  std::shared_ptr<biorbd::utils::Scalar> m_pennationAngle;
208  std::shared_ptr<biorbd::muscles::State> m_stateMax;
209 
210  // Parametre d'activation
211  std::shared_ptr<biorbd::utils::Scalar> m_minActivation;
212  std::shared_ptr<biorbd::utils::Scalar> m_torqueActivation;
213  std::shared_ptr<biorbd::utils::Scalar> m_torqueDeactivation;
214 
215  // Fatigue parameters
216  std::shared_ptr<biorbd::muscles::FatigueParameters> m_fatigueParameters;
217 };
218 
219 }}
220 
221 #endif // BIORBD_MUSCLES_CHARACTERISTICS_H
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::State
EMG holder to interact with the muscle.
Definition: State.h:16
biorbd::muscles::Characteristics::m_optimalLength
std::shared_ptr< biorbd::utils::Scalar > m_optimalLength
Length without tension.
Definition: Characteristics.h:203
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::FatigueParameters
Class FatigueParameters that holds the muscle fatigue parameters.
Definition: FatigueParameters.h:16
biorbd::muscles::Characteristics::m_tendonSlackLength
std::shared_ptr< biorbd::utils::Scalar > m_tendonSlackLength
Tendon slack length.
Definition: Characteristics.h:206
biorbd::muscles::Characteristics::m_minActivation
std::shared_ptr< biorbd::utils::Scalar > m_minActivation
Minimal activation.
Definition: Characteristics.h:211
biorbd::muscles::Characteristics::m_pennationAngle
std::shared_ptr< biorbd::utils::Scalar > m_pennationAngle
Angle of pennation.
Definition: Characteristics.h:207
biorbd::muscles::Characteristics
Class Holds that muscle characteristics.
Definition: Characteristics.h:17
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