#include <ExCCameraChase.h>
Inheritance diagram for ExCCameraChase:

Public Methods | |
| ExCCameraChase () | |
| ~ExCCameraChase () | |
| void | SetManagerModel (ExManagerModel *Model) |
| void | Draw (void) |
Protected Attributes | |
| ExManagerModel * | ManagerModel |
| ExNihilo::ExId | m_ModelTargetID |
| int | m_AngleAround |
| int | m_AngleFromBase |
| float | m_DistanceFromTarget |
| ExCVec3D | m_TargetPosition |
|
|
Definition at line 27 of file ExCCameraChase.cpp. References ExCCameraChase(), Guard, m_AngleAround, m_AngleFromBase, m_DistanceFromTarget, ExCObject::SetName(), and ExCObject::SetType(). Referenced by ExCCameraChase(), and ~ExCCameraChase().
00028 {
00029 Guard(ExCCameraChase::ExCCameraChase())
00030 SetName("ExCCameraChase");
00031 SetType(typeid(this).name());
00032 m_AngleAround=0;
00033 m_AngleFromBase=4;
00034 m_DistanceFromTarget=14.0f;
00035 UnGuard
00036 }
|
|
|
Definition at line 38 of file ExCCameraChase.cpp. References ExCCameraChase(), and Guard.
00039 {
00040 Guard(ExCCameraChase::~ExCCameraChase())
00041 UnGuard
00042 }
|
|
|
Reimplemented from ExCCamera. Definition at line 44 of file ExCCameraChase.cpp. References DegreesToRadians(), Draw(), ExManagerModel::GetCurrentObject(), ExCObject3D::GetPosition(), ExCVec3D::GetX(), ExCVec3D::GetY(), ExCVec3D::GetZ(), Guard, ExCObject3D::m_AngleX, ExCObject3D::m_AngleY, ExCObject3D::m_AngleZ, ExCObject3D::m_Position, ExCObject3D::m_Target, m_TargetPosition, ExCObject3D::m_Up, ManagerModel, ExCVec3D::SetX(), ExCVec3D::SetY(), ExCVec3D::SetZ(), and ExNihilo::WriteToScreen(). Referenced by Draw().
00045 {
00046 Guard(void ExCCameraChase::Draw(void))
00047 if(m_AngleX<0)m_AngleX=359;
00048 if(m_AngleX>359)m_AngleX=0;
00049 if(m_AngleY<0)m_AngleY=359;
00050 if(m_AngleY>359)m_AngleY=0;
00051 if(m_AngleZ<0)m_AngleZ=359;
00052 if(m_AngleZ>359)m_AngleZ=0;
00053
00054 m_TargetPosition=ManagerModel->GetCurrentObject()->GetPosition();
00055 //Le cote adjacent = cos(angle) * hypotenuse
00056 //Le cote oppose = tan(angle) * hypotenuse
00057 //m_Position.SetX(-(Cos[m_AngleFromBase]*m_DistanceFromTarget));
00058 //m_Position.SetY(tan(m_AngleFromBase)*m_DistanceFromTarget);
00059
00060 /* m_Position.SetX(-25);
00061 m_Position.SetY(12);
00062
00063
00064 m_Position.SetZ(-2.5f);
00065
00066 int tmp=m_Position.GetX()*Cos[(int)m_AngleX];
00067 m_Position.SetZ(-25-tmp);
00068 m_Position.SetX(tmp);
00069
00070
00071
00072 m_Position=m_Position+m_TargetPosition;
00073
00074
00075 m_Target=ManagerModel->GetCurrentObject()->GetPosition();
00076 //m_Target.SetZ(m_Target.GetZ()-2.5f);
00077 gluLookAt(m_Position.GetX(),m_Position.GetY(),m_Position.GetZ()
00078 ,m_Target.GetX(),m_Target.GetY(),m_Target.GetZ()
00079 ,0.0,1.0,0.0);
00080 m_Position.SetValue(0.0f,0.0f,0.0f);
00081 */
00082
00083 float cosY,cosP,cosR;
00084 float sinY,sinP,sinR;
00085
00086 cosY=cosf(DegreesToRadians(m_AngleY));
00087 cosP=cosf(DegreesToRadians(m_AngleX));
00088 cosR=cosf(DegreesToRadians(m_AngleZ));
00089
00090 sinY=sinf(DegreesToRadians(m_AngleY));
00091 sinP=sinf(DegreesToRadians(m_AngleX));
00092 sinR=sinf(DegreesToRadians(m_AngleZ));
00093
00094 ExCVec3D fwd,side;
00095
00096 fwd.SetX(sinY*cosP);
00097 fwd.SetY(sinP);
00098 fwd.SetZ(cosP*-cosY);
00099
00100 //m_Target=fwd+m_Position;
00101
00102
00103 m_Target=fwd+ManagerModel->GetCurrentObject()->GetPosition();
00104
00105 m_Position.SetX(-25+m_Target.GetX());
00106 m_Position.SetY(12+m_Target.GetY());
00107
00108 m_Up.SetX((-cosY*sinR)-(sinY*sinP*cosR));
00109 m_Up.SetY(cosP*cosR);
00110 m_Up.SetZ((-sinY*sinR)-(sinP*cosR*-cosY));
00111
00112 char buff[255];
00113 memset(buff,0,255);
00114 sprintf(buff,"Camera position X:%f Y:%f Z:%f",m_Position.GetX(),m_Position.GetY(),m_Position.GetZ());
00115 ExNihilo::WriteToScreen(30,540,buff);
00116 memset(buff,0,255);
00117 sprintf(buff,"Camera fwd X:%f Y:%f Z:%f",fwd.GetX(),fwd.GetY(),fwd.GetZ());
00118 ExNihilo::WriteToScreen(30,560,buff);
00119 memset(buff,0,255);
00120 sprintf(buff,"Camera target X:%f Y:%f Z:%f",m_Target.GetX(),m_Target.GetY(),m_Target.GetZ());
00121 ExNihilo::WriteToScreen(30,580,buff);
00122
00123
00124 gluLookAt(m_Position.GetX(),m_Position.GetY(),m_Position.GetZ()
00125 ,m_Target.GetX(),m_Target.GetY(),m_Target.GetZ()
00126 ,m_Up.GetX(),m_Up.GetY(),m_Up.GetZ());
00127
00128 //m_Position=m_Position+((m_Target-m_Position)*m_speed);
00129
00130 UnGuard
00131 } |
|
|
Definition at line 55 of file ExCCameraChase.h. Referenced by ExManagerCamera::Add().
00056 {ManagerModel = Model;}
|
|
|
Definition at line 41 of file ExCCameraChase.h. Referenced by ExCCameraChase(). |
|
|
Definition at line 42 of file ExCCameraChase.h. Referenced by ExCCameraChase(). |
|
|
Definition at line 43 of file ExCCameraChase.h. Referenced by ExCCameraChase(). |
|
|
Definition at line 40 of file ExCCameraChase.h. |
|
|
Definition at line 44 of file ExCCameraChase.h. Referenced by Draw(). |
|
|
Definition at line 39 of file ExCCameraChase.h. Referenced by Draw(). |
1.3-rc1