CGAL功能大綱


算術與代數Arithmetic and Algebra

主要提供了計算幾何用到的數學基礎:數據類型、多項式、數據結構與算法

  • 代數基礎Algebraic Foundations

這個包從概念、類和函數的角度定義了代數對CGAL的意義。

  • 數據類型Number Types

這個包為第三方數據類型庫提供數據類型概念以及數據類型類和包裝器類。

  • 模運算Modular Arithmetic

這個包提供了有限域的算法。所提供的工具對於基於模塊化算法的過濾器和基於余數的算法尤其有用。

  • 多項式Polynomial

這個包介紹了單變量多項式和多變量多項式的概念。雖然這個概念是為任意數量的變量編寫的,但是對於這個概念的特定模型,變量的數量被認為是固定的。

  • 代數框架Algebraic Kernel

解多項式的實解是一個應用范圍很廣的基本問題。這個包的目標是提供最先進算法的黑盒實現,以逼近或近似的求解出單變量多項式和雙變量多項式的真實根。這種黑盒稱為代數框架。到目前為止,這個包只提供了單變量內核的模型。盡管如此,它已經定義了雙變量內核的概念,因為這解決了即將實現的接口問題。

組合算法Combinatorial Algorithms

主要講述計算幾何用到的數學基礎:矩陣搜索、線性和二次規划求解器

  • 單調有序矩陣搜索Monotone and Sorted Matrix Search

這個包提供了一個矩陣搜索框架,它是計算凸多邊形頂點的所有最遠鄰居、內接到平面點集的最大k-gons和計算矩形p中心的基礎技術。

  • 線性和二次規划求解器Linear and Quadratic Programming Solver

這個包提供了最小化線性和凸二次函數在多面域的算法,由線性方程和不等式描述。算法是精確的,因為最終解是用多精度有理數來計算的。所得到的解決方案是經過驗證的,除了所考慮的問題具有最優解、不可行或無界外,算法還提供了這些事實的證明。這些證明可以很容易地(獨立於算法)檢查正確性。

幾何框架Geometry Kernels

主要講述計算幾何中如何表達幾何模型

  • 二維和三維線性幾何框架2D and 3D Linear Geometry Kernel

這個包提供了多個幾何框架,每個框架包含大小不變的對象,例如點、向量、方向、線、射線、段、圓以及這些對象的構造和操作。每個框架處理的健壯性問題不同。

  • 多維度幾何框架dD Geometry Kernel

多維度幾何框架包含大小恆定的對象,如多維度歐氏空間中的點、向量、方向、線、射線、段、圓等,以及這些對象的構造和操作。

  • 二維圓形幾何框架2D Circular Geometry Kernel

這個包是線性CGAL框架的擴展。它在平面上提供圓、圓弧和線段的功能。目標是為用戶提供平面上圓形和圓弧的大量功能。包里定義了計算圓弧和這些線段的排列所需的所有功能。為CGAL排列模塊提供了三個trait類。

  • 三維球形幾何框架3D Spherical Geometry Kernel

這個包是線性CGAL內核的擴展。它提供了在三維空間或限制在參考球面上的球面、圓、圓弧和線段的功能。目標是在三維空間或給定球面上,為用戶提供一組關於球面、圓和圓弧的函數。這些功能需要對數據進行計算,這將推動創建一個新的內核概念,擴展CGAL內核概念,該概念僅限於FieldNumberType中的對象和功能。

凸包算法Convex Hull Algorithms

主要講述二維、三維以及高維度模型的凸包算法

  • 二維凸包和極值點2D Convex Hulls and Extreme Points

這個包提供了計算二維凸殼的函數,以及檢查點集是否是強凸的函數。此外,還描述了一些用於計算船體點的特定極值點和子序列的函數,如一組點的上、下船體。

  • 三維凸包3D Convex Hulls

這個包提供了計算三維凸殼的函數,以及檢查點集是否是強凸的函數。可以用兩種方法在三維空間中計算一組點的凸包:靜態凸包構建算法和動態凸包構建。

  • 多維凸包和三角剖分dD Convex Hulls and Delaunay Triangulations

這個包提供了在多維度歐氏空間中計算凸殼和Delaunay三角的函數。

二維多邊形Polygons

