我有一个包含N个3D点的缓冲区存储为[XYZXYZXYZ ... XYZ]
。
此缓冲区可以使用Eigen :: Map直接映射到Eigen::Matrix<float, 3, N>
。由于我将使用仿射变换(即Eigen::Matrix4f
矩阵)对点进行变换,因此我想将同一缓冲区映射到本征结构,从而使我可以将缓冲区视为Eigen::Matrix<float, 4, N>
矩阵,其中最后一行仅包含1,即每个点由齐次矢量[XYZ 1]表示。
是否有一种简便的方法而无需复制原始缓冲区或在每个点上应用转换?
您可以像这样在每列上应用homogenous():