25 #ifndef INCLUDED_QuatToEuler_h_GUID_146FCB5A_7820_4B98_5BED_3223776E8CDF
26 #define INCLUDED_QuatToEuler_h_GUID_146FCB5A_7820_4B98_5BED_3223776E8CDF
33 #include <Eigen/Geometry>
41 struct QuatAsEulerTag;
43 inline Eigen::Vector3d
getEuler(Eigen::Quaterniond
const &q) {
53 q_to_euler(ret.data(), quat);
60 inline void operator<<(CellGroupProxy<T, QuatAsEulerTag> &group,
61 Eigen::Vector3d
const &euler) {
63 group <<
cell(
"rot.zprime", euler[0]) <<
cell(
"rot.xprime", euler[1])
64 <<
cell(
"rot.z", euler[2]);
66 group <<
cell(
"yaw", euler[0]) <<
cell(
"pitch", euler[1])
67 <<
cell(
"roll", euler[2]);
72 inline void operator<<(CellGroupProxy<T, QuatAsEulerTag> &group,
73 Eigen::Quaterniond
const &q) {
79 #endif // INCLUDED_QuatToEuler_h_GUID_146FCB5A_7820_4B98_5BED_3223776E8CDF
Eigen::Vector3d getEuler(Eigen::Quaterniond const &q)
detail::Cell< T > cell(const char *header, T const &data)
Helper free function to make a CSV cell.