主要講述二維多邊形相關概念和算法:二維多邊形正則布爾集運算、二維多邊形凸划分、多邊形緩沖區、二維直骨架、二維閔可夫斯基之和、二維多段線簡化、二維可視域計算、二維可移動性分析

  • 二維多邊形2D Polygons

這個包定義了二維多邊形類的基本概念和數據結構,提供了多邊形的構建,並提供了相關操作,比如邊界框、極值點、有符號區域、簡單性和凸性測試、方向和點位置。

  • 二維正則布爾集運算2D Regularized Boolean Set-Operations

這個包提供了在二維歐氏空間中對由弱x單調曲線約束的點集進行布爾集運算的實現。特別是,它包含了正則布爾集操作、交集謂詞和點包含謂詞的實現。

  • 二維布爾運算2D Boolean Operations on Nef Polygons

Nef多邊形是通過集合補和集合交運算從有限半空間集合中得到的任意集合。由於並集、差分和對稱差分等所有二元集合運算都可以簡化為求交和補的運算,所以Nef多邊形在這些運算下也是封閉的。除了集合補運算外,還有更多的拓撲一元集運算是在Nef多邊形的內部、邊界和閉包域中封閉的。

  • 對嵌在球面上的Nef多邊形進行二維布爾運算2D Boolean Operations on Nef Polygons Embedded on the Sphere

這個包提供了相當於平面上的二維Nef多邊形。這里的半平面相當於由大圓分隔的半球體。

  • 二維模型凸分解2D Polygon Partitioning

這個包提供了將多邊形划分為單調多邊形或凸多邊形的函數。該算法可以在多邊形數最少的情況下得到結果,也可以在凸塊數不超過最優凸塊數四倍的情況下得到近似結果,但它們在運行時的復雜性有所不同。

 

  • 二維直骨架與緩沖2D Straight Skeleton and Polygon Offsetting

這個包提供了構造一個表示二維帶孔多邊形內部直線骨架的halfedge數據結構,以及構造給定直線骨架的任意偏移距離的向內偏移多邊形。

[帶洞多邊形拓撲規定]一個有洞的二維多邊形稱之為外輪廓,在其有界區域內有零個或多個輪廓,稱為內輪廓或洞或孔。外輪廓的有界區域與內輪廓的無界區域的交點是帶孔多邊形的內部。孔的方向必須與外輪廓的方向相反,任何輪廓之間不能有交集。一個孔不能在任何其他孔的有界區域內。

 

2D Straight Skeleton                     2D Polygon Offsetting

 

  • 二維閔可夫斯基之和2D Minkowski Sums

這個包由計算平面上兩個簡單多邊形的閔可夫斯基和的函數組成。它還包含計算多邊形和圓盤的閔可夫斯基和的函數,這種操作稱為多邊形偏移或擴張。該包可以計算偏移多邊形的精確表示,或提供一個保證的近似偏移量。

 

  • 二維線簡化2D Polyline Simplification

這個包可以簡化折線,同時保證折線的拓撲結構不會改變。這可以用於單個折線,也可以用於約束三角剖分中的一組折線約束。簡化過程可以通過權重進行控制功能。

 

  • 二維可視域計算2D Visibility Computation

這個包提供了幾個變量來計算二維多邊形區域內一個點的可見面積。

    

  • 2D Movable Separability of Sets

集合的可動可分性是處理物體移動集合的問題,如平面上的多邊形,在考慮不同類型的運動和不同的分離定義時,如何避免物體之間的碰撞是一個難題。

 

 

復合體和多面體Cell Complexes and Polyhedra

主要講述三維多面體的數據結構:半邊結構、三角網表面、二維流向結構、閉合性、三維多邊形正則布爾集運算、三維多邊形凸划分、三維閔可夫斯基之和

  • 三維多面體表面3D Polyhedral Surface

三維多面體表面由頂點、邊、面片及其上的關聯關系組成。下面的組織是一個halfedge數據結構,它將可表示曲面類限制為可定向的2流形——有邊界和沒有邊界。如果曲面是閉合的,稱之為多面體。

    

  • 半邊結構Halfedge Data Structures

