あなたの例は、計算幾何学者が「配置」と呼ぶ特別なケースです。CGAL ライブラリには、広範かつ効率的な配置処理ルーチンがあります。ドキュメントのこの部分を確認すると、空の配置を宣言してから、三角形を挿入して 2 次元平面をばらばらの面に分割できることがわかります。他の人が言ったように、まだ三角形ではない面を三角測量する必要があります。幸いなことに、CGAL には、これを行うためのルーチンも用意されています。 この制約付き Delaunay 三角形分割の例は、開始するのに適した場所です。
CGAL は、実装が実用的で利用可能な最も効率的なアルゴリズムを使用しようとします。この場合、O((n + k) log n) を n 個のエッジ (この場合は三角形の数の 3 倍) と k 個の交差点を持つ配置で達成できるように見えます。アルゴリズムは「スイープライン」と呼ばれる一般的な手法を用いています。垂直線は、途中で計算および処理された「イベント」で左から右にスイープされます。イベントは、エッジの端点と交差点です。各イベントが処理されると、配置のセルが更新されます。
Delaunay アルゴリズムは通常、n 個の頂点に対して O(n log n) です。いくつかの一般的なアルゴリズムがあり、簡単に調べたり、CGAL リファレンスで見つけることができます。
仕事で CGAL を使用できない場合でも (たとえば、ライセンス上の理由で)、ドキュメンテーションには基礎となるアルゴリズムに関する情報源がたくさんあります: アレンジメントと制約付き Delaunay アルゴリズムです。
ただし、配列と三角測量の両方が、浮動小数点エラーのために正しく実装するのが難しいことで知られていることに注意してください。堅牢なバージョンは、有理数演算 (CGAL で利用可能) に依存することがよくあります。