14#error "This header only usable from C++"
20#include <Eigen/Geometry>
30static inline Eigen::Map<const Eigen::Quaternionf>
33 return Eigen::Map<const Eigen::Quaternionf>{&q.x};
43static inline Eigen::Map<Eigen::Quaternionf>
46 return Eigen::Map<Eigen::Quaternionf>{&q.x};
56static inline Eigen::Map<const Eigen::Vector3f>
59 return Eigen::Map<const Eigen::Vector3f>{&v.x};
69static inline Eigen::Map<Eigen::Vector3f>
72 return Eigen::Map<Eigen::Vector3f>{&v.x};
82static inline Eigen::Map<const Eigen::Vector3d>
85 return Eigen::Map<const Eigen::Vector3d>{&v.x};
95static inline Eigen::Map<Eigen::Vector3d>
98 return Eigen::Map<Eigen::Vector3d>{&v.x};
107static inline Eigen::Map<const Eigen::Matrix3f>
110 return Eigen::Map<const Eigen::Matrix3f>(m.v);
120static inline Eigen::Map<Eigen::Matrix3f>
123 return Eigen::Map<Eigen::Matrix3f>(m.v);
133static inline Eigen::Map<Eigen::Matrix3d>
136 return Eigen::Map<Eigen::Matrix3d>(m.v);
146static inline Eigen::Map<const Eigen::Matrix4f>
149 return Eigen::Map<const Eigen::Matrix4f>(m.v);
159static inline Eigen::Map<Eigen::Matrix4f>
162 return Eigen::Map<Eigen::Matrix4f>(m.v);
171static inline Eigen::Map<const Eigen::Matrix4d>
174 return Eigen::Map<const Eigen::Matrix4d>(m.v);
182static inline Eigen::Map<Eigen::Matrix4d>
185 return Eigen::Map<Eigen::Matrix4d>(m.v);
198static inline Eigen::Map<const Eigen::Quaternionf>
207static inline Eigen::Map<Eigen::Quaternionf>
216static inline Eigen::Map<const Eigen::Vector3f>
225static inline Eigen::Map<Eigen::Vector3f>
C interface to math library.
C++-only functionality in the Math helper library.
Definition: m_documentation.hpp:15
static Eigen::Map< const Eigen::Vector3d > map_vec3_f64(const struct xrt_vec3_f64 &v)
Wrap an internal 3D vector struct in an Eigen type, non-const overload.
Definition: m_eigen_interop.hpp:83
static Eigen::Map< Eigen::Matrix3d > map_matrix_3x3_f64(struct xrt_matrix_3x3_f64 &m)
Wrap an internal 3x3 matrix struct in an Eigen type, non-const overload.
Definition: m_eigen_interop.hpp:134
static Eigen::Map< const Eigen::Vector3f > position(const struct xrt_pose &pose)
Return a Eigen type wrapping a pose's position (const).
Definition: m_eigen_interop.hpp:217
static Eigen::Map< const Eigen::Matrix4f > map_matrix_4x4(const struct xrt_matrix_4x4 &m)
Wrap an internal 4x4 matrix struct in an Eigen type, const overload.
Definition: m_eigen_interop.hpp:147
static Eigen::Map< const Eigen::Quaternionf > map_quat(const struct xrt_quat &q)
Wrap an internal quaternion struct in an Eigen type, const overload.
Definition: m_eigen_interop.hpp:31
static Eigen::Map< const Eigen::Matrix3f > map_matrix_3x3(const struct xrt_matrix_3x3 &m)
Wrap an internal 3x3 matrix struct in an Eigen type, const overload.
Definition: m_eigen_interop.hpp:108
static Eigen::Map< const Eigen::Quaternionf > orientation(const struct xrt_pose &pose)
Return a Eigen type wrapping a pose's orientation (const).
Definition: m_eigen_interop.hpp:199
static Eigen::Map< const Eigen::Matrix4d > map_matrix_4x4_f64(const struct xrt_matrix_4x4_f64 &m)
Wrap an internal 4x4 matrix f64 struct in an Eigen type, const overload.
Definition: m_eigen_interop.hpp:172
static Eigen::Map< const Eigen::Vector3f > map_vec3(const struct xrt_vec3 &v)
Wrap an internal 3D vector struct in an Eigen type, const overload.
Definition: m_eigen_interop.hpp:57
A tightly packed 3x3 matrix of doubles.
Definition: xrt_defines.h:543
A tightly packed 3x3 matrix of floats.
Definition: xrt_defines.h:533
A tightly packed 4x4 matrix of double.
Definition: xrt_defines.h:570
A tightly packed 4x4 matrix of floats.
Definition: xrt_defines.h:560
A pose composed of a position and orientation.
Definition: xrt_defines.h:465
A quaternion with single floats.
Definition: xrt_defines.h:216
A 3 element vector with single doubles.
Definition: xrt_defines.h:283
A 3 element vector with single floats.
Definition: xrt_defines.h:271