# transformation – What are the pros and cons to using Transform{position, scale, rotation} over Matrix (3×4)?

I’m not sure I understand your question, but I would say that they are both the same thing.

We use 4×4 matrices to represent transformations, and due to the associative property of matrix multiplication, you can represent multiple affine transformations in a single matrix, and then apply that transformation to as many points as you want.

3×4 matrices are a special case of matrices that only allow you to represent rotations, scaling, and one translation at the end. Whether using 4×4 matrices or 3×4 matrices gives you a performance advantage is disputed, and can only be confirmed by thoroughly benchmarking your specific use case.

I’m not sure exactly which functionality this `Transform` you’re using offers you, but in many cases it’s just a class that decomposes a 4×4 (or 3×4) matrix, allows you to modify its components (translation, rotation, scaling) separately, before converting it back to a matrix. Decomposing and re-composing a matrix requires some computations, so it could be a good idea to try not to overuse it, but sometimes the benefits of added readability can be greater than the disadvantages of a small performance penalty, so I would suggest you use whatever makes the most sense to you, especially if this is a prototype, a learning project, or a personal project.

If you want to modify one of the components of the transformation, decomposing it might be the easiest way to do so. Multiplying by another matrix on the left or the right can also be used in some cases, but it may have a different meaning from what you’re expecting. I would say that multiplying by a different matrix is a slightly faster operation, compared to decomposing, modifying and re-composing, especially when the different matrix is the same for many different operations.

Keep in mind that not all matrices can be decomposed into translation, rotation and scaling. There are many more types of affine transforms, and in particular, projection matrices, that are not made out of translations, rotations and scaling, so they obviously can’t be decomposed into these components.