📄 x_model.h
字号:
#define D3D_OVERLOADS
#include "d3d.h"
#include "d3dx.h"
#include "D3DTextr.h"
#include "D3DUtil.h"
#include "D3DMath.h"
#include "D3Dfile.h"
#include "d3d_app.h"
class X_MODEL
{
CD3DFile* m_pObj;
FLOAT m_fObjRadius;
FLOAT m_fEyeDistance;
D3DMATRIX m_matSave;
D3DMATRIX m_matRotate;
BOOL m_bCull;
BOOL m_bFlat;
BOOL m_bWire;
public:
HRESULT LoadXFile(char *strFileName);
VOID SetupMatrices();
VOID SetOwnView();
inline VOID Render();
float m_fScaleX;
float m_fScaleY;
float m_fScaleZ;
float m_fYaw;
float m_fPitch;
float m_fRoll;
float m_fInitYaw;
float m_fInitPitch;
float m_fInitRoll;
BOOL m_boInitFlag;
VOID InitPosition(float x , float y , float z , float fYaw , float fPitch , float fRoll)
{
m_Position.x = x;
m_Position.y = y;
m_Position.z = z;
m_fInitYaw = fYaw;
m_fInitPitch = fPitch;
m_fInitRoll = fRoll;
m_boInitFlag = TRUE;
}
VOID SetScale(float x , float y , float z)
{ m_fScaleX = x; m_fScaleY = y; m_fScaleZ = z; }
D3DXVECTOR3 m_Position;
VOID MoveRelative(D3DVECTOR &Dir);
X_MODEL();
};
inline void X_MODEL::Render()
{
if( m_pObj )
{
g_pd3dDevice->SetRenderState( D3DRENDERSTATE_LIGHTING, TRUE);
g_pd3dDevice->SetRenderState( D3DRENDERSTATE_AMBIENT, 0x00000000);
DWORD dwCullMode = m_bCull ? D3DCULL_CCW : D3DCULL_NONE;
DWORD dwShadeMode = m_bFlat ? D3DSHADE_FLAT : D3DSHADE_GOURAUD;
DWORD dwFillMode = m_bWire ? D3DFILL_WIREFRAME : D3DFILL_SOLID;
g_pd3dDevice->SetRenderState( D3DRENDERSTATE_CULLMODE, dwCullMode );
g_pd3dDevice->SetRenderState( D3DRENDERSTATE_SHADEMODE, dwShadeMode );
g_pd3dDevice->SetRenderState( D3DRENDERSTATE_FILLMODE, dwFillMode );
m_pObj->Render( g_pd3dDevice );
g_pd3dDevice->SetRenderState( D3DRENDERSTATE_LIGHTING, FALSE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -