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 天書 閱讀(183) |
評論 (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 天書 閱讀(281) |
評論 (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 天書 閱讀(160) |
評論 (0) |
編輯 收藏
今天開始正式啟用博客,呵呵
posted @
2008-03-19 13:53 天書 閱讀(126) |
評論 (0) |
編輯 收藏