halfedge數據結構是以邊為中心的數據結構,能夠維護頂點、邊和面的關聯信息,例如平面地圖、多面體或嵌入任意維的其他可定向二維表面。每條邊分解成兩個方向相反的半棱。每個半網格中存儲一個入射面和一個入射頂點。對於每個面和每個頂點,存儲一個入射半邊緣。halfedge數據結構的簡化變體可以省略其中一些信息。

 

  • 表面網格Surface Mesh

這個包提供的曲面網格類是halfedge數據結構的一個實現,它允許表示多面體曲面。它是一個替代包Halfedge數據結構和三維多面體表面。主要的區別在於,它是基於索引而不是基於指針的,並且向頂點、半邊、邊和面添加信息的機制要簡單得多,可以在運行時使用,而不是在編譯時使用。

  • Combinatorial Maps ??

 

  • Generalized Maps ??

 

  • Linear Cell Complex ??

 

  • 布爾運算3D Boolean Operations on Nef Polyhedra

三維Nef多面體是一種以halfedge數據結構為界的復合體的邊界表示,它支持布爾運算和全通用性的拓撲運算,包括無界模型、混合維度模型(如孤立的頂點和天線)。Nef多面體區分開集和閉集,可以表示非流形幾何。

    

在實體建模中,使用了兩種主要的表示方案:構造實體幾何(CSG)和邊界表示(B-rep)。兩者都有優點和缺點。

在CSG中,實體表示為基本實體對象(如塊、棱鏡、柱面或環面)的布爾組合。對象用樹結構隱式表示,葉節點表示原始對象,內部節點表示布爾運算或剛性運動(如平移和旋轉)。在這種CSG樹上的算法首先評估基本對象上的屬性,然后使用樹結構推算結果。

B-rep描述實體邊界所有低維特征的入射結構和幾何性質。表面的朝向決定了固體的內部和外部。

CSG中可表示對象的類別通常受到基本實體選擇的限制。B-rep通常受限於邊緣支撐曲線幾何形狀和表面貼片支撐曲面幾何形狀的選擇,以及允許的連接性結構。特別是,B-rep在布爾集操作下並不總是關閉。例如,可定向2流形對象的類是B-reps常用的一類表面,這類表面很受歡迎,也很容易理解。它們可以被有效地表示和操作,數據結構在存儲大小上是緊湊的,許多算法是簡單的。另一方面,這個對象類在布爾集合操作下是不封閉的,很多例子都可以說明這一點,如上圖所示,它可以使用多維數據集上的布爾集合操作生成。包圍隧道的頂點,或連接"屋頂"與立方體的邊緣是非流形情況。

在3D Nef多面體實現中,提供了B-rep數據結構,它在布爾操作下是封閉的,並且具有通用性。可以從halfspaces (也可以直接從面向2-流形)開始,進行集並集、集交集、集差集、集補集、內、外、邊界、閉包和正則化操作。從本質上說,可以計算一個以halfspaces為基元的CSG樹,並將其轉換為B-rep表示。

實際上,CGAL使用的是兩種數據結構,它表示頂點的局部鄰域,本身就是一個完整的描述,以及一個數據結構,並將這些鄰域連接到具有邊edges、面facet和體volumes的全局數據結構。提供了豐富的接口來研究這些數據結構、它們的不同元素及其連接性。提供了仿射(剛性)轉換和點位置查詢操作。提供了一個自定義的文件格式,用於存儲和讀取文件中的Nef多面體。

  • 三維模型凸分解Convex Decomposition of Polyhedra

這個包提供了一個將有界多面體分解為凸子多面體的函數。分解得到O(r2)凸塊,其中r為邊數,其相鄰面相對於多面體內部形成180度以上的角度。這個界限是最壞情況下最優的。

 

  • 三維閔可夫斯基之和3D Minkowski Sum of Polyhedra

這個包提供了一個函數,它計算R3中兩個點集的閔可夫斯基之和。這些點集可以由孤立的頂點、孤立的邊、沒有孔的凸面和開閉固體組成。因此,可以計算平移機器人的配置空間(即使是在狹窄的通道場景中)以及一些圖形操作,例如滑翔操作,它計算沿多邊形線移動的多面體掃過的點集。

 

排列Arrangements

這個模塊提供了空間排列的方法,使得能夠快速查找定位

  • 二維排列2D Arrangements

