Alpha Engine: AEMtx33.h Source File

AlphaEngine

AEMtx33.h
Go to the documentation of this file.
1 /******************************************************************************/
15 /******************************************************************************/
16 
17 #ifndef AE_MTX33_H
18 #define AE_MTX33_H
19 
20 // ---------------------------------------------------------------------------
21 // Defines
22 
23 #define AEMtx33RowCol(pMtx, row, col) (pMtx)->m[(row)][(col)]
24 
25 // ---------------------------------------------------------------------------
26 // Struct/Class definitions
27 
36 typedef struct AEMtx33
37 {
38  f32 m[3][3];
39 }AEMtx33;
40 
41 // ---------------------------------------------------------------------------
42 
43 #ifdef __cplusplus
44 extern "C"
45 {
46 #endif
47 
48 // ---------------------------------------------------------------------------
49 
50 /******************************************************************************/
62 /******************************************************************************/
63 AE_API void AEMtx33Identity (AEMtx33* pResult);
64 
65 /******************************************************************************/
81 /******************************************************************************/
82 AE_API void AEMtx33Transpose (AEMtx33* pResult, AEMtx33* pMtx);
83 
84 /******************************************************************************/
100 /******************************************************************************/
101 AE_API f32 AEMtx33Inverse (AEMtx33* pResult, AEMtx33* pMtx);
102 
103 /******************************************************************************/
119 /******************************************************************************/
120 AE_API void AEMtx33InvTranspose (AEMtx33* pResult, AEMtx33* pMtx);
121 
122 /******************************************************************************/
142 /******************************************************************************/
143 AE_API void AEMtx33Concat (AEMtx33* pResult, AEMtx33* pMtx0, AEMtx33* pMtx1);
144 
145 /******************************************************************************/
163 /******************************************************************************/
164 AE_API void AEMtx33Orthogonalize (AEMtx33* pResult, AEMtx33* pMtx);
165 
166 /******************************************************************************/
178 /******************************************************************************/
180 
181 // ---------------------------------------------------------------------------
182 
183 /******************************************************************************/
205 /******************************************************************************/
206 AE_API void AEMtx33SetCol (AEMtx33* pResult, u32 col, AEVec2* pVec);
207 
208 /******************************************************************************/
230 /******************************************************************************/
231 AE_API void AEMtx33SetRow (AEMtx33* pResult, u32 row, AEVec2* pVec);
232 
233 /******************************************************************************/
254 /******************************************************************************/
255 AE_API void AEMtx33GetCol (AEVec2* pResult, AEMtx33* pMtx, u32 col);
256 
257 /******************************************************************************/
278 /******************************************************************************/
279 AE_API void AEMtx33GetRow (AEVec2* pResult, AEMtx33* pMtx, u32 row);
280 
281 // ---------------------------------------------------------------------------
282 
283 /******************************************************************************/
303 /******************************************************************************/
304 AE_API void AEMtx33Trans (AEMtx33* pResult, f32 x, f32 y);
305 
306 /******************************************************************************/
331 /******************************************************************************/
332 AE_API void AEMtx33TransApply (AEMtx33* pResult, AEMtx33* pMtx, f32 x, f32 y);
333 
334 /******************************************************************************/
354 /******************************************************************************/
355 AE_API void AEMtx33Scale (AEMtx33* pResult, f32 x, f32 y);
356 
357 /******************************************************************************/
382 /******************************************************************************/
383 AE_API void AEMtx33ScaleApply (AEMtx33* pResult, AEMtx33* pMtx, f32 x, f32 y);
384 
385 /******************************************************************************/
402 /******************************************************************************/
403 AE_API void AEMtx33Rot (AEMtx33* pResult, f32 angle);
404 
405 /******************************************************************************/
422 /******************************************************************************/
423 AE_API void AEMtx33RotDeg (AEMtx33* pResult, f32 angle);
424 
425 // ---------------------------------------------------------------------------
426 
427 /******************************************************************************/
447 /******************************************************************************/
448 AE_API void AEMtx33MultVec (AEVec2* pResult, AEMtx33* pMtx, AEVec2* pVec);
449 
450 /******************************************************************************/
477 /******************************************************************************/
478 AE_API void AEMtx33MultVecArray (AEVec2* pResult, AEMtx33* pMtx, AEVec2* pVec, u32 count);
479 
480 
481 AE_API void AEMtx33MultVecSR (AEVec2* pResult, AEMtx33* pMtx, AEVec2* pVec);
482 AE_API void AEMtx33MultVecArraySR (AEVec2* pResult, AEMtx33* pMtx, AEVec2* pVec, u32 count);
483 
484 // ---------------------------------------------------------------------------
485 
486 
487 
488 
489 #ifdef __cplusplus
490 }
491 #endif
492 
493 #endif // MTX_H
void AEMtx33MultVecArray(AEVec2 *pResult, AEMtx33 *pMtx, AEVec2 *pVec, u32 count)
Set an array of vectors (pResult) to the multiplication of pMtx with an array of vectors (pVec) of si...
float f32
Definition: AETypes.h:31
void AEMtx33ScaleApply(AEMtx33 *pResult, AEMtx33 *pMtx, f32 x, f32 y)
Set pResult to the multiplication of scaling matrix of x and y with pMtx.
unsigned int u32
Definition: AETypes.h:28
void AEMtx33MultVec(AEVec2 *pResult, AEMtx33 *pMtx, AEVec2 *pVec)
Set pResult to the multiplication of pMtx with pVec.
f32 AEMtx33Inverse(AEMtx33 *pResult, AEMtx33 *pMtx)
Set pResult to the inverse of pMtx.
void AEMtx33Trans(AEMtx33 *pResult, f32 x, f32 y)
Set pResult to the translation matrix of x and y.
void AEMtx33GetRow(AEVec2 *pResult, AEMtx33 *pMtx, u32 row)
Definition: AEVec2.h:26
void AEMtx33SetCol(AEMtx33 *pResult, u32 col, AEVec2 *pVec)
Set the first and second element of the selected column of pResult to the x and y values of pVec resp...
f32 AEMtx33Determinant(AEMtx33 *pMtx)
Calculate the determinant of pMtx.
void AEMtx33Scale(AEMtx33 *pResult, f32 x, f32 y)
Set pResult to the scaling matrix of x and y.
void AEMtx33Concat(AEMtx33 *pResult, AEMtx33 *pMtx0, AEMtx33 *pMtx1)
Set pResult to the multiplication of pMtx0 with pMtx1.
void AEMtx33InvTranspose(AEMtx33 *pResult, AEMtx33 *pMtx)
Set pResult to the transpose of the inverse of pMtx.
void AEMtx33GetCol(AEVec2 *pResult, AEMtx33 *pMtx, u32 col)
Set the x and y values of pResult with the first and second element of the selected column of pMtx re...
#define AE_API
Definition: AEExport.h:53
void AEMtx33Orthogonalize(AEMtx33 *pResult, AEMtx33 *pMtx)
Set pResult to the orthogonalization of pMtx.
void AEMtx33MultVecArraySR(AEVec2 *pResult, AEMtx33 *pMtx, AEVec2 *pVec, u32 count)
void AEMtx33Transpose(AEMtx33 *pResult, AEMtx33 *pMtx)
Set pResult to the transpose of pMtx.
void AEMtx33TransApply(AEMtx33 *pResult, AEMtx33 *pMtx, f32 x, f32 y)
Set pResult to the multiplication of translation matrix of x and y with pMtx.
void AEMtx33MultVecSR(AEVec2 *pResult, AEMtx33 *pMtx, AEVec2 *pVec)
void AEMtx33Identity(AEMtx33 *pResult)
Set pResult to identity matrix.
void AEMtx33Rot(AEMtx33 *pResult, f32 angle)
Set pResult to the rotation matrix of angle in radians rotating counter-clockwise.
void AEMtx33RotDeg(AEMtx33 *pResult, f32 angle)
Set pResult to the rotation matrix of angle in degrees rotating counter-clockwise.
void AEMtx33SetRow(AEMtx33 *pResult, u32 row, AEVec2 *pVec)
Set the first and second element of the selected row of pResult to the x and y values of pVec respect...
f32 m[3][3]
Definition: AEMtx33.h:38
struct AEMtx33 AEMtx33
Generated on Sat Jan 4 2014 02:06:22 for Alpha Engine by   doxygen 1.8.5