⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camera.h

📁 BSP地形系统和光照贴图的技术详解
💻 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 + -