The SGADE Documentation

the SGADE 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.


Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

SoTransform.h

Go to the documentation of this file.
00001 // ----------------------------------------------------------------------------
00011 // ----------------------------------------------------------------------------
00012 
00013 #ifndef SO_TRANSFORM_H
00014 #define SO_TRANSFORM_H
00015 
00016 #ifdef __cplusplus
00017     extern "C" {
00018 #endif
00019 
00020 
00021 // ---------------------------------------------------------------------------- //! @{
00039 // ----------------------------------------------------------------------------
00040 
00041 // ----------------------------------------------------------------------------
00042 // Includes
00043 // ----------------------------------------------------------------------------
00044 
00045 #include "SoVector.h"
00046 #include "SoMatrix.h"
00047 
00048 // ----------------------------------------------------------------------------
00049 // Type definition;
00050 // ----------------------------------------------------------------------------
00051 
00060 typedef struct
00061 {
00063     SoVector3   m_Translate;
00064     
00065     s32         m_AngleX;   
00066     s32         m_AngleY;   
00067     s32         m_AngleZ;   
00068     
00070     SoVector3   m_Scale;
00071     
00072 } SoTransform;
00073 
00074 // --------------------------------------------------------------------------
00075 // Public methods;
00076 // --------------------------------------------------------------------------
00077 
00078 void SoTransformMakeIdentity(    SoTransform* a_This );
00079 
00080 void SoTransformSetRotateX(      SoTransform* a_This, s32 a_Angle );
00081 void SoTransformSetRotateY(      SoTransform* a_This, s32 a_Angle );
00082 void SoTransformSetRotateZ(      SoTransform* a_This, s32 a_Angle );
00083 
00084 void SoTransformSetTranslation(  SoTransform* a_This, sofixedpoint a_X, sofixedpoint a_Y, sofixedpoint a_Z );
00085 
00086 void SoTransformRotateX(         SoTransform* a_This, s32 a_Angle );
00087 void SoTransformRotateY(         SoTransform* a_This, s32 a_Angle );
00088 void SoTransformRotateZ(         SoTransform* a_This, s32 a_Angle );
00089 
00090 void SoTransformTranslate(       SoTransform* a_This, sofixedpoint a_X, sofixedpoint a_Y, sofixedpoint a_Z );
00091 
00092 void SoTransformToMatrix(        SoTransform* a_This, SoMatrix* a_Matrix );
00093 void SoTransformToInverseMatrix( SoTransform* a_This, SoMatrix* a_Matrix );
00094 
00095 void SoTransformSetScale(        SoTransform* a_This, sofixedpoint a_ScaleX, sofixedpoint a_ScaleY, sofixedpoint a_ScaleZ );
00096 
00097 // --------------------------------------------------------------------------
00098 // EOF
00099 // --------------------------------------------------------------------------
00100 
00102 
00103 #ifdef __cplusplus
00104 } // extern "C"
00105 #endif
00106 
00107 #endif

Copyright 2002 by the SGADE authors. See SoLicense.h or Visit the SGADE page for more information.