2017-08-01 14:30:58 +02:00
|
|
|
#ifndef INVDYNEIGENINTERFACE_HPP_
|
|
|
|
#define INVDYNEIGENINTERFACE_HPP_
|
|
|
|
#include "../IDConfig.hpp"
|
2019-01-03 14:26:51 +01:00
|
|
|
namespace btInverseDynamics
|
|
|
|
{
|
2017-08-01 14:30:58 +02:00
|
|
|
#define BT_ID_HAVE_MAT3X
|
|
|
|
|
|
|
|
#ifdef BT_USE_DOUBLE_PRECISION
|
|
|
|
typedef Eigen::Matrix<double, Eigen::Dynamic, 1, Eigen::DontAlign> vecx;
|
|
|
|
typedef Eigen::Matrix<double, 3, 1, Eigen::DontAlign> vec3;
|
|
|
|
typedef Eigen::Matrix<double, 3, 3, Eigen::DontAlign> mat33;
|
|
|
|
typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::DontAlign> matxx;
|
|
|
|
typedef Eigen::Matrix<double, 3, Eigen::Dynamic, Eigen::DontAlign> mat3x;
|
|
|
|
#else
|
|
|
|
typedef Eigen::Matrix<float, Eigen::Dynamic, 1, Eigen::DontAlign> vecx;
|
|
|
|
typedef Eigen::Matrix<float, 3, 1, Eigen::DontAlign> vec3;
|
|
|
|
typedef Eigen::Matrix<float, 3, 3, Eigen::DontAlign> mat33;
|
|
|
|
typedef Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic, Eigen::DontAlign> matxx;
|
|
|
|
typedef Eigen::Matrix<float, 3, Eigen::Dynamic, Eigen::DontAlign> mat3x;
|
|
|
|
#endif
|
|
|
|
|
2019-01-03 14:26:51 +01:00
|
|
|
inline void resize(mat3x &m, Eigen::Index size)
|
|
|
|
{
|
|
|
|
m.resize(3, size);
|
|
|
|
m.setZero();
|
2017-08-01 14:30:58 +02:00
|
|
|
}
|
|
|
|
|
2019-01-03 14:26:51 +01:00
|
|
|
inline void setMatxxElem(const idArrayIdx row, const idArrayIdx col, const idScalar val, matxx *m)
|
|
|
|
{
|
|
|
|
(*m)(row, col) = val;
|
2017-08-01 14:30:58 +02:00
|
|
|
}
|
|
|
|
|
2019-01-03 14:26:51 +01:00
|
|
|
inline void setMat3xElem(const idArrayIdx row, const idArrayIdx col, const idScalar val, mat3x *m)
|
|
|
|
{
|
|
|
|
(*m)(row, col) = val;
|
2017-08-01 14:30:58 +02:00
|
|
|
}
|
|
|
|
|
2019-01-03 14:26:51 +01:00
|
|
|
} // namespace btInverseDynamics
|
2017-08-01 14:30:58 +02:00
|
|
|
#endif // INVDYNEIGENINTERFACE_HPP_
|