OpenNurbs を使って、点のメッシュ(ポリゴン形状)への最接近点を求めるプログラムを作成しました。 以前紹介したPolygon_RayTrace と同様、ON_RTree を使用しています。 下記ソースにはメッシュへの最接近点を計算するクラス MeshClosestPoint と、それを動作させるサンプル関数が入っています。
サンプルプログラムは、Binary STL のメッシュファイルを入力すると、 メッシュのBoundingBox面上に点列を生成してその各点とメッシュとの最接近点を求めるような感じになってます。 なお、Binary STL を読み込みと計算速度の測定に自前ライブラリ(ONGEO : STL読み込み、 TTW : 計算速度測定)を使っています。 組み込みが面倒でしたら適宜ソース書き換えやコメントアウト等してください(TTWはTclに依存しているのでちょっと面倒かもしれない)。
ライセンス:Boostライセンス