Biorbd
IdealizedActuator.cpp
1 #define BIORBD_API_EXPORTS
2 #include "Muscles/IdealizedActuator.h"
3 
4 #include "Utils/String.h"
5 #include "Muscles/Characteristics.h"
6 #include "Muscles/State.h"
7 
9  biorbd::muscles::Muscle()
10 {
11  setType();
12 }
13 
15  const biorbd::utils::String& name,
16  const biorbd::muscles::Geometry& geometry,
17  const biorbd::muscles::Characteristics& characteristics) :
18  biorbd::muscles::Muscle(name,geometry,characteristics)
19 {
20  setType();
21 }
22 
24  const biorbd::utils::String &name,
25  const biorbd::muscles::Geometry &geometry,
26  const biorbd::muscles::Characteristics &characteristics,
27  const biorbd::muscles::State &emg) :
28  biorbd::muscles::Muscle(name,geometry,characteristics,emg)
29 {
30  setType();
31 }
32 
34  const biorbd::utils::String &name,
35  const biorbd::muscles::Geometry &geometry,
36  const biorbd::muscles::Characteristics &characteristics,
37  const biorbd::muscles::PathModifiers &pathModifiers) :
38  biorbd::muscles::Muscle(name,geometry,characteristics, pathModifiers)
39 {
40  setType();
41 }
42 
44  const biorbd::utils::String& name,
45  const biorbd::muscles::Geometry& geometry,
46  const biorbd::muscles::Characteristics& characteristics,
47  const biorbd::muscles::PathModifiers &pathModifiers,
48  const biorbd::muscles::State& emg) :
49  biorbd::muscles::Muscle(name,geometry,characteristics,pathModifiers,emg)
50 {
51  setType();
52 }
53 
55  biorbd::muscles::Muscle (other)
56 {
57 
58 }
59 
60 biorbd::muscles::IdealizedActuator::IdealizedActuator(const std::shared_ptr<biorbd::muscles::Muscle> other) :
61  biorbd::muscles::Muscle (other)
62 {
63 
64 }
65 
67 {
69  copy.DeepCopy(*this);
70  return copy;
71 }
72 
74 {
76 }
77 
78 const biorbd::utils::Scalar& biorbd::muscles::IdealizedActuator::force(
79  const biorbd::muscles::State &emg)
80 {
81  computeForce(emg);
82  return *m_force;
83 }
84 
85 const biorbd::utils::Scalar& biorbd::muscles::IdealizedActuator::force(
89  const biorbd::muscles::State &emg,
90  int)
91 {
92  computeForce(emg);
93  return *m_force;
94 }
95 
96 const biorbd::utils::Scalar& biorbd::muscles::IdealizedActuator::force(
99  const biorbd::muscles::State &emg,
100  int)
101 {
102  computeForce(emg);
103  return *m_force;
104 }
105 
107  const biorbd::muscles::State &emg)
108 {
109  return characteristics().forceIsoMax() * (emg.activation());
110 }
111 
113 {
114  *m_type = biorbd::muscles::MUSCLE_TYPE::IDEALIZED_ACTUATOR;
115 }
biorbd::muscles::State
EMG holder to interact with the muscle.
Definition: State.h:16
biorbd::rigidbody::GeneralizedCoordinates
Class GeneralizedCoordinates.
Definition: GeneralizedCoordinates.h:15
biorbd::muscles::State::activation
const biorbd::utils::Scalar & activation() const
Return the muscle activation.
Definition: State.cpp:127
biorbd::muscles::Geometry
Class Geometry of the muscle.
Definition: Geometry.h:30
biorbd::muscles::IdealizedActuator::IdealizedActuator
IdealizedActuator()
Contruct an idealized actuator.
Definition: IdealizedActuator.cpp:8
biorbd::muscles::IdealizedActuator::getForceFromActivation
virtual biorbd::utils::Scalar getForceFromActivation(const biorbd::muscles::State &emg)
Function allowing modification of the way the multiplication is done in computeForce(EMG)
Definition: IdealizedActuator.cpp:106
biorbd::muscles::Muscle::DeepCopy
void DeepCopy(const biorbd::muscles::Muscle &other)
Deep copy of a muscle in new muscle.
Definition: Muscle.cpp:100
biorbd::rigidbody::Joints
This is the core of the musculoskeletal model in biorbd.
Definition: Joints.h:40
biorbd::muscles::IdealizedActuator
Muscle that has a constant maximal force.
Definition: IdealizedActuator.h:14
biorbd::muscles::PathModifiers
Holder of all the path modifiers of a muscle.
Definition: PathModifiers.h:18
biorbd::utils::String
Wrapper around the std::string class with augmented functionality.
Definition: String.h:17
biorbd::muscles::IdealizedActuator::setType
virtual void setType()
Set the type to Idealized_actuator.
Definition: IdealizedActuator.cpp:112
biorbd::muscles::Characteristics
Class Holds that muscle characteristics.
Definition: Characteristics.h:17
biorbd::muscles::Compound::force
virtual const biorbd::utils::Scalar & force()
Return the last computed muscle force norm.
Definition: Compound.cpp:96
biorbd::rigidbody::GeneralizedVelocity
Class GeneralizedVelocity.
Definition: GeneralizedVelocity.h:15
biorbd::muscles::Muscle
Base class of all muscle.
Definition: Muscle.h:23
biorbd::muscles::IdealizedActuator::DeepCopy
biorbd::muscles::IdealizedActuator DeepCopy() const
Deep copy of an idealized actuator.
Definition: IdealizedActuator.cpp:66