The Socrates Gameboy Advance Development Engine
The SGADE is a development library for the Nintendo Gameboy
Advance. It's free for all uses and is distributed without guarantees.
For more information visit
the SGADE page.
00001 // ---------------------------------------------------------------------------- 00013 // ---------------------------------------------------------------------------- 00014 00015 #ifndef SO_MATRIX_H 00016 #define SO_MATRIX_H 00017 00018 #ifdef __cplusplus 00019 extern "C" { 00020 #endif 00021 00022 00023 // ---------------------------------------------------------------------------- //! @{ 00044 // ---------------------------------------------------------------------------- 00045 00046 00047 // ---------------------------------------------------------------------------- 00048 // Includes 00049 // ---------------------------------------------------------------------------- 00050 #include "SoSystem.h" 00051 00052 // ---------------------------------------------------------------------------- 00053 // Typedefs 00054 // ---------------------------------------------------------------------------- 00055 00064 typedef struct 00065 { 00066 // Private cels; 00067 sofixedpoint m_C[ 12 ]; 00068 00069 } SoMatrix; 00070 00071 // -------------------------------------------------------------------------- 00072 // Public methods; 00073 // -------------------------------------------------------------------------- 00074 void SoMatrixMakeIdentity(SoMatrix* a_This ); 00075 void SoMatrixMakeRotationX(SoMatrix* a_This, s32 a_Angle ); 00076 void SoMatrixMakeRotationY(SoMatrix* a_This, s32 a_Angle ); 00077 void SoMatrixMakeRotationZ(SoMatrix* a_This, s32 a_Angle ); 00078 00079 void SoMatrixSetTranslation(SoMatrix* a_This, sofixedpoint a_X, sofixedpoint a_Y, sofixedpoint a_Z ); 00080 00081 void SoMatrixScale(SoMatrix* a_This, sofixedpoint a_ScaleX, sofixedpoint a_ScaleY, sofixedpoint a_ScaleZ ); 00082 00083 void SoMatrixMultiplyBy(SoMatrix* a_This, SoMatrix* a_Matrix ); 00084 void SoMatrixMultiply(SoMatrix* a_This, SoMatrix* a_A, SoMatrix* a_B ); 00085 00086 void SoMatrixMode4DebugDraw(SoMatrix* a_This ); 00087 00088 // -------------------------------------------------------------------------- 00089 // EOF 00090 // -------------------------------------------------------------------------- 00091 00093 00094 #ifdef __cplusplus 00095 } // extern "C" 00096 #endif 00097 00098 #endif