此包可用於構造、維護、更改和顯示平面中的排列。一旦構建了排列,就可以使用這個包來獲得關於該排列的各種查詢的結果,例如點位置。該包還包括兩個算法框架的通用實現,即計算一個排列的區域和在平面上掃線,排列是嵌入的。這些框架依次用於排列上的其他操作的實現。例如,計算兩種排列的疊加是基於掃描線框架的。還可以擴展排列和排利組件來存儲額外的數據。一個重要的擴展存儲了布局的構造歷史,這樣就可以獲得布局子曲線的原始曲線。

 

  • 二維相交曲線2D Intersection of Curves

這個包提供了三個基於掃描線范例實現的免費功能:給定一組輸入曲線,計算所有交集點;計算出相交與相離的子曲線,並檢查是否有至少其中一條曲線相交在內部。

  • 二維網格對其2D Snap Rounding

單元四舍五入是一種將任意精度的分段排列轉換為固定精度表示的方法。在健壯性幾何計算的研究中,它可分為一種有限精度逼近技術。迭代單元四舍五入是單元四舍五入的一種修改,其中每個頂點與任何非關聯邊之間的距離至少為0.5像素。這個包支持這兩種方法。

 

  • 二維輪廓2D Envelopes

這個包由一些函數組成,這些函數在二維中計算一組任意曲線的下(或上)包絡線。輸出用包絡圖表示,即將x軸細分為區間,這樣在每個區間上誘導包絡線的曲線的恆等式就是唯一的。

 

  • 三維輪廓3D Envelopes

這個包由計算一組任意曲面的三維上(或下)包絡線的函數組成。輸出被表示為一個二維包絡圖,也就是一個平面細分,使得在每個圖單元上對應包絡線的表面的標識是唯一的。

    

 

三角化Triangulations and Delaunay Triangulations

這個模塊主要提供二維、三維以及高維度數據三角剖分的函數

  • 二維三角剖分2D Triangulation

這個包允許構建和處理二維點集的各種三角關系。任何CGAL三角剖分都覆蓋其頂點的凸包。三角形是增量構建的,可以通過插入或刪除頂點進行修改。包提供了簡單的三角剖分(其面取決於頂點的插入順序)和Delaunay三角剖分。還提供了加權點集的規則(Regular)三角剖分。Delaunay和規則三角剖分提供了最近鄰查詢和構建雙Voronoi和power圖。最后,約束三角剖分和Delaunay約束三角剖分允許強制一些約束段作為三角形的邊緣出現。提供了幾個版本的約束三角剖分和Delaunay約束三角剖分:其中一些處理輸入約束段之間的交集,而另一些則不處理。

  • 二維三角剖分數據結構2D Triangulation Data Structure

這個包提供了一個數據結構來存儲具有二維球面拓撲結構的二維三角剖分。包充當三角剖分頂點和面的容器,並提供三角剖分的基本組合操作。

  • 二維周期性三角剖分2D Periodic Triangulations

這個包允許在二維平面環面上構建和處理點集的三角關系。三角形是增量構建的,可以通過插入或刪除頂點進行修改。他們提供點位設施。該包提供了Delaunay三角剖分,並提供了構建雙Voronoi圖的最近鄰查詢和原語。

  • 三維三角剖分3D Triangulations

這個包允許構建和處理三維點集的三角關系。任何CGAL三角剖分都覆蓋其頂點的凸包。三角形是增量構建的,可以通過插入、位移或刪除頂點來修改。他們提供點位設施。包提供了簡單的三角剖分(其面取決於頂點的插入順序)和Delaunay三角剖分。還提供了加權點集的規則三角剖分。Delaunay和規則三角剖分提供了最近鄰查詢和原語來構建雙Voronoi和power圖。此外,主要的Delaunay和常規三角剖分算法(插入、刪除)支持多核共享內存架構,以利用可用的並行性。

  • 三維三角剖分數據結構3D Triangulation Data Structure

這個包提供了一個數據結構來存儲具有三維球體拓撲結構的三維三角剖分。包充當三角剖分頂點和單元格的容器,並提供三角剖分的基本組合操作。

  • 三維周期性三角剖分3D Periodic Triangulations

這個包允許在三維平面環面上構建和處理點集的三角關系。三角形是增量構建的,可以通過插入或刪除頂點進行修改。他們提供點位設施。該包提供Delaunay和常規三角剖分,並提供最近鄰查詢和原語來構建雙Voronoi圖。

  • 多維度三角剖分dD Triangulations

