四面体がすべてばらばらであるが、互いに「接触」している四面体メッシュのポイント位置の証明されたデータ構造はありますか? つまり、ほとんどの面はちょうど 2 つの四面体の面です。
場所とは、特定の点がどの四面体にあるか、またはどの四面体にもないかを調べたいということです。
これまでのところ、私は試しました:
シンプルな KD ツリー。平均的な木の深さが非常に高く、各葉でテストする個々の四面体がまだたくさんあったため、これは私のニーズには遅すぎました。
各セルの交差するすべての四面体を含むグリッド。これはかなりうまく機能しているように見えますが、まだ十分な速さではありませんでした。まず、メッシュ全体があまり「箱型」ではないため、グリッドに空のセルが多数含まれていました。第二に、実際に四面体を含むほとんどのセルには、多くの四面体 (10 以上) が含まれていました。これは、多くの四面体がすべての頂点を共有しているためであり、頂点がセル内にあるとすぐに、隣接するすべての四面体も共有されるためだと思います。
入力データに関するその他の情報: 通常、メッシュは凸状ではなく、穴や含有物がある場合があります。最後の 2 つはややありそうにありませんが、それらに対処する必要があります。これにより、(高価で複雑な?) 前処理なしでは「歩く」ことができなくなります。