1 #ifndef BIORBD_UTILS_ROTATION_H
2 #define BIORBD_UTILS_ROTATION_H
7 #include "Utils/Scalar.h"
9 namespace RigidBodyDynamics {
namespace Math {
10 struct SpatialTransform;
13 #include "biorbdConfig.h"
30 class BIORBD_API Rotation
32 class BIORBD_API
Rotation :
public RigidBodyDynamics::Math::Matrix3d
41 const RigidBodyDynamics::Math::Matrix3d& matrix = RigidBodyDynamics::Math::Matrix3d::Identity());
43 #ifdef BIORBD_USE_EIGEN3_MATH
44 template<
typename OtherDerived>
Rotation(
49 const Eigen::MatrixBase<OtherDerived>& other) :
50 RigidBodyDynamics::Math::Matrix3d(other){
54 #ifdef BIORBD_USE_CASADI_MATH
60 const RigidBodyDynamics::Math::MatrixNd& m);
75 Rotation(
const biorbd::utils::Scalar& v00,
const biorbd::utils::Scalar& v01,
const biorbd::utils::Scalar& v02,
76 const biorbd::utils::Scalar& v10,
const biorbd::utils::Scalar& v11,
const biorbd::utils::Scalar& v12,
77 const biorbd::utils::Scalar& v20,
const biorbd::utils::Scalar& v21,
const biorbd::utils::Scalar& v22);
96 const RigidBodyDynamics::Math::SpatialTransform& st);
104 unsigned int idx)
const;
112 const RigidBodyDynamics::Math::SpatialTransform& st);
135 const std::pair<biorbd::rigidbody::NodeSegment, biorbd::rigidbody::NodeSegment>& axis1markers,
136 const std::pair<biorbd::rigidbody::NodeSegment, biorbd::rigidbody::NodeSegment>& axis2markers,
137 const std::pair<biorbd::utils::String, biorbd::utils::String> &axesNames,
149 const std::pair<biorbd::rigidbody::NodeSegment, biorbd::rigidbody::NodeSegment>& axis1markers,
150 const std::pair<biorbd::rigidbody::NodeSegment, biorbd::rigidbody::NodeSegment>& axis2markers,
151 const std::pair<biorbd::utils::String, biorbd::utils::String> &axesNames,
166 #ifndef BIORBD_USE_CASADI_MATH
173 const std::vector<biorbd::utils::Rotation>& mToMean);
177 #ifdef BIORBD_USE_EIGEN3_MATH
178 template<
typename OtherDerived>
184 const Eigen::MatrixBase <OtherDerived>& other){
185 Eigen::Matrix3d::operator=(other);
211 #endif // BIORBD_UTILS_ROTO_TRANS_H