39 #ifndef COAL_DATA_TYPES_H
40 #define COAL_DATA_TYPES_H
43 #include <Eigen/Geometry>
45 #include "coal/config.hh"
47 #ifdef COAL_HAS_OCTOMAP
48 #define OCTOMAP_VERSION_AT_LEAST(x, y, z) \
49 (OCTOMAP_MAJOR_VERSION > x || \
50 (OCTOMAP_MAJOR_VERSION >= x && \
51 (OCTOMAP_MINOR_VERSION > y || \
52 (OCTOMAP_MINOR_VERSION >= y && OCTOMAP_PATCH_VERSION >= z))))
54 #define OCTOMAP_VERSION_AT_MOST(x, y, z) \
55 (OCTOMAP_MAJOR_VERSION < x || \
56 (OCTOMAP_MAJOR_VERSION <= x && \
57 (OCTOMAP_MINOR_VERSION < y || \
58 (OCTOMAP_MINOR_VERSION <= y && OCTOMAP_PATCH_VERSION <= z))))
59 #endif // COAL_HAS_OCTOMAP
62 #ifdef COAL_BACKWARD_COMPATIBILITY_WITH_HPP_FCL
65 typedef double FCL_REAL;
66 typedef Eigen::Matrix<FCL_REAL, 3, 1> Vec3f;
67 typedef Eigen::Matrix<FCL_REAL, 2, 1> Vec2f;
68 typedef Eigen::Matrix<FCL_REAL, 6, 1> Vec6f;
69 typedef Eigen::Matrix<FCL_REAL, Eigen::Dynamic, 1> VecXf;
70 typedef Eigen::Matrix<FCL_REAL, 3, 3> Matrix3f;
71 typedef Eigen::Matrix<FCL_REAL, Eigen::Dynamic, 3, Eigen::RowMajor> Matrixx3f;
72 typedef Eigen::Matrix<FCL_REAL, Eigen::Dynamic, 2, Eigen::RowMajor> Matrixx2f;
73 typedef Eigen::Matrix<FCL_REAL, Eigen::Dynamic, Eigen::Dynamic> MatrixXf;
77 typedef Eigen::Matrix<CoalScalar, 3, 1>
Vec3s;
78 typedef Eigen::Matrix<CoalScalar, 2, 1>
Vec2s;
79 typedef Eigen::Matrix<CoalScalar, 6, 1>
Vec6s;
80 typedef Eigen::Matrix<CoalScalar, Eigen::Dynamic, 1>
VecXs;
81 typedef Eigen::Matrix<CoalScalar, 3, 3>
Matrix3s;
82 typedef Eigen::Matrix<CoalScalar, Eigen::Dynamic, 3, Eigen::RowMajor>
MatrixX3s;
83 typedef Eigen::Matrix<CoalScalar, Eigen::Dynamic, 2, Eigen::RowMajor>
MatrixX2s;
84 typedef Eigen::Matrix<Eigen::DenseIndex, Eigen::Dynamic, 3, Eigen::RowMajor>
86 typedef Eigen::Matrix<CoalScalar, Eigen::Dynamic, Eigen::Dynamic>
MatrixXs;
137 return vids[0] == other.
vids[0] && vids[1] == other.
vids[1] &&
138 vids[2] == other.
vids[2];
144 return vids[0] != (std::numeric_limits<index_type>::max)() &&
145 vids[1] != (std::numeric_limits<index_type>::max)() &&
146 vids[2] != (std::numeric_limits<index_type>::max)();
151 index_type vids[3] = {(std::numeric_limits<index_type>::max)(),
152 (std::numeric_limits<index_type>::max)(),
153 (std::numeric_limits<index_type>::max)()};
183 return vids[0] == other.
vids[0] && vids[1] == other.
vids[1] &&
184 vids[2] == other.
vids[2] && vids[3] == other.
vids[3];
188 return !(*
this == other);