這個包提供了在歐幾里得空間中操作三角函數(純單純復合體)的類,這些類的維數可以在編譯時或運行時指定。具體來說,它提供了一個數據結構來存儲三角形,以及兩個類來處理點集的三角化和Delaunay三角剖分。支持點定位和點插入。Delaunay三角剖分也支持點刪除。

  • 二維2D Alpha Shapes

假設有一組二維或三維的點,我們希望得到"這些點形成的形狀"。這是相當模糊的概念,有許多可能的解釋,α-shape是其中之一。Alpha形狀可用於從密集的無組織數據點集進行形狀重建。事實上,α-shape划定的邊界,這是一個線性近似的原始形狀。

這個包提供了一個數據結構,它編碼了與給定的2D Delaunay或規則三角剖分相關的所有alpha復合體。特別是該數據結構允許檢索任意alpha值的alpha復合體、關鍵alpha值的整個頻譜以及三角剖分面上的篩選。

  • 三維3D Alpha Shapes

這個包提供了一個數據結構,可以編碼一個字母復合體,也可以編碼與給定的3D Delaunay或規則三角剖分相關的整個字母復合體系列。在后一種情況下,數據結構允許檢索任意alpha值的alpha復合體、關鍵alpha值的整個頻譜以及三角剖分面上的篩選。

泰森多邊形Voronoi Diagrams

此模塊提供了泰森多邊形的構建和應用

  • 二維段Delaunay 圖2D Segment Delaunay Graphs

這個包用於計算平面上一組可能相交的段的Delaunay圖,提供了一種在歐幾里得度量下計算一組段的Voronoi圖對偶的算法。它是點的標准Voronoi圖的推廣。所提供的算法是動態增量的。

  • 無窮Delaunay 圖L Infinity Segment Delaunay Graphs

計算算法和幾何特征的雙重泰森多邊形法圖的一組點和下段L 指標。

  • 二維Apollonius圖(Delaunay圓盤圖)2D Apollonius Graphs (Delaunay Graphs of Disks)

計算二維Apollonius圖的算法。Apollonius graph是Apollonius diagram的對偶圖,也被稱為加性加權Voronoi diagram。后者可以看作是歐幾里得度量下的一組圓盤的Voronoi圖,是點的標准Voronoi圖的推廣。所提供的算法是動態的。

  • 二維Voronoi圖適配器2D Voronoi Diagram Adaptor

2D Voronoi圖適配器包提供了一個適配器,該適配器將二維三角化的Delaunay圖轉換為相應的Voronoi圖,表示為雙連通邊緣列表(DCEL)數據結構。適配器能夠以一致的方式自動消除Voronoi圖的退化特征,這些特征是要求Delaunay圖即使在退化配置中也應該三角化的工件。根據底層Delaunay圖支持的操作類型,適配器允許增量或動態構建Voronoi圖,並支持點位置查詢。

網格生成Mesh Generation

此模塊包含了模型網格生成構建的方法

  • 二維三角化和網格2D Conforming Triangulations and Meshes

這個包實現了一個Delaunay細分算法來構造符合要求的三角化二維網格。細化約束邊,得到符合條件的Delaunay三角形。通過進一步細化約束邊得到符合的Gabriel三角形,直到它們成為Gabriel三角形。該包還提供了一個2D網格生成器,用於細化三角形和約束邊,直到滿足用戶定義的三角形大小和形狀標准。生成的網格可以使用Lloyd算法進行優化,該算法也在這個包中提供。該包可以處理交叉輸入約束,並且不限制共享端點的兩個約束形成的角度。

如果三角剖分的結果是任意一個三角形組成的外接圓內部不包含其他頂點,則稱之為一個Delaunay三角剖分。受約束的Delaunay三角剖分的任意面圍成的圓在其內部不包含從該面可見的數據點。

如果一條邊內切成一個空圓(其內部不包含任何數據點),則稱其為Delaunay邊。如果直徑圓為空,則稱這條邊為Gabriel邊。

