標準的な単純化の 1 つは、最初に、軸に沿った境界ボックスを使用しておおよその八分木と四面体の交点を計算することです。結果として得られる交差テストは非常に単純です。
次に、ツリーのリーフ レベルまで移動したら、正確なテストを使用して、特定の四面体に含まれるポイントを特定できます。
要約すると:
Form an octree T for your points X
for (all tetrahedrons ti in mesh M)
Form a minimal axis-aligned bounding-box Bi for tetrahedron ti
Traverse T from root, accumulating a list Li of all leaf nodes
that overlap with box Bi
for (all leaf nodes li in list L)
for (all points pi in leaf node li)
if (point pi is inside tetrahedron ti /*exact test*/ )
Associate point pi with tetrahedron ti
endif
endfor
endfor
endfor
このアルゴリズムは、次(i)の場合に効率的です: ポイントXがメッシュ内に適切に分散されてMおり(ii)、四面体のMアスペクト比が適切である。
優れたパフォーマンスを達成するための鍵は、ツリー トラバーサル ステップをできるだけ効率的に実装することです。
四面体内の点テストは、特定の点piが四面体の 4 つの面の「内側」側にあるかどうかをチェックすることによって実行できます。四面体が与えられた場合、点が面の「反対側」の頂点と同じ側にある場合[i,j,k,l]、点piは面の「内側」側にあります。[i,j,k][i,j,k]l
これらの方向テストは、適応精度演算を使用して確実に実行できます。Jonathan Shewchuk は、そのような実装をここで提供しています。