Page principale   Liste des namespaces   Hiérarchie des classes   Liste par ordre alphabétique   Liste des composants   Liste des fichiers   Membres des namespaces   Composants   Déclarations  

Référence de la classe ExCCamera

#include <ExCCamera.h>

Graphe d'héritage de la classe ExCCamera

ExCObject3D ExCObject ExCCameraChase ExCCameraFirst ExCCameraFree ExCCameraTarget

Membres publics

 ExCCamera (void)
 ~ExCCamera (void)
virtual void Draw (void)
void ZoomIn (void)
void ZoomOut (void)
void ResetZoom (void)
void ZoomIn (float zoom)
void ZoomOut (float zoom)
void SetZoom (float zoom)
void SetZoomMax (float zoom)
void SetZoomMin (float zoom)
void SetZoomDefault (float zoom)
float GetZoomMax (void)
float GetZoomMin (void)
float GetZoom (void)
float GetZoomDefault (void)
void SetClipFar (float clip)
void SetClipNear (float clip)
float GetClipFar (void)
float GetClipNear (void)
void StartAction (int Action)
void StopAction (int Action)
void Process (void)

Attributs Publics

int m_CurrentAction
std::vector< int > m_VecAction
std::vector< int >::iterator m_ItVecAction

Attributs Protégés

bool m_Actif
float m_Zoom
float m_ClipFar
float m_ClipNear
float m_ZoomDefault
float m_ZoomMax
float m_ZoomMin

Documentation des contructeurs et destructeurs

ExCCamera void   
 

Définition à la ligne 27 du fichier ExCCamera.cpp.

Références ExCCamera(), Guard, ExCObject3D::m_AngleX, ExCObject3D::m_AngleY, ExCObject3D::m_AngleZ, m_ClipFar, m_ClipNear, ExCObject3D::m_speed, m_Zoom, m_ZoomDefault, m_ZoomMax, m_ZoomMin, ExCObject::SetName(), et ExCObject::SetType().

Référencé par ExCCamera(), et ~ExCCamera().

00028 {
00029 Guard(ExCCamera::ExCCamera(void))
00030         m_AngleX=0;
00031         m_AngleY=0;
00032         m_AngleZ=0;
00033         m_speed=0;
00034         m_ZoomDefault=40;
00035         m_Zoom=m_ZoomDefault;
00036         m_ZoomMin=1;
00037         m_ZoomMax=100;
00038         m_ClipFar=100000000;
00039         m_ClipNear=1;
00040         SetName("ExCCamera");
00041         SetType(typeid(this).name());
00042 UnGuard
00043 }

~ExCCamera void   
 

Définition à la ligne 45 du fichier ExCCamera.cpp.

Références ExCCamera(), et Guard.

00046 {
00047 Guard(ExCCamera::~ExCCamera(void))
00048 UnGuard
00049 }


Documentation des méthodes

void Draw void    [virtual]
 

Redéfinie à partir de ExCObject.

Redéfinie dans ExCCameraChase, et ExCCameraTarget.

Définition à la ligne 51 du fichier ExCCamera.cpp.

Références DegreesToRadians(), Draw(), ExCVec3D::GetX(), ExCVec3D::GetY(), ExCVec3D::GetZ(), Guard, ExCObject3D::m_AngleX, ExCObject3D::m_AngleY, ExCObject3D::m_AngleZ, ExCObject3D::m_Position, ExCObject3D::m_speed, ExCObject3D::m_Target, ExCObject3D::m_Up, Process(), ExCVec3D::SetX(), ExCVec3D::SetY(), et ExCVec3D::SetZ().

Référencé par ExManagerCamera::Draw(), ExManagerCam::Draw(), Draw(), et ExManagerOutput::Reshape().