如果每個約束邊都是Delaunay邊,則約束Delaunay三角剖分就稱為符合條件的Delaunay三角剖分。因為約束Delaunay三角剖分中的任意一條邊要么是Delaunay邊,要么是約束邊,所以符合條件的Delaunay三角剖分實際上就是Delaunay三角剖分。唯一的區別是一些邊被標記為受約束的邊。

如果每個有約束的邊都是Gabriel邊,則一個有約束的Delaunay三角剖分也被稱為符合Gabriel三角剖分。Gabriel性質強於Delaunay性質,每條Gabriel邊都是Delaunay邊。因此,符合Gabriel三角關系也就符合Delaunay三角關系。

任何有約束的Delaunay三角剖分都可以被細化為符合Delaunay三角剖分或者符合Gabriel三角剖分,方法是在有約束的邊上添加頂點,稱為Steiner頂點,直到它們被分解成足夠小的子約束,成為Delaunay或Gabriel邊。

  • 三維表面生成3D Surface Mesh Generation

這個包提供了一些生成插值光滑表面的曲面網格的函數。該網格划分算法是基於Delaunay精細化算法,對生成的網格提供了一定的保證:用戶可以控制網格元素的大小和形狀,以及曲面逼近的精度。輸入表面的拓撲結構和組件數量沒有限制。表面網格發生器也可用於非光滑表面,但沒有保證。目前,隱式曲面描述為一些函數的零水平集,曲面描述為三維圖像中的灰度水平集。

  • 三維表面網格構建3D Skin Surface Meshing

這個包允許建立一個表面的三角形網格。表面用於生物計算中的大分子建模。表面是由一組球來定義的,這些球代表分子的原子,而收縮因子決定了將這些球粘在一起的光滑斑塊的大小。為了進一步分析和快速可視化,光滑皮膚表面的三角形網格的構造通常是必要的。這個包提供了一些函數來構造一個三角形網格,該網格從一組球和一個收縮因子來近似皮膚表面。它還包含有效細分網格的代碼。

 

  • 三維網格生成3D Mesh Generation

這個包致力於生成離散三維域的各向同性單純網格。要網格化的域是一個必須有界的三維空間區域。該區域可以連接或由多個組件或細分在幾個子域中。域作為輸入,能夠回答域上的一些不同類型的查詢。邊界和細分曲面或光滑或分段光滑,由平面或曲面斑塊形成。表面可能表現出一維特征(如折痕邊緣)和零維特征(如作為角尖、尖端或飛鏢的奇異點),這些特征在網格中必須相當近似。此外,這些算法還支持多核共享內存架構,以利用可用的並行性。

  • 三維規律性網格生成3D Periodic Mesh Generation

這個包致力於生成離散周期性三維域的各向同性單純網格。擬網格域是三維平面環面的一個區域。周期性網格生成器為用戶提供了與3D網格生成包相同的靈活性。

 

形狀重構Shape Reconstruction

此模塊提供了幾種模型形狀構建的方法。

  • 泊松表面重建Poisson Surface Reconstruction

這個包實現了一個曲面重建方法:泊松曲面重建。它以一組有向法線的點作為輸入,並計算一個隱式函數。然后可以使用CGAL表面網格生成器從這個函數中提取等值面。

 

  • 尺度空間表面重建Scale-Space Surface Reconstruction

這種方法允許重建一個表面插值一組三維點使用和alpha形狀或前進的前表面重建方法。輸出插值點集(與近似點集相反)。表面如何連接這些點取決於一個比例變量,它可以半自動地估計。

 

  • 推進前表面重建Advancing Front Surface Reconstruction

這個包提供了一個貪婪的算法,從一個無組織的點集重建曲面。首先添加最可信的三角形,避免拓撲奇點的出現。

  • Optimal Transportation Curve Reconstruction

這個程序包提供了一種算法,可以從平面上的一個點集重構和簡化形狀,該點集可能受到噪聲和異常值的影響。它生成一組線段和孤立點的輸出,這些線段和孤立點近似於輸入點集。

 

模型處理Geometry Processing

  • 網格處理Polygon Mesh Processing

這個包提供了多邊形網格處理的方法和類的集合,從簡單的基本操作到復雜的幾何處理算法。

  • 表面細分3D Surface Subdivision Methods

