An augmented 3x2 matrix, for doing 2D affine transforms. More...
#include <sifteo/math.h>
Public Member Functions | |
AffineMatrix () | |
Create an uninitialized matrix. | |
AffineMatrix (float _xx, float _yx, float _cx, float _xy, float _yy, float _cy) | |
Create a matrix from six scalar values. | |
void | operator*= (const AffineMatrix &m) |
Matrix multiplication. | |
void | rotate (float angle) |
Compose this matrix with a rotation by 'angle' radians. | |
void | scale (float s) |
Compose this matrix with a scale by factor 's'. | |
void | translate (float x, float y) |
Compose this matrix with a translation by (x, y) | |
void | translate (Float2 v) |
Compose this matrix with a translation by vector 'v'. | |
Static Public Member Functions | |
static AffineMatrix | identity () |
Create the identity matrix. | |
static AffineMatrix | rotation (float angle) |
Create a matrix which rotates by 'angle' radians. | |
static AffineMatrix | scaling (float s) |
Create a matrix which scales by a factor of 's'. | |
static AffineMatrix | translation (float x, float y) |
Create a matrix which translates by (x, y) | |
static AffineMatrix | translation (Float2 v) |
Create a matrix which translates by vector 'v'. | |
Public Attributes | |
float | cx |
Matrix member cx, the constant offset for X. | |
float | cy |
Matrix member cy, the constant offset for Y. | |
float | xx |
Matrix member xx, the horizontal X delta. | |
float | xy |
Matrix member xy, the horizontal Y delta. | |
float | yx |
Matrix member yx, the vertical X delta. | |
float | yy |
Matrix member yy, the vertical Y delta. | |
An augmented 3x2 matrix, for doing 2D affine transforms.
[ xx yx cx ] [ xy yy cy ] [ 0 0 1 ]
The way we use affine transforms for background scaling are very similiar to the mechanism used by the GameBoy Advance PPU. There's a great tutorial on this at:
Sifteo SDK v1.1.0 (see all versions)
Last updated Tue Dec 23 2014, by Doxygen