1 #define BIORBD_API_EXPORTS
2 #include "RigidBody/NodeSegment.h"
4 #include "Utils/Error.h"
7 biorbd::utils::Vector3d(0, 0, 0),
8 m_axesRemoved(std::make_shared<std::vector<bool>>(3)),
9 m_nbAxesToRemove(std::make_shared<int>(0)),
10 m_technical(std::make_shared<bool>(true)),
11 m_anatomical(std::make_shared<bool>(false)),
12 m_id(std::make_shared<int>(-1))
18 const biorbd::utils::Scalar& x,
19 const biorbd::utils::Scalar& y,
20 const biorbd::utils::Scalar& z) :
21 biorbd::utils::Vector3d(x, y, z),
22 m_axesRemoved(std::make_shared<std::vector<bool>>(3)),
23 m_nbAxesToRemove(std::make_shared<int>(0)),
24 m_technical(std::make_shared<bool>(true)),
25 m_anatomical(std::make_shared<bool>(false)),
26 m_id(std::make_shared<int>(-1))
32 biorbd::utils::Vector3d(other),
33 m_axesRemoved(std::make_shared<std::vector<bool>>(3)),
34 m_nbAxesToRemove(std::make_shared<int>(0)),
35 m_technical(std::make_shared<bool>(true)),
36 m_anatomical(std::make_shared<bool>(false)),
37 m_id(std::make_shared<int>(-1))
43 const biorbd::utils::Scalar& x,
44 const biorbd::utils::Scalar& y,
45 const biorbd::utils::Scalar& z,
52 biorbd::utils::Vector3d(x, y, z, name, parentName),
53 m_axesRemoved(std::make_shared<std::vector<bool>>(3)),
54 m_nbAxesToRemove(std::make_shared<int>(0)),
55 m_technical(std::make_shared<bool>(isTechnical)),
56 m_anatomical(std::make_shared<bool>(isAnatomical)),
57 m_id(std::make_shared<int>(parentID))
70 biorbd::utils::Vector3d(node, name, parentName),
71 m_axesRemoved(std::make_shared<std::vector<bool>>(3)),
72 m_nbAxesToRemove(std::make_shared<int>(0)),
73 m_technical(std::make_shared<bool>(isTechnical)),
74 m_anatomical(std::make_shared<bool>(isAnatomical)),
75 m_id(std::make_shared<int>(parentID))
101 return *m_anatomical;
120 for (
unsigned int i=0; i<m_axesRemoved->size(); ++i)
121 if (isAxisRemoved(i))
128 return (*m_axesRemoved)[i];
133 return !isAxisRemoved(i);
138 return *m_nbAxesToRemove;
143 *m_typeOfNode = biorbd::utils::NODE_TYPE::BONE_POINT;
150 (*m_axesRemoved)[axisNumber] =
true;
156 for (
unsigned int i=0; i<s.length(); ++i)
157 if (!s(i).compare(
"x"))
159 else if (!s(i).compare(
"y"))
161 else if (!s(i).compare(
"z"))
169 for (
unsigned int i=0; i<axes.size(); ++i)
170 addAxesToRemove(axes[i]);
175 for (
unsigned int i=0; i<axes.size(); ++i)
176 addAxesToRemove(axes[i]);
182 if (isAxisRemoved(0))
184 if (isAxisRemoved(1))
186 if (isAxisRemoved(2))