struct t3DObject //对象信息结构体
{
int numOfVerts; // 模型中顶点的数目
int numOfFaces;// 模型中面的数目
int numTexVertex;// 模型中纹理坐标的数目
int materialID; // 纹理ID
bool bHasTexture;// 是否具有纹理映射
bool bVisible;//对象是否可见,默认是可见
char strName[255];// 对象的名称
FPoint3 *pVerts;// 对象的顶点
FPoint3 *pNormals;// 顶点的法向量
FPoint2 *pTexVerts;// 纹理UV坐标
tFace *pFaces;// 对象的面信息
FPoint3 *pFaceNormals;// 面的法线

// 为t3DObject运算符重载
t3DObject& operator=(t3DObject& value)
{
numOfVerts = value.numOfVerts; // 模型中顶点的数目
numOfFaces = value.numOfFaces;// 模型中面的数目
numTexVertex = value.numTexVertex;// 模型中纹理坐标的数目
materialID = value.materialID; // 纹理ID
bHasTexture = value.bHasTexture;// 是否具有纹理映射
bVisible = value.bVisible;//对象是否可见,默认是可见
//char strName[255];// 对象的名称
pVerts = value.pVerts;// 对象的顶点
pNormals = value.pNormals;// 顶点的法向量
pTexVerts = value.pTexVerts;// 纹理UV坐标
pFaces = value.pFaces;// 对象的面信息
pFaceNormals = value.pFaceNormals;// 面的法线

return *this;
}
};

当结构体包含结构体的时候,赋值很复杂,而且容易出现各种问题,所以这个时候最好使用指针传递。

05-07 15:15