2.9 Loadable Meshes using cMesh(网格)

 

2.9 Loadable Meshes using cMesh(网格)

class cMesh

{

private:

cGraphics *m_Graphics; // cGraphics 父对象

long m_NumMeshes; // 网格数量

sMesh *m_Meshes; //网格列表

long m_NumFrames; // 框架(frame)数量

sFrame *m_Frames; // 框架(frame)列表

D3DXVECTOR3 m_Min, m_Max; // 盒子(Bounding box)坐标

float m_Radius; // 球形盒子半径

// 解析.x文件模板

void ParseXFileData(IDirectXFileData *pData, /

sFrame *ParentFrame, char *TexturePath);

// 使骨骼、框架相称变换

void MapFramesToBones(sFrame *Frame);

public:

cMesh(); // 构造函数

~cMesh(); // 析构函数

BOOL IsLoaded(); // 如果网格被装载返回TRUE

long GetNumFrames(); // 返回列表(list)中框架(frame)数量

sFrame *GetParentFrame(); // 返回框架列表栈顶框架

sFrame *GetFrame(char *Name); // 在列表中查询框架

long GetNumMeshes(); //返回列表中网格数量

sMesh *GetParentMesh(); // 返回网格列表栈顶网格

sMesh *GetMesh(char *Name); // 在网格列表中查找网格

// 获得盒子坐标和盒子半径

BOOL GetBounds(float *MinX, float *MinY, float *MinZ, /

float *MaxX, float *MaxY, float *MaxZ, /

float *Radius);

// 装载和释放.x文件

// (可以指定纹理路径).

BOOL Load(cGraphics *Graphics, char *Filename, /

char *TexturePath = .//);

BOOL Free();

};

 

尽管这个类看起来很小,我也不想跟你介绍sMeshsFrame结构体,这两个结构体组成了一个网格对象和框架链。这是cMesh内部使用的东西,不做介绍了,你可以在他的文件里看看得了。

例子:

// 如果 g_Graphics是一个已经被初始化过的cGraphics 对象

cMesh Mesh;

Mesh.Load(&g_Graphics, Mesh.x);

Mesh.Free(); //做完之后要释放

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值