Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef XFORM2D_H
00019 #define XFORM2D_H
00020
00024 #include "fpoint.h"
00025
00026 typedef struct
00027 {
00028 FLOAT32 a, b, c, d, tx, ty;
00029 }
00030
00031
00032 MATRIX_2D, *MATRIX_2D_PTR;
00033
00038 void InitMatrix(MATRIX_2D *M);
00039 void CopyMatrix(MATRIX_2D *A, MATRIX_2D *B);
00040
00041
00042 void TranslateMatrix(MATRIX_2D *M, FLOAT32 X, FLOAT32 Y);
00043 void ScaleMatrix(MATRIX_2D *M, FLOAT32 X, FLOAT32 Y);
00044
00045 void MirrorMatrixInX(MATRIX_2D *M);
00046 void MirrorMatrixInY(MATRIX_2D *M);
00047 void MirrorMatrixInXY(MATRIX_2D *M);
00048
00049
00050 FLOAT32 MapX(MATRIX_2D *M, FLOAT32 X, FLOAT32 Y);
00051
00052 FLOAT32 MapY(MATRIX_2D *M, FLOAT32 X, FLOAT32 Y);
00053
00054 void MapPoint(MATRIX_2D *M, const FPOINT &A, FPOINT* B);
00055
00056 FLOAT32 MapDx(MATRIX_2D *M, FLOAT32 DX, FLOAT32 DY);
00057 FLOAT32 MapDy(MATRIX_2D M, FLOAT32 DX, FLOAT32 DY);
00058
00059 void RotateMatrix(MATRIX_2D_PTR Matrix, FLOAT32 Angle);
00060 #endif