00052 {
00053 Guard(ExCCamera::Draw(void))
00054 //cout<<"Draw "<<m_ObjectName<<" ID:"<<m_ObjectId<<endl;
00055         Process();
00056 
00057         if(m_AngleX<0)m_AngleX=359;
00058         if(m_AngleX>359)m_AngleX=0;
00059         if(m_AngleY<0)m_AngleY=359;
00060         if(m_AngleY>359)m_AngleY=0;
00061         if(m_AngleZ<0)m_AngleZ=359;
00062         if(m_AngleZ>359)m_AngleZ=0;
00063 
00064         float cosY,cosP,cosR;
00065         float sinY,sinP,sinR;
00066 
00067         cosY=cosf(DegreesToRadians(m_AngleY));
00068         cosP=cosf(DegreesToRadians(m_AngleX));
00069         cosR=cosf(DegreesToRadians(m_AngleZ));
00070 
00071         sinY=sinf(DegreesToRadians(m_AngleY));
00072         sinP=sinf(DegreesToRadians(m_AngleX));
00073         sinR=sinf(DegreesToRadians(m_AngleZ));  
00074 
00075         ExCVec3D fwd,side;
00076 
00077         fwd.SetX(sinY*cosP);
00078         fwd.SetY(sinP);
00079         fwd.SetZ(cosP*-cosY);
00080 
00081         m_Target=fwd+m_Position;
00082         
00083 
00084         m_Up.SetX((-cosY*sinR)-(sinY*sinP*cosR));
00085         m_Up.SetY(cosP*cosR);
00086         m_Up.SetZ((-sinY*sinR)-(sinP*cosR*-cosY));
00087 
00088    /*   char buff[255];
00089         memset(buff,0,255);
00090         sprintf(buff,"Camera position X:%f Y:%f Z:%f",m_Position.GetX(),m_Position.GetY(),m_Position.GetZ());
00091         ExNihilo::WriteToScreen(30,540,buff);
00092         memset(buff,0,255);
00093         sprintf(buff,"Camera fwd X:%f Y:%f Z:%f",fwd.GetX(),fwd.GetY(),fwd.GetZ());
00094         ExNihilo::WriteToScreen(30,560,buff);
00095         memset(buff,0,255);
00096         sprintf(buff,"Camera target X:%f Y:%f Z:%f",m_Target.GetX(),m_Target.GetY(),m_Target.GetZ());
00097         ExNihilo::WriteToScreen(30,580,buff);
00098         memset(buff,0,255);
00099         sprintf(buff,"Camera angle X:%f Y:%f Z:%f",m_AngleX,m_AngleY,m_AngleZ);
00100         ExNihilo::WriteToScreen(30,600,buff);
00101  */
00102         gluLookAt(m_Position.GetX(),m_Position.GetY(),m_Position.GetZ()
00103                         ,m_Target.GetX(),m_Target.GetY(),m_Target.GetZ()
00104                         ,m_Up.GetX(),m_Up.GetY(),m_Up.GetZ());
00105         
00106         m_Position=m_Position+((m_Target-m_Position)*m_speed);
00107 
00108 UnGuard
00109 }

float GetClipFar void    [inline]
 

Définition à la ligne 77 du fichier ExCCamera.h.

Référencé par ExManagerOutput::Reshape().

00078 {return m_ClipFar;}

float GetClipNear void    [inline]
 

Définition à la ligne 78 du fichier ExCCamera.h.

Références m_ClipFar.

Référencé par ExManagerOutput::Reshape().

00078 {return m_ClipFar;}

float GetZoom void    [inline]
 

Définition à la ligne 72 du fichier ExCCamera.h.

Références m_ZoomMin.

Référencé par ExManagerOutput::Reshape().

00072 {return m_ZoomMin;}

float GetZoomDefault void    [inline]
 

Définition à la ligne 73 du fichier ExCCamera.h.

Références m_Zoom.

00073 {return m_Zoom;}

float GetZoomMax void    [inline]
 

Définition à la ligne 70 du fichier ExCCamera.h.

00071 {return m_ZoomMax;}

float GetZoomMin void    [inline]
 

Définition à la ligne 71 du fichier ExCCamera.h.

Références m_ZoomMax.

00071 {return m_ZoomMax;}

void Process void   
 

Définition à la ligne 192 du fichier ExCCamera.cpp.

Références Guard, ExCObject3D::m_AngleX, ExCObject3D::m_AngleY, ExCObject3D::m_AngleZ, m_VecAction, Process(), ROTATE_X_DOWN, ROTATE_X_UP, ROTATE_Y_DOWN, ROTATE_Y_UP, ROTATE_Z_DOWN, ROTATE_Z_UP, SPEED_DOWN, SPEED_UP, ZOOM_DOWN, ZOOM_UP, ZoomIn(), et ZoomOut().

