typedef struct {
int bV;
int eV;
} Side;
和
struct side {
int bV;
int eV;
}Side;
是有区别的,
上面的是类型定义只是给结构体struct {
int bV;
int eV;
} 定义一个别名叫做:Side。Side是一个类型。
而下面的是定义好类型后又用定义好的类型side定义了一个变量Side。
在.h文件中经常用到第一种定义方式,注意定义一个结构体类型时不要紧跟着定义一个变量,以防止头文件被重复包含时同一个变量被重复定义而报错。
posted @
2008-04-21 12:51 天书 阅读(176) |
评论 (0) |
编辑 收藏
1://头文件中定义结构体类型的时候不要写上变量名,以免头文件被重复包含的时候重复定义变量。
struct TreeNode
{
D3DXPLANE *optPlane; // 分割平面
bool isLeaf;
vector<int> overTri; // 在分割平面上的三角形
vector<int> Tri; //如果不是叶子节点,则该数组存放被分割的三角形
//如果该节点是叶子节点,该数组存放的是局部空间内的三角形。
TreeNode* lchild;
TreeNode* rchild;
}
struct TreeNode
{
D3DXPLANE *optPlane; // 分割平面
bool isLeaf;
vector<int> overTri; // 在分割平面上的三角形
vector<int> Tri; //如果不是叶子节点,则该数组存放被分割的三角形
//如果该节点是叶子节点,该数组存放的是局部空间内的三角形。
TreeNode* lchild;
TreeNode* rchild;
}node; //错误出现在此
2://当一个.cpp文件中定义的变量想在另一个.cpp文件中使用的时候要加上extern 声明一下已经定义过了extern vector<D3DXPLANE> g_PlaneList;
extern vector<Triangle> g_TriList;
extern const float EPS = 1e-4;
posted @
2008-03-22 11:46 天书 阅读(276) |
评论 (0) |
编辑 收藏
1 #include <iterator>
2 #include <algorithm>
3
4 vector<D3DXPLANE> PlaneOfTri(vector<Triangle> TriCon)
5 {
6 vector<D3DXPLANE> Plane;
7 D3DXPLANE pOut;
8 for(int i = 0; i < TriCon.size(); i++)
9 {
10 D3DXPlaneFromPoints(&pOut, &TriCon[i].p0, &TriCon[i].p1,&TriCon[i].p2);
11
12 vector<D3DXPLANE>::iterator iter;//遍历器
13 iter = find(Plane.begin(), Plane.end(), pOut);//全局方法find的应用
14 if(iter == Plane.end())
15 {
16 break;
17 }
18 else
19 {
20 Plane.push_back(pOut);
21 }
22 }
23 return Plane;
24 }
25
posted @
2008-03-21 13:14 天书 阅读(155) |
评论 (0) |
编辑 收藏
今天开始正式启用博客,呵呵
posted @
2008-03-19 13:53 天书 阅读(123) |
评论 (0) |
编辑 收藏