### 2D Graphic Transformations Overview

IGrafMatrix implements the full set of 2D linear transformations including pseudo perspective. Most users of graphic transforms use IGrafMatrix as ready made classes. In addition to implementing transformations, IGrafMatrix implements a number of matrix utilities including concatenation, inversion, computing the determinant and transposing the matrix. IGrafMatrix provides the following:

- Matrix Transformations: identity, translation, scaling, rotation, affine, and perspective.
- Matrix Elements: concatenation, mathematical operations, perspective mapping.

You can also transform graphics using the IMGraphic transformation functions described in "2D Graphics Framework."

The 2D Graphics framework uses transformations to transform points, rational points, and vectors. A vector has magnitude and direction but not location. Vectors can only be scaled, rotated, or sheared from the origin. Points and rational points have location, and they can be translated. They have an extra homogeneous coordinate "w". The extra coordinate allows affine transformations such as translation, and rotation around an arbitrary point. Points have an implied w == 1.0.

IGrafMatrix provides the following features:

- Batch transformations.
- Queries, to see if the pipeline can take advantage of fast rendering algorithms.
- Accelerators to speed up typical rendering transformation.
- Caching.

IGrafMatrix is not a general math package. It does not solve sets of linear equations or eigenvalue problems, and it does not have arbitrary dimension. It is designed for the kinds of linear transformations (where the coordinate space is modified linearly) needed by graphics, geometries, and the rendering pipeline.

### Useful Information

For general discussions of points, rational points, and vectors, see "Mathematical Elements for Computer Graphics," section 2-15 "Translation and Homogeneous Coordinates."

For information on perspective mapping, see Paul Heckbert's UC Berkeley Masters Thesis: "Fundamentals of Texture Mapping and Image Warping," Appendix A.2 "Inferring Projective Mappings from 2-D Quadrilaterals."

Transformations Class Summary