Référencé par Draw(), et Process().

00193 {
00194 Guard(void ExCCamera::Process(void))
00195         for(unsigned i=0;i<m_VecAction.size();i++)
00196         {
00197                 switch(m_VecAction.at(i)) 
00198                 {
00199                 case ROTATE_Z_UP:m_AngleZ++;break;
00200                 case ROTATE_Y_UP:m_AngleY++;break;
00201                 case ROTATE_X_UP:m_AngleX++;break;
00202                 case ROTATE_Z_DOWN:m_AngleZ--;break;
00203                 case ROTATE_Y_DOWN:m_AngleY--;break;
00204                 case ROTATE_X_DOWN:m_AngleX--;break;
00205                 case ZOOM_UP:ZoomOut();break;
00206                 case ZOOM_DOWN:ZoomIn();break;
00207                 case SPEED_UP:break;
00208                 case SPEED_DOWN:break;
00209                 }
00210         }
00211 UnGuard
00212 }

void ResetZoom void   
 

Définition à la ligne 111 du fichier ExCCamera.cpp.

Références Guard, m_Zoom, m_ZoomDefault, et ResetZoom().

Référencé par ResetZoom().

00112 {
00113 Guard(void ExCCamera::ResetZoom(void))
00114         m_Zoom=m_ZoomDefault;
00115 UnGuard
00116 }

void SetClipFar float    clip
 

Définition à la ligne 176 du fichier ExCCamera.cpp.

Références Guard, m_ClipFar, m_ClipNear, et SetClipFar().

Référencé par SetClipFar().

00177 {
00178         Guard(void ExCCamera::SetClipFar(float clip))
00179         m_ClipFar=clip;
00180         if(m_ClipFar<m_ClipNear)m_ClipFar=m_ClipNear+1;
00181 UnGuard
00182 }

void SetClipNear float    clip
 

Définition à la ligne 184 du fichier ExCCamera.cpp.

Références Guard, m_ClipFar, m_ClipNear, et SetClipNear().

Référencé par SetClipNear().

00185 {
00186         Guard(void ExCCamera::SetClipNear(float clip))
00187         m_ClipNear=clip;
00188         if(m_ClipNear>m_ClipFar)m_ClipNear=m_ClipFar-1;
00189 UnGuard
00190 }

void SetZoom float    zoom
 

Définition à la ligne 158 du fichier ExCCamera.cpp.

Références Guard, et SetZoom().

Référencé par SetZoom().

00159 {
00160 Guard(void ExCCamera::SetZoom(float zoom))
00161 UnGuard
00162 }

void SetZoomDefault float    zoom
 

Définition à la ligne 118 du fichier ExCCamera.cpp.

Références Guard, m_ZoomDefault, et m_ZoomMin.

00119 {
00120 Guard(void ExCCamera:: SetZoomDefault(float zoom))
00121         if(zoom<m_ZoomMax&&zoom>m_ZoomMin)
00122                 m_ZoomDefault=zoom;
00123 UnGuard
00124 }

void SetZoomMax float    zoom
 

Définition à la ligne 164 du fichier ExCCamera.cpp.

Références Guard, et SetZoomMax().

Référencé par SetZoomMax().

00165 {
00166 Guard(void ExCCamera::SetZoomMax(float zoom))
00167 UnGuard
00168 }

void SetZoomMin float    zoom
 

Définition à la ligne 170 du fichier ExCCamera.cpp.

Références Guard, et SetZoomMin().

Référencé par SetZoomMin().

00171 {
00172 Guard(void ExCCamera::SetZoomMin(float zoom))
00173 UnGuard
00174 }

void StartAction int    Action
 

Définition à la ligne 214 du fichier ExCCamera.cpp.

Références Guard, m_VecAction, et StartAction().

Référencé par ExManagerCamera::InputAction(), et StartAction().

00215 {
00216 Guard(void ExCCamera::StartAction(int Action))
00217         m_VecAction.push_back(Action);
00218 UnGuard
00219 }

void StopAction int    Action
 

Définition à la ligne 221 du fichier ExCCamera.cpp.

Références Guard, m_ItVecAction, m_VecAction, et StopAction().

