@@ -87,9 +87,16 @@ inline geometry_msgs::msg::TransformStamped eigenToTransform(const Eigen::Isomet
8787
8888namespace impl
8989{
90- template <int mode>
90+ /* * \brief Template for Eigen::Isometry3d and Eigen::Affine3d conversion
91+ * \tparam mode Mode argument for Eigen::Transform template
92+ */
93+ template <int mode>
9194struct EigenTransformImpl
9295{
96+ /* * \brief Convert a Transform message to an Eigen type.
97+ * \param msg The message to convert
98+ * \param out The converted message, as an Eigen type
99+ */
93100 static void fromMsg (
94101 const geometry_msgs::msg::Transform & msg, Eigen::Transform<double , 3 , mode> & out)
95102 {
@@ -100,6 +107,10 @@ struct EigenTransformImpl
100107 out = Eigen::Translation3d (v) * q;
101108 }
102109
110+ /* * \brief Convert an Eigen Transform to a Transform message
111+ * \param in The Eigen Transform to convert
112+ * \param msg The converted Transform, as a message
113+ */
103114 static void toMsg (
104115 const Eigen::Transform<double , 3 , mode> & in, geometry_msgs::msg::Transform & msg)
105116 {
@@ -108,27 +119,31 @@ struct EigenTransformImpl
108119 }
109120};
110121
111- template <>
122+ // / \brief Conversion implementation for geometry_msgs::msg::Transform and Eigen::Affine3d
123+ template <>
112124struct ImplDetails <Eigen::Affine3d, geometry_msgs::msg::Transform>
113- : EigenTransformImpl<Eigen::Affine>
125+ : EigenTransformImpl<Eigen::Affine>
114126{
115127};
116128
117- template <>
129+ // / \brief Conversion implementation for geometry_msgs::msg::Transform and Eigen::Isometry3d
130+ template <>
118131struct ImplDetails <Eigen::Isometry3d, geometry_msgs::msg::Transform>
119- : EigenTransformImpl<Eigen::Isometry>
132+ : EigenTransformImpl<Eigen::Isometry>
120133{
121134};
122135
123- template <>
136+ // / \brief Conversion implementation for geometry_msgs::msg::Point and Eigen::Vector3d
137+ template <>
124138struct ImplDetails <Eigen::Vector3d, geometry_msgs::msg::Point>
125- : DefaultVectorImpl<Eigen::Vector3d, geometry_msgs::msg::Point>
139+ : DefaultVectorImpl<Eigen::Vector3d, geometry_msgs::msg::Point>
126140{
127141};
128142
129- template <>
143+ // / \brief Conversion implementation for geometry_msgs::msg::Vector3d and Eigen::Vector3d
144+ template <>
130145struct ImplDetails <Eigen::Vector3d, geometry_msgs::msg::Vector3>
131- : DefaultVectorImpl<Eigen::Vector3d, geometry_msgs::msg::Vector3>
146+ : DefaultVectorImpl<Eigen::Vector3d, geometry_msgs::msg::Vector3>
132147{
133148};
134149
@@ -145,14 +160,15 @@ struct defaultMessage<Eigen::Vector3d>
145160 using type = geometry_msgs::msg::Point;
146161};
147162
148- /* * \brief Convert a Eigen Quaterniond type to a Quaternion message.
149- * This function is a specialization of the toMsg template defined in tf2/convert.h.
150- * \param in The Eigen Quaterniond to convert.
151- * \return The quaternion converted to a Quaterion message.
152- */
153- template <>
163+ // / \brief Conversion implementation for geometry_msgs::msg::Quaternion and Eigen::Quaterniond
164+ template <>
154165struct ImplDetails <Eigen::Quaterniond, geometry_msgs::msg::Quaternion>
155166{
167+
168+ /* * \brief Convert a Eigen Quaterniond type to a Quaternion message.
169+ * \param in The Eigen Quaterniond to convert.
170+ * \param msg The quaternion converted to a Quaterion message.
171+ */
156172 static void toMsg (const Eigen::Quaterniond & in, geometry_msgs::msg::Quaternion & msg)
157173 {
158174 msg.w = in.w ();
@@ -162,7 +178,6 @@ struct ImplDetails<Eigen::Quaterniond, geometry_msgs::msg::Quaternion>
162178 }
163179
164180 /* * \brief Convert a Quaternion message type to a Eigen-specific Quaterniond type.
165- * This function is a specialization of the fromMsg template defined in tf2/convert.h
166181 * \param msg The Quaternion message to convert.
167182 * \param out The quaternion converted to a Eigen Quaterniond.
168183 */
0 commit comments