📄 camera.h
字号:
// Camera.h: interface for the CCamera class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CAMERA_H__88CCD9F7_A082_443A_AF5F_27EE1A6CBC1B__INCLUDED_)
#define AFX_CAMERA_H__88CCD9F7_A082_443A_AF5F_27EE1A6CBC1B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <d3d8.h>
#include <d3dx8.h>
class CCamera
{
public:
D3DXVECTOR3 m_vEye;
D3DXVECTOR3 m_vLookat;
D3DXVECTOR3 m_vUp;
D3DXVECTOR3 m_vView; // view unit vector
D3DXVECTOR3 m_vCross; // cross( view, up )
D3DXMATRIX m_matView;
D3DXMATRIX m_matBill; // billboard matrix
D3DXMATRIX m_matWorld;
D3DXMATRIX m_matProj;
public:
CCamera();
D3DXMATRIX* GetViewMatrix() { return &m_matView; }
D3DXMATRIX* GetBillMatrix() { return &m_matView; }
public:
D3DXMATRIX* SetView( D3DXVECTOR3* pvEye,D3DXVECTOR3* pvLookat,D3DXVECTOR3* pvUp);
void SetMatrices( D3DXMATRIX* matWorld, D3DXMATRIX* matView, D3DXMATRIX* matProj )
{ m_matWorld = *matWorld; m_matView = *matView; m_matProj = *matProj; }
void GetMatrices( D3DXMATRIX** matWorld, D3DXMATRIX** matView, D3DXMATRIX** matProj )
{ *matWorld = &m_matWorld; *matView = &m_matView; *matProj = &m_matProj; }
void SetEye( D3DXVECTOR3* pv ) { m_vEye = *pv; }
D3DXVECTOR3* GetEye() { return &m_vEye; }
void SetLookat( D3DXVECTOR3* pv ) { m_vLookat = *pv; }
D3DXVECTOR3* GetLookat() { return &m_vLookat; }
void SetUp( D3DXVECTOR3* pv ) { m_vUp = *pv; }
D3DXVECTOR3* GetUp() { return &m_vUp; }
void Flush() { SetView( &m_vEye, &m_vLookat, &m_vUp ); }
D3DXMATRIX* RotateLocalX( float angle ); // 以local x为中心旋转,主要使用这个
D3DXMATRIX* RotateLocalY( float angle ); // 以local y为中心旋转,主要使用这个
D3DXMATRIX* RotateLocalZ( float angle ); // 以local z为中心旋转,主要使用这个
// D3DXMATRIX* RotateGlobalX( float angle ); // 以world x为中心旋转
// D3DXMATRIX* RotateGlobalY( float angle ); // 以world y为中心旋转
// D3DXMATRIX* RotateGlobalZ( float angle ); // 以world z为中心旋转
D3DXMATRIX* MoveTo( D3DXVECTOR3* pv );
D3DXMATRIX* MoveLocalX( float dist ); // 以local x为中心移动,主要使用这个
D3DXMATRIX* MoveLocalY( float dist ); // 以local y为中心移动,主要使用这个
D3DXMATRIX* MoveLocalZ( float dist ); // 以local z为中心移动,主要使用这个
// D3DXMATRIX* MoveGlobalX( float dist ); // 以world x为中心移动
// D3DXMATRIX* MoveGlobalY( float dist ); // 以world y为中心移动
// D3DXMATRIX* MoveGlobalZ( float dist ); // 以world z为中心移动
};
#endif // !defined(AFX_CAMERA_H__88CCD9F7_A082_443A_AF5F_27EE1A6CBC1B__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -