半邊數據結構
概述
半邊結構
上圖就是一個半邊結構表示的網格實例。半邊數據結構的基本元素有頂點,面和半邊(有向邊)。
- 每一個頂點存儲一個外向半邊(即該點爲半邊的起點);
- 每一個面存儲一個邊界半邊;
- 每一個半邊包含以下指針(句柄):
1, 終點;
2, 屬於的面;
3, 所在面的下一條半邊(逆時針方向);
4, 相反的半邊;
5, (可選)所在面的上一條半邊。
優點:
- It is easy to mix faces of arbitrary vertex count in one mesh;
- 有了點,邊,面的顯示錶示,可以很容易存儲關於點、邊、面的用戶自定義或者OpenMesh預定義的數據在裏面,OpenMesh在設計上提供了這樣的便利,比如我們想在每一個點上加一個權重,只要增加一個權重成員變量即可;
- 很容易通過循環器得到某一個頂點的1-ring領域,而不需要類似於基於面的結構中的分支判斷語句。
S. Campagna, L. Kobbelt, H.-P. Seidel, Directed Edges - A Scalable Representation For Triangle Meshes, ACM Journal of Graphics Tools 3 (4), 1998.
Lutz Kettner, Using Generic Programming for Designing a Data Structure for Polyhedral Surfaces, in Proc. 14th Annual ACM Symp. on Computational Geometry, 1998.