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  

SoCamera.h

Go to the documentation of this file.
00001 // ----------------------------------------------------------------------------
00013 // ----------------------------------------------------------------------------
00014 
00015 #ifndef SO_CAMERA_H
00016 #define SO_CAMERA_H
00017 
00018 #ifdef __cplusplus
00019     extern "C" {
00020 #endif
00021 
00022 // ---------------------------------------------------------------------------- //! @{
00032 // ----------------------------------------------------------------------------
00033 
00034 
00035 // ----------------------------------------------------------------------------
00036 // Includes
00037 // ----------------------------------------------------------------------------
00038 #include "SoVector.h"
00039 #include "SoTransform.h"
00040 #include "SoMatrix.h"
00041 #include "SoMesh.h"
00042 #include "SoPolygon.h"
00043 #include "SoMath.h"
00044 #include "SoDisplay.h"
00045 
00046 // ----------------------------------------------------------------------------
00047 // Typedefs
00048 // ----------------------------------------------------------------------------
00049 
00050 
00051 // ----------------------------------------------------------------------------
00060 // ----------------------------------------------------------------------------
00061 typedef struct
00062 {
00063     SoTransform m_Transform;                    
00064 
00065     SoVector3   m_LeftFrustumPlaneNormal;       
00066     SoVector3   m_TopFrustumPlaneNormal;        
00067 
00068     bool        m_ClipAgainstFarAndNearPlane;   
00069     bool        m_ClipAgainstFrustumSidePlanes; 
00070 
00071     s32         m_NearPlaneDistance;            
00072     s32         m_FarPlaneDistance;             
00073     s32         m_ProjectionPlaneDistance;      
00074 
00075 } SoCamera;
00076 // ----------------------------------------------------------------------------
00077 
00078 // ----------------------------------------------------------------------------
00079 // Public methods;
00080 // ----------------------------------------------------------------------------
00081 void SoCameraInitialize( SoCamera* a_This );
00082 
00083 void SoCameraForward(    SoCamera* a_This, sofixedpoint a_Amount );
00084 void SoCameraRight(      SoCamera* a_This, sofixedpoint a_Amount );
00085 void SoCameraUp(         SoCamera* a_This, sofixedpoint a_Amount );
00086 
00087 void SoCameraSetPitch(   SoCamera* a_This, s32 a_Angle );
00088 void SoCameraSetYaw(     SoCamera* a_This, s32 a_Angle );
00089 void SoCameraSetRoll(    SoCamera* a_This, s32 a_Angle );
00090 
00091 void SoCameraSetTranslation( SoCamera* a_This, sofixedpoint a_X, sofixedpoint a_Y, sofixedpoint a_Z );
00092 
00093 void SoCameraDrawMesh(   SoCamera* a_This, SoMesh* a_Mesh );
00094 
00095 void SoCameraSetFarAndNearPlaneClippingEnable( SoCamera* a_This, bool a_Enable );
00096 void SoCameraSetFrustumSidePlanesClippingEnable( SoCamera* a_This, bool a_Enable );
00097 
00098 // ----------------------------------------------------------------------------
00099 // EOF
00100 // ----------------------------------------------------------------------------
00101 
00103 
00104 #ifdef __cplusplus
00105 } // extern "C"
00106 #endif
00107 
00108 #endif

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