Bullet 2.85 update
[Torque-3d.git] / Engine / lib / bullet / src / BulletInverseDynamics / IDConfigEigen.hpp
blobcbd7e8a9c4e2c9b1980d9c9f3ab6c64c62eba7ec
1 ///@file Configuration for Inverse Dynamics Library with Eigen
2 #ifndef INVDYNCONFIG_EIGEN_HPP_
3 #define INVDYNCONFIG_EIGEN_HPP_
4 #define btInverseDynamics btInverseDynamicsEigen
5 #ifdef BT_USE_DOUBLE_PRECISION
6 // choose double/single precision version
7 typedef double idScalar;
8 #else
9 typedef float idScalar;
10 #endif
12 // use std::vector for arrays
13 #include <vector>
14 // this is to make it work with C++2003, otherwise we could do this
15 // template <typename T>
16 // using idArray = std::vector<T>;
17 template <typename T>
18 struct idArray {
19 typedef std::vector<T> type;
21 typedef std::vector<int>::size_type idArrayIdx;
22 // default to standard malloc/free
23 #include <cstdlib>
24 #define ID_DECLARE_ALIGNED_ALLOCATOR() EIGEN_MAKE_ALIGNED_OPERATOR_NEW
25 // Note on interfaces:
26 // Eigen::Matrix has data(), to get c-array storage
27 // HOWEVER: default storage is column-major!
28 #define ID_LINEAR_MATH_USE_EIGEN
29 #include "Eigen/Eigen"
30 #include "details/IDEigenInterface.hpp"
31 #endif