J'ai un tampon contenant N points 3D stocké comme [XYZXYZXYZ ... XYZ]
.Convertir un vecteur de point 3D en représentation homogène dans Eigen
Ce tampon peut être mappé directement à un Eigen::Matrix<float, 3, N>
en utilisant Eigen :: Map. Comme je vais transformer les points en utilisant des transformations affines (ie Eigen::Matrix4f
matrices) je voudrais mapper le même tampon à une structure propre qui me permet de considérer le tampon comme une matrice Eigen::Matrix<float, 4, N>
où la dernière rangée ne contient que 1s, ie chaque point est représenté par le vecteur homogène [XYZ 1].
est-il un moyen pratique de le faire sans copier le tampon d'origine ou appliquer la transformation sur chaque point?
Merci, cela ne fait le travail. Il me manquait l'opération de diffusion colwise. Pour clarifier la réponse: prenez la matrice et considérez-la comme une collection de vecteurs de colonne (colwise), puis appliquez une forme homogène à chaque colonne vecotrs. – Pierluigi