# Transforms ## Convention ### Major We always assume **column-major** matrix. This is equivalent to the following: 1. We use a **column vector** to represent a single 3D point during transformation. 1. We perform **right/post multiplication** with a column vector to transform the point, i.e. `p = M @ p`. [Reference](https://www.scratchapixel.com/lessons/mathematics-physics-for-computer-graphics/geometry/row-major-vs-column-major-vector) ### Pose vs Extrinsic - Camera **pose** is the camera-to-world transformation while **extrinsic** is the world-to-camera transformation. ### 3D Coordinate ``` z y / | / | o ---------- x (u) | | o ---------- x | / | / y (v) z OpenCV OpenGL ``` ### 2D Coordinate ``` OpenCV Matrix o ---------- u o ----------- y (j) | | | | | | v x (i) ```