📄 frustum.h
字号:
// Frustum.h: interface for the CFrustum class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_FRUSTUM_H__D7E02EC9_697D_4B1B_8CAB_7C0A92D78B79__INCLUDED_)
#define AFX_FRUSTUM_H__D7E02EC9_697D_4B1B_8CAB_7C0A92D78B79__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define PLANE_EPSILON 5.0f
#define CULL_NONE 0x00
#define CULL_VIEW 0x01
#define CULL_FIRE 0x02
#define CULL_CAM 0x04
#define CULL_ALL 0x07
class CFrustum
{
public:
CFrustum();
virtual ~CFrustum();
public:
BOOL Make( D3DXMATRIXA16* pmatViewProj );
BOOL IsIn( D3DXVECTOR3* pv );
BOOL IsInSphere( D3DXVECTOR3* pv, float radius );
int __fastcall IsInEx( D3DXVECTOR3 pv, int nValue = CULL_ALL );
int __fastcall IsInSphereEx( D3DXVECTOR3 pv, float radius, int nValue = CULL_ALL );
int __fastcall IsInEx2( D3DXVECTOR3 pv, int nValue = CULL_ALL );
//int __fastcall IsInSphereEx2( D3DXVECTOR3 pv, float radius, int nValue = CULL_ALL );
int __fastcall IsFireInEx( D3DXVECTOR3 pv );
int __fastcall IsInFireSphereEx( D3DXVECTOR3 pv, float radius );
BOOL Draw( LPDIRECT3DDEVICE9 pDev );
D3DXVECTOR3* GetPos() { return &m_vPos; }
D3DXVECTOR3* GetFirePos() { return &m_vFirePos; }
protected:
private:
D3DXVECTOR3 CreateFrustum( D3DXVECTOR3 * pVtx, D3DXPLANE * pPlane, D3DXMATRIXA16* pmatViewProj );
private:
D3DXVECTOR3 m_vtx[8];
D3DXVECTOR3 m_vPos;
D3DXPLANE m_plane[6];
D3DXVECTOR3 m_vFireVertex[8];
D3DXVECTOR3 m_vFirePos;
D3DXPLANE m_planeFire[6];
D3DXVECTOR3 m_vCamVertex[8];
D3DXVECTOR3 m_vCamPos;
D3DXPLANE m_planeCam[6];
D3DXMATRIX m_mFireProj;
D3DXMATRIX m_mCamProj;
public:
};
#endif // !defined(AFX_FRUSTUM_H__D7E02EC9_697D_4B1B_8CAB_7C0A92D78B79__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -