Biorbd
MuscleGroup.h
1 #ifndef BIORBD_MUSCLES_MUSCLE_GROUP_H
2 #define BIORBD_MUSCLES_MUSCLE_GROUP_H
3 
4 #include <memory>
5 #include <vector>
6 #include "biorbdConfig.h"
7 #include "Muscles/MusclesEnums.h"
8 
9 namespace biorbd {
10 namespace utils {
11 class String;
12 }
13 
14 namespace muscles {
15 class Muscle;
16 class Geometry;
17 class Characteristics;
18 class PathModifiers;
22 class BIORBD_API MuscleGroup
23 {
24 public:
28  MuscleGroup();
29 
35  const biorbd::muscles::MuscleGroup& other);
36 
44  const biorbd::utils::String &name,
45  const biorbd::utils::String &originName,
46  const biorbd::utils::String &insertionName);
47 
51  virtual ~MuscleGroup();
52 
57  biorbd::muscles::MuscleGroup DeepCopy() const;
58 
63  void DeepCopy(
64  const biorbd::muscles::MuscleGroup& other);
65 
66 #ifndef SWIG
67  virtual void addMuscle(
77  const biorbd::utils::String& name,
78  biorbd::muscles::MUSCLE_TYPE type,
79  const biorbd::muscles::Geometry& geometry,
80  const biorbd::muscles::Characteristics& characteristics,
81  biorbd::muscles::STATE_TYPE stateType = biorbd::muscles::STATE_TYPE::NO_STATE_TYPE,
82  biorbd::muscles::STATE_FATIGUE_TYPE dynamicFatigueType = biorbd::muscles::STATE_FATIGUE_TYPE::NO_FATIGUE_STATE_TYPE);
83 
92  virtual void addMuscle(
93  const biorbd::utils::String& name,
94  biorbd::muscles::MUSCLE_TYPE type,
95  const biorbd::muscles::Geometry& geometry,
96  const biorbd::muscles::Characteristics& characteristics,
97  biorbd::muscles::STATE_FATIGUE_TYPE dynamicFatigueType);
98 
109  virtual void addMuscle(
110  const biorbd::utils::String& name,
111  biorbd::muscles::MUSCLE_TYPE type,
112  const biorbd::muscles::Geometry& geometry,
113  const biorbd::muscles::Characteristics& characteristics,
114  const biorbd::muscles::PathModifiers& pathModifiers,
115  biorbd::muscles::STATE_TYPE stateType = biorbd::muscles::STATE_TYPE::NO_STATE_TYPE,
116  biorbd::muscles::STATE_FATIGUE_TYPE dynamicFatigueType = biorbd::muscles::STATE_FATIGUE_TYPE::NO_FATIGUE_STATE_TYPE);
117 
127  virtual void addMuscle(
128  const biorbd::utils::String& name,
129  biorbd::muscles::MUSCLE_TYPE type,
130  const biorbd::muscles::Geometry& geometry,
131  const biorbd::muscles::Characteristics& characteristics,
132  const biorbd::muscles::PathModifiers& pathModifiers,
133  biorbd::muscles::STATE_FATIGUE_TYPE dynamicFatigueType);
134 #endif
135 
140  virtual void addMuscle(
141  const biorbd::muscles::Muscle &muscle);
142 
147  unsigned int nbMuscles() const;
148 
153  std::vector<std::shared_ptr<biorbd::muscles::Muscle>>& muscles();
154 
159  const std::vector<std::shared_ptr<biorbd::muscles::Muscle>>& muscles() const;
160 
166  biorbd::muscles::Muscle& muscle(
167  unsigned int idx);
168 
174  const biorbd::muscles::Muscle& muscle(
175  unsigned int idx) const;
176 
182  int muscleID(
183  const biorbd::utils::String& name);
184 
189  void setName(
190  const biorbd::utils::String& name);
191 
196  const biorbd::utils::String& name() const;
197 
202  void setOrigin(
203  const biorbd::utils::String& name);
204 
209  const biorbd::utils::String& origin() const;
210 
215  void setInsertion(
216  const biorbd::utils::String& name);
217 
222  const biorbd::utils::String& insertion() const;
223 
224 protected:
225  std::shared_ptr<std::vector<std::shared_ptr<biorbd::muscles::Muscle>>> m_mus;
226  std::shared_ptr<biorbd::utils::String> m_name;
227  std::shared_ptr<biorbd::utils::String> m_originName;
228  std::shared_ptr<biorbd::utils::String> m_insertName;
229 
230 };
231 
232 }}
233 
234 #endif // BIORBD_MUSCLES_MUSCLE_GROUP_H
biorbd::muscles::MuscleGroup::m_mus
std::shared_ptr< std::vector< std::shared_ptr< biorbd::muscles::Muscle > > > m_mus
The set of muscles.
Definition: MuscleGroup.h:225
biorbd::muscles::MuscleGroup
A muscle group is muscle that share parents for both origin and insertion.
Definition: MuscleGroup.h:23
biorbd::muscles::Geometry
Class Geometry of the muscle.
Definition: Geometry.h:30
biorbd::muscles::MuscleGroup::m_name
std::shared_ptr< biorbd::utils::String > m_name
The muscle group name.
Definition: MuscleGroup.h:226
biorbd::muscles::MuscleGroup::m_originName
std::shared_ptr< biorbd::utils::String > m_originName
The origin name.
Definition: MuscleGroup.h:227
biorbd::muscles::PathModifiers
Holder of all the path modifiers of a muscle.
Definition: PathModifiers.h:18
biorbd::muscles::MuscleGroup::m_insertName
std::shared_ptr< biorbd::utils::String > m_insertName
The insertion name.
Definition: MuscleGroup.h:228
biorbd::utils::String
Wrapper around the std::string class with augmented functionality.
Definition: String.h:17
biorbd::muscles::Characteristics
Class Holds that muscle characteristics.
Definition: Characteristics.h:17
biorbd::muscles::Muscle
Base class of all muscle.
Definition: Muscle.h:23