I'm trying to wrap my head around geometric transformations of 3D points (represented as 4x4 matrices) and understanding how to compose and decompose them.
In particular I've encountered, in order of increasing generality:
Rigid (aka Euclidean) Transforms - rotation and translation Similarity Transforms - rotation, translation, uniform scaling Affine Transforms - rotation, translation, scaling, shearing Homography (aka Perspective, Projective) Transforms - additionally does not necessarily maintain pairs of parallel lines.
(I'm hoping my understanding of that taxonomy is accurate so far, if not please correct me)
For a rigid transformation (when represented at a matrix [R | t]) the operation is rotated FOLLOWED by translation.
For a similarity transformation is doesn't matter when the scaling happens because it's a diagonal matrix so it commutes with all other matrices.
But when I think about an affine transform or homography is there a conventional order that the parts of the transform take place? How do I gain some intuition for this just looking at the matrix?
Perhaps a related question is how to decompose these different types or transforms into their components (rotation, scale, shear, translation) and more importantly what is the order associated with that decomposition and why? Is it unique?