半邊資料結構
簡介
用於模板引數的半邊資料結構或半邊資料結構(縮寫為 HalfedgeDS)被定義為一種以邊為中心的、能夠維護頂點、邊和麵的關聯資訊的資料結構,例如平面圖、多面體或其他嵌入在隨機維度的可定向二維曲面。每條邊都被分成兩個方向相反的半邊。每個半邊儲存一個關聯的面和一個關聯的頂點。每個面和每個頂點都儲存一個關聯的半邊。半邊資料結構的簡化版本可以消除一些資訊,例如面中的半邊指標或完全不儲存面。
半邊資料結構被定義為一種組合資料結構,幾何解釋是透過構建在半邊資料結構之上的類新增的。由於半邊資料結構被視為實現層,因此與直接實現半邊資料結構相比,可能更容易實現這些類。
半邊資料結構也可以顯示為四邊資料結構的變體之一。通常,不可定向的 2 流形可以用四邊資料表示,但此處的變體僅限於可定向的 2 流形。
示例程式
預設半邊資料結構
以下示例程式應用了預設半邊資料結構和裝飾器類。預設半邊資料結構實現了基於列表的表示。解釋了所有關聯和頂點的點型別。瑣碎的特徵類提供了為點實現的型別。該程式構建了一個迴圈,包括兩個半邊、一個頂點(Vertex)和兩個面(Face1 和 Face2),並驗證其有效性。

#include <CGAL/HalfedgeDS_default.h>
#include <CGAL/HalfedgeDS_decorator.h>
struct Traits { typedefint Point_2; };
typedef CGAL::HalfedgeDS_default<Traits> HDS1;
typedef CGAL::HalfedgeDS_decorator<HDS> Decorator1;
int main() {
HDS1 hds1;
Decorator1 decorator(hds1);
decorator.create_loop();
CGAL_assertion(decorator.is_valid());
return 0;
}
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP