这是 Transform 类中 ROS(链接)中 Transform.h 的代码。
/**@brief Return the transform of the vector */
TFSIMD_FORCE_INLINE Vector3 operator*(const Vector3& x) const
{
return (*this)(x);
}
有人可以解释这段代码在做什么吗?这是我的想法(作为上下文,我有几年 C 程序员的经验,第一次用 C++ 开发。)
调用以下函数时调用该函数
object_of_type_Transform * object_of_type_Vector3
然后它将 Vector3 对象转换为 Transform 对象并返回结果(我很不清楚这怎么可能,因为这两种类型似乎不兼容)。
但是返回的结果是 Vector3... 这就是我的心理模型崩溃的地方。
此外,该函数应该是基于 Transform 类转换 Vector3 点......所以我的理解肯定在某个地方存在缺陷。
我将不胜感激任何见解。
谢谢
编辑
谢谢回复!上面的函数是:
/**@brief Return the transform of the vector */
TFSIMD_FORCE_INLINE Vector3 operator()(const Vector3& x) const
{
return Vector3(m_basis[0].dot(x) + m_origin.x(),
m_basis[1].dot(x) + m_origin.y(),
m_basis[2].dot(x) + m_origin.z());
}
/**@brief Return the transform of the vector */
TFSIMD_FORCE_INLINE Vector3 operator*(const Vector3& x) const
{
return (*this)(x);
}
我明白了,现在,发生了什么事。再次感谢。