細分方法遞歸地細化控制網格,生成逼近極限曲面的點。這個包由四種常用的細分方法及其細化主機組成。支持包括Catmull-Clark細分方法,循環,Doo-Sabin和根號3細分。

 

  • 網格分區Triangulated Surface Mesh Segmentation

這個程序包提供了一種生成三角曲面網格分割的方法。該算法首先計算所有切面的形狀直徑函數(SDF),並在這些值上應用基於圖形切割的算法。提供了低級函數來用自定義步驟替換任何中間步驟。

 

  • 網格簡化Triangulated Surface Mesh Simplification

這個程序包提供了一種通過折疊邊來簡化三角曲面網格的算法。它是Turk/Lindstrom無記憶曲面網格簡化算法的實現。

 

  • 網格變形Triangulated Surface Mesh Deformation

這個包提供了曲面網格變形算法,該算法在一些頂點的位置約束下為曲面網格的頂點提供新的位置,而不需要除了曲面網格本身之外的任何其他結構。

 

  • 網格參數化Triangulated Surface Mesh Parameterization

對曲面進行參數化就等於找到從合適的域到曲面的一對一映射。在這個包中,我們主要關注與同態的三角曲面,以及到平面域的分段線性映射。該包實現了幾種表面網格參數化方法,如剛性參數化、離散自適應參數化、離散保角映射、浮點均值坐標、最小二乘保角映射、Orbifold Tutte嵌入或Tutte重心映射。該代碼是通用的,適用於FaceGraph概念的任何模型。

  • 網格上最短路徑Triangulated Surface Mesh Shortest Paths

該軟件包提供了在三角曲面網格上計算測地線最短路徑的方法。所使用的算法是基於Xin和Wang的一篇論文。這個包的輸入可以是FaceListGraph概念的任何模型。

  • 網格骨架化Triangulated Surface Mesh Skeletonization

該包提供了一種基於平均曲率流的無邊界三角多邊形網格的(1D)曲線骨架提取算法。該框架的特殊性在於它捕獲了輸入的拓撲結構。對於每個骨架頂點,可以從輸入網格中獲取其位置和對應的頂點。該代碼是通用的,適用於FaceListGraph概念的任何模型。

 

  • Approximation of Ridges and Umbilics on Triangulated Surface Meshes ??

 

  • Estimation of Local Differential Properties of Point-Sampled Surfaces ??

 

  • 點雲3D Point Set

該組件為用戶提供了靈活的三維點集數據結構。用戶可以定義任何需要的附加屬性,如法向量、顏色或標簽。CGAL算法可以很容易地應用於這種數據結構。

  • 點雲處理Point Set Processing

這個CGAL組件實現了分析和處理無組織點集的方法。輸入是一個無組織的點集,可能具有常規屬性(無方向的或有方向的)。對點集進行分析,測量其平均間距,並通過簡化、離群點去除、平滑、法向估計、法向方向和特征邊緣估計等函數進行處理。

 

  • 點雲形狀檢測Point Set Shape Detection

該組件實現了兩種基本的形狀檢測算法:有效的RANSAC算法和區域增長算法。平面是用無向法線的點集來檢測的。RANSAC還處理以下形狀:球體、圓柱、圓錐和圓環。可以通過實現從基形狀類派生的類來檢測其他類型的形狀。

 

  • 2D Placement of Streamlines ??

 

  • 分類Classification

該組件實現了一種算法,該算法將數據集分類為用戶定義的一組標簽(如地面、植被、建築物等)。提供了一個靈活的API,用戶可以對任何類型的數據進行分類,計算輸入數據集上自己的本地特性,並定義自己的標簽。

 

 

//……

空間查找與分類Spatial Searching and Sorting

 

  • 二維排列與臨近查找2D Range and Neighbor Search

 

  • Interval Skip List

 

  • 多維度空間查找dD Spatial Searching

 

  • 多維度排列和區域樹dD Range and Segment Trees

 

  • Intersecting Sequences of dD Iso-oriented Boxes

 

  • 3D Fast Intersection and Distance Computation

 

  • Spatial Sorting

 

Geometric Optimization

 

  • Bounding Volumes

 

  • Inscribed Areas

 

  • Optimal Distances

 

  • Principal Component Analysis

 

Interpolation

 

  • 2D and Surface Function Interpolation

 

  • 2D Generalized Barycentric Coordinates


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM