Biorbd
RotoTransNodes.h
1 #ifndef BIORBD_UTILS_ROTOTRANSNODES_H
2 #define BIORBD_UTILS_ROTOTRANSNODES_H
3 
4 #include <vector>
5 #include <memory>
6 #include "biorbdConfig.h"
7 
8 namespace biorbd {
9 
10 namespace utils {
11 class String;
12 class Matrix;
13 class RotoTransNode;
14 }
15 
16 namespace rigidbody {
17 class GeneralizedCoordinates;
18 
22 class BIORBD_API RotoTransNodes
23 {
24 public:
29 
36 
40  virtual ~RotoTransNodes();
41 
46  biorbd::rigidbody::RotoTransNodes DeepCopy() const;
47 
52  void DeepCopy(
54 
58  void addRT();
59 
64  void addRT(
65  const biorbd::utils::RotoTransNode &RotoTrans);
66 
71  unsigned int nbRTs() const;
72 
77  std::vector<biorbd::utils::String> RTsNames();
78 
83  const std::vector<biorbd::utils::RotoTransNode>& RTs() const;
84 
90  std::vector<biorbd::utils::RotoTransNode> RTs(
91  const biorbd::utils::String& segmentName);
92 
99  unsigned int idx);
100 
107  std::vector<biorbd::utils::RotoTransNode> RTs(
109  bool updateKin = true);
110 
120  unsigned int idx,
121  bool updateKin = true);
122 
130  std::vector<biorbd::utils::RotoTransNode> segmentRTs(
132  unsigned int idx,
133  bool updateKin = true);
134 
141  std::vector<biorbd::utils::Matrix> RTsJacobian(
143  bool updateKin = true);
144 
145 protected:
146  std::shared_ptr<std::vector<biorbd::utils::RotoTransNode>> m_RTs;
147 
148 };
149 
150 }}
151 
152 #endif // BIORBD_UTILS_ROTOTRANSNODES_H
biorbd::rigidbody::RotoTransNodes::m_RTs
std::shared_ptr< std::vector< biorbd::utils::RotoTransNode > > m_RTs
All the RTs.
Definition: RotoTransNodes.h:146
biorbd::rigidbody::GeneralizedCoordinates
Class GeneralizedCoordinates.
Definition: GeneralizedCoordinates.h:15
biorbd::utils::RotoTransNode
A RotoTrans which is attached to a segment.
Definition: RotoTransNode.h:16
biorbd::rigidbody::RotoTransNodes
Hold a set of RotoTransNodes.
Definition: RotoTransNodes.h:23
biorbd::utils::String
Wrapper around the std::string class with augmented functionality.
Definition: String.h:17