mesh.h
来自「使用shader语言在vs阶段编写光照效果的演示程序及全部源代码」· C头文件 代码 · 共 80 行
H
80 行
/****
Direct3D 基础演示程序,
新东方d3d游戏开发课程
简单几何体的绘制 , BOX的绘制
潘李亮 2006-1-14
****/
#ifndef __D3DMesh_H__
#define __D3DMesh_H__
#include "ModelData.h"
class CD3DMesh
{
float m_iCurFrame ;
int m_nFrame;
D3DXMATRIX m_WorldMatrix;
D3DXVECTOR3 m_Position;
IDirect3DVertexDeclaration9* m_pVertexDecl;
float m_AngleX;
float m_AngleY;
float m_AngleZ;
public:
CD3DMesh()
{
m_Stride = 0;
m_pVertexBuffers = NULL;
m_pTexture = NULL;
m_nFace = 0;
m_iCurFrame = 0.0f;;
m_nFrame = 0;
D3DXMatrixIdentity(&m_WorldMatrix);
m_Position;
m_Position.x = 0.0f;
m_Position.y = 0.0f;
m_Position.z = 0.0f;
m_AngleX = 0.0f;
m_AngleY = 0.0f;
m_AngleZ = 0.0f;
};
D3DXVECTOR3 m_VertexMin;
D3DXVECTOR3 m_VertexMax;
D3DMATERIAL9 m_Material;
int m_Stride;
int m_nFace;
LPDIRECT3DVERTEXBUFFER9 *m_pVertexBuffers;
IDirect3DTexture9* m_pTexture;
bool load(const char* filename);
void rotate(float ax , float ay , float az)
{
D3DXMATRIX matRotX,matRotY,matRotZ;
D3DXMatrixRotationX(&matRotX,ax);
D3DXMatrixRotationY(&matRotY,ay);
D3DXMatrixRotationZ(&matRotZ,az);
D3DXMATRIX tempWldMat = m_WorldMatrix * matRotX * matRotY * matRotZ ;
m_WorldMatrix = tempWldMat;
}
bool calcBoundBox(sVertex_t * pVertex , int nVertex);
bool release();
void loadTexture(const char* pTextureName);
void render(long passedTime);
void setPosition(D3DXVECTOR3& pos)
{
D3DXMATRIX matTrans,matRotX,matRotY,matRotZ;
D3DXMatrixTranslation(&matTrans,pos.x,pos.y,pos.z);
D3DXMATRIX tempWldMat = m_WorldMatrix * matTrans;
m_WorldMatrix = tempWldMat;
}
void getTransform(D3DXMATRIX* mat);
void setState();
void endSetState();
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?