14#error "This header only usable from C++"
20#include <Eigen/Geometry>
39static inline Eigen::Map<const Eigen::Quaternionf>
42 return Eigen::Map<const Eigen::Quaternionf>{&q.x};
52static inline Eigen::Map<Eigen::Quaternionf>
55 return Eigen::Map<Eigen::Quaternionf>{&q.x};
64static inline Eigen::Map<const Eigen::Vector2f>
67 return Eigen::Map<const Eigen::Vector2f>{&v.x};
77static inline Eigen::Map<Eigen::Vector2f>
80 return Eigen::Map<Eigen::Vector2f>{&v.x};
89static inline Eigen::Map<const Eigen::Vector3f>
92 return Eigen::Map<const Eigen::Vector3f>{&v.x};
102static inline Eigen::Map<Eigen::Vector3f>
105 return Eigen::Map<Eigen::Vector3f>{&v.x};
115static inline Eigen::Map<const Eigen::Vector3d>
118 return Eigen::Map<const Eigen::Vector3d>{&v.x};
128static inline Eigen::Map<Eigen::Vector3d>
131 return Eigen::Map<Eigen::Vector3d>{&v.x};
140static inline Eigen::Map<const Eigen::Matrix3f>
143 return Eigen::Map<const Eigen::Matrix3f>(m.v);
153static inline Eigen::Map<Eigen::Matrix3f>
156 return Eigen::Map<Eigen::Matrix3f>(m.v);
166static inline Eigen::Map<Eigen::Matrix3d>
169 return Eigen::Map<Eigen::Matrix3d>(m.v);
179static inline Eigen::Map<const Eigen::Matrix4f>
182 return Eigen::Map<const Eigen::Matrix4f>(m.v);
192static inline Eigen::Map<Eigen::Matrix4f>
195 return Eigen::Map<Eigen::Matrix4f>(m.v);
204static inline Eigen::Map<const Eigen::Matrix4d>
207 return Eigen::Map<const Eigen::Matrix4d>(m.v);
215static inline Eigen::Map<Eigen::Matrix4d>
218 return Eigen::Map<Eigen::Matrix4d>(m.v);
231static inline Eigen::Map<const Eigen::Quaternionf>
240static inline Eigen::Map<Eigen::Quaternionf>
249static inline Eigen::Map<const Eigen::Vector3f>
258static 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::Vector2f > map_vec2(const struct xrt_vec2 &v)
Wrap an internal 2D vector struct in an Eigen type, const overload.
Definition m_eigen_interop.hpp:65
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:116
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:167
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:250
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:180
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:40
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:141
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:232
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:205
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:90
A tightly packed 3x3 matrix of doubles.
Definition xrt_defines.h:590
A tightly packed 3x3 matrix of floats.
Definition xrt_defines.h:580
A tightly packed 4x4 matrix of double.
Definition xrt_defines.h:617
A tightly packed 4x4 matrix of floats.
Definition xrt_defines.h:607
A pose composed of a position and orientation.
Definition xrt_defines.h:513
A quaternion with single floats.
Definition xrt_defines.h:246
A 2 element vector with single floats.
Definition xrt_defines.h:279
A 3 element vector with single doubles.
Definition xrt_defines.h:322
A 3 element vector with single floats.
Definition xrt_defines.h:310