Référencé par ExManagerCamera::InputAction(), et StopAction().

00222 {
00223 Guard(void ExCCamera::StopAction(int Action))
00224         for(m_ItVecAction=m_VecAction.begin();m_ItVecAction!=m_VecAction.end();m_ItVecAction++)
00225         {
00226                 if(*m_ItVecAction==Action){m_VecAction.erase(m_ItVecAction);return;}
00227         }
00228 UnGuard
00229 }

void ZoomIn float    zoom
 

Définition à la ligne 142 du fichier ExCCamera.cpp.

Références Guard, m_Zoom, m_ZoomMin, et ZoomIn().

00143 {
00144 Guard(void ExCCamera::ZoomIn(float zoom))
00145         m_Zoom=m_Zoom-zoom;
00146         if(m_Zoom<=m_ZoomMin)m_Zoom=m_ZoomMin+1;
00147 UnGuard
00148 }

void ZoomIn void   
 

Définition à la ligne 126 du fichier ExCCamera.cpp.

Références Guard, m_Zoom, m_ZoomMin, et ZoomIn().

Référencé par ExManagerCamera::InputAction(), Process(), et ZoomIn().

00127 {
00128 Guard(void ExCCamera::ZoomIn(void))
00129         m_Zoom--;
00130         if(m_Zoom<=m_ZoomMin)m_Zoom=m_ZoomMin+1;
00131 UnGuard
00132 }

void ZoomOut float    zoom
 

Définition à la ligne 150 du fichier ExCCamera.cpp.

Références Guard, m_Zoom, m_ZoomMax, et ZoomOut().

00151 {
00152 Guard(void ExCCamera::ZoomOut(float zoom))
00153         m_Zoom=m_Zoom+m_ZoomMax;
00154         if(m_Zoom>=m_ZoomMax)m_Zoom=m_ZoomMax-1;
00155 UnGuard
00156 }

void ZoomOut void   
 

Définition à la ligne 134 du fichier ExCCamera.cpp.

Références Guard, m_Zoom, m_ZoomMax, et ZoomOut().

Référencé par ExManagerCamera::InputAction(), Process(), et ZoomOut().

00135 {
00136 Guard(void ExCCamera::ZoomOut(void))
00137         m_Zoom++;
00138         if(m_Zoom>=m_ZoomMax)m_Zoom=m_ZoomMax-1;
00139 UnGuard
00140 }


Documentation des données imbriquées

bool m_Actif [protected]
 

Définition à la ligne 41 du fichier ExCCamera.h.

float m_ClipFar [protected]
 

Définition à la ligne 43 du fichier ExCCamera.h.

Référencé par ExCCamera(), GetClipNear(), SetClipFar(), et SetClipNear().

float m_ClipNear [protected]
 

Définition à la ligne 44 du fichier ExCCamera.h.

Référencé par ExCCamera(), SetClipFar(), et SetClipNear().

int m_CurrentAction
 

Définition à la ligne 80 du fichier ExCCamera.h.

std::vector<int>::iterator m_ItVecAction
 

Définition à la ligne 82 du fichier ExCCamera.h.

Référencé par StopAction().

std::vector<int> m_VecAction
 

Définition à la ligne 81 du fichier ExCCamera.h.

Référencé par Process(), StartAction(), et StopAction().

float m_Zoom [protected]
 

Définition à la ligne 42 du fichier ExCCamera.h.

Référencé par ExCCamera(), GetZoomDefault(), ResetZoom(), ZoomIn(), et ZoomOut().

float m_ZoomDefault [protected]
 

Définition à la ligne 45 du fichier ExCCamera.h.

Référencé par ExCCamera(), ResetZoom(), et SetZoomDefault().

float m_ZoomMax [protected]
 

Définition à la ligne 46 du fichier ExCCamera.h.

Référencé par ExCCamera(), GetZoomMin(), et ZoomOut().

float m_ZoomMin [protected]
 

Définition à la ligne 47 du fichier ExCCamera.h.

Référencé par ExCCamera(), GetZoom(), SetZoomDefault(), et ZoomIn().


La documentation associée à cette classe a été générée à partir des fichiers suivants :
Généré le Tue Dec 10 18:18:23 2002 pour ExNihilo par doxygen1.3-rc1