1 #ifndef BIORBD_UTILS_QUATERNION_H
2 #define BIORBD_UTILS_QUATERNION_H
5 #include "Utils/Vector3d.h"
6 #include "Utils/Scalar.h"
8 #include "biorbdConfig.h"
24 class BIORBD_API Quaternion
26 class BIORBD_API
Quaternion :
public RigidBodyDynamics::Math::Vector4d
35 double kStabilizer = 1);
50 const RigidBodyDynamics::Math::Vector4d &vec4,
51 double kStabilizer = 1);
62 const biorbd::utils::Scalar& w,
63 const biorbd::utils::Scalar& x,
64 const biorbd::utils::Scalar& y,
65 const biorbd::utils::Scalar& z,
66 double kStabilizer = 1);
75 const biorbd::utils::Scalar& w,
77 double kStabilizer = 1);
83 biorbd::utils::Scalar w()
const;
89 biorbd::utils::Scalar x()
const;
95 biorbd::utils::Scalar y()
const;
101 biorbd::utils::Scalar z()
const;
107 void setKStab(
double newKStab);
116 double kStab()
const;
120 #ifdef BIORBD_USE_EIGEN3_MATH
126 template<
typename OtherDerived>
128 const Eigen::MatrixBase <OtherDerived>& other){
129 this->Eigen::Vector4d::operator=(other);
151 const biorbd::utils::Scalar& scalar)
const;
160 #ifdef BIORBD_USE_CASADI_MATH
166 double scalar)
const;
192 const biorbd::utils::Scalar& angle,
193 const biorbd::utils::Scalar& x,
194 const biorbd::utils::Scalar& y,
195 const biorbd::utils::Scalar& z,
205 const biorbd::utils::Scalar& angle,
265 bool skipAsserts =
false)
const;
267 #ifndef BIORBD_USE_CASADI_MATH
349 #endif // BIORBD_UTILS_QUATERNION_H