Ho un po 'di isometria [R | m] matrici di trasformazione, cioè trasformazioni rigide 3D. Attualmente li memorizzo come Eigen Affine transformations, rappresentati nella forma compatta per es. Eigen::AffineCompact3d
che non memorizza l'ultima riga ridondante di [0 0 0 1].Come rappresentare la matrice di trasformazione Compact isometry in Eigen?
Sono anche consapevole del fatto che esiste un Eigen::Isometry3d
che immagino sia typedef di Transform<double, 3, AffineCompact, Isometry>
.
I am after Isometry since, la trasformazione inversa è molto più economica (trasposizione) di un inverso generale affine. So anche che posso passare un suggerimento, quando uso inverso() come affine_mat.inverse(Eigen::Isometry);
Ma vorrei ottenere il comportamento inverso isometrico senza passare ogni volta manualmente un suggerimento. In altre parole, voglio sapere qual è il modo migliore per replicare il comportamento di Eigen::IsometryCompact3d
che è sorprendentemente assente nell'API di Eigen?
Sì, è buono avere una rappresentazione del gruppo di Lie in generale. Ma nel mio caso sto facendo una trasformazione di molti vettori, e la rappresentazione della matrice funziona meglio per me. Penso che gli scrittori Eigen abbiano in qualche modo perso questa cosa. – iNFINITEi