예전에 만들었던 Camera Class
Header 부분..
추가할것이 많은데..
#ifndef MYCAMERA_H
#define MYCAMERA_H
#include <d3d9.h>
#include <d3dx9.h>
#include "MyTypeDef.h"
class MyCamera
{
public:
MyCamera(unsigned int uiCameraNum, D3DXVECTOR3 vEyePoint, D3DXVECTOR3 vLookAtPoint, D3DXVECTOR3 vUpVec);
virtual ~MyCamera();
static MyCamera* ms_pkCamera;
static MyCamera* Create(unsigned int uiCameraNum, D3DXVECTOR3 vEyePoint, D3DXVECTOR3 vLookAtPoint, D3DXVECTOR3 vUpVec);
static MyCamera* GetThis();
D3DXMATRIXA16* GetViewMatrix();
D3DXMATRIXA16* GetProjectionMatrix();
D3DXMATRIXA16* GetWorldMatrix();
D3DXMATRIXA16* GetFrustumMatrix();
// EyePoint 와 LookAtPoint 와 UpVec로 세팅함..
D3DXMATRIXA16* SetView(D3DXVECTOR3* pvEyePoint, D3DXVECTOR3* pvLookAtPoint, D3DXVECTOR3* pvUpVec);
void SetCameraEye(D3DXVECTOR3* pEyePoint);
D3DXVECTOR3* GetCameraEye() { return &m_vEyePoint; }
void SetCameraLookAt(D3DXVECTOR3* pLookAtPoint);
D3DXVECTOR3* GetCameraLookAt() { return &m_vLookAtPoint; }
void SetCameraUp(D3DXVECTOR3* pUp);
D3DXVECTOR3* GetCameraUp() { return &m_vUpVec; }
void Flush() { SetView(&m_vEyePoint, &m_vLookAtPoint, &m_vUpVec); }
// 카메라좌표계의 X, Y 축으로 fAngle만큼 이동.
D3DXMATRIXA16* RotateCameraX(float fAngle);
D3DXMATRIXA16* RotateCameraY(float fAngle);
// 월드좌표계의 *pVec 값의 위치로 이동함
D3DXMATRIXA16* MoveWorldTo(D3DXVECTOR3* pVec);
// 카메라좌표계의 X, Y, Z축 방향으로 Move
D3DXMATRIXA16* MoveCameraX(float fDist);
D3DXMATRIXA16* MoveCameraY(float fDist);
D3DXMATRIXA16* MoveCameraZ(float fDist);
virtual bool OnDefault(MyEventRecord* pEvent);
virtual void OnIdle();
protected:
private:
unsigned int m_uiCameraNum;
D3DXVECTOR3 m_vEyePoint; // 카메라 현재 위치
D3DXVECTOR3 m_vLookAtPoint; // 카메라 시선 위치
D3DXVECTOR3 m_vUpVec; // 카메라 정수리 벡터
D3DXVECTOR3 m_vView; // 카메라가 향하는 단위방향벡터
D3DXVECTOR3 m_vCross; // 카메라의 측면 벡터 cross(view, up);
D3DXMATRIXA16 m_matView; // 카메라 행렬
D3DXMATRIXA16 m_matProjection;
D3DXMATRIXA16 m_matWorld;
D3DXMATRIXA16 m_matFrustum;
bool m_bMouseMoving;
bool m_bKeyBoardMoving;
bool m_bRButtonDown;
int m_nPrevMouseX;
int m_nPrevMouseY;
};
#include "MyCamera.inl"
#endif
'Programming' 카테고리의 다른 글
| ID3DXSprite::Begin (0) | 2007/10/02 |
|---|---|
| D3DXCreateSprite (0) | 2007/09/30 |
| 연결 리스트 ( Linked List ) 링크드 리스트 (0) | 2007/09/23 |
| 순열(next_permutation)과 문자열 변환 (0) | 2007/09/16 |
| next_permutation (0) | 2007/09/13 |
| DICamera (0) | 2007/06/19 |
| Camera Class 구현 (0) | 2007/06/19 |
| DirectX Study (3) (0) | 2007/06/19 |
| DirectX Study (2) (0) | 2007/06/18 |
| DirectX Study (1) (0) | 2007/06/18 |
| 구조체 (0) | 2007/06/16 |






댓글을 달아 주세요