QD3D 65 - メッシュ辺構造体は 2 つを超える面を持てない (更新日: 97年 7 月 11 日)
Q:
私はアプリケーションでメッシュジオメトリを使っています。3 つの面に接する辺を作ることはできますか。
A:
できません。メッシュ辺構造体は 2 つのメッシュ頂点と 2 つのメッシュ面を持ちます (どちらかの面が空でもかまいません)。ですから、メッシュ辺構造体は 2 つより多くの面を持つことはできません。メッシュ自体は、2 つの頂点間に 2 つより多くの面を持つことはできますが、これは頂点構造体に対して複数の辺構造体を添付することによって実現します。ですから、各辺構造体がそれに隣接して持てるのはやはり 2 つの面なのです。メッシュ保守関数 (mesh bookkeeping function) は隣接面を管理しますが、すべてのこうした平行な辺構造体のすべての面を返す API はなく、同じ頂点を探すループを自分で作って処理しなければなりません。
一般的に、メッシュは 1 つの辺について最大 2 面を持つ場合に最適化されているので、そのように使うことをおすすめします。ご質問のケースのように構造体を使用することはできますが、API で簡単に情報を引き出すことはできません。(例えば、Q3Mesh_GetEdgeFaces() は、辺構造体ごとに 2 つの面しか返すことができず、他の平行な辺構造体は自分で調べる必要があります。)
----------------------------------------------------------------------------
-- Scott Kuechle
devsupport@apple.com
[ Technical Q&A's : Graphics & Media : QuickDraw 3D [QD3D] : : QD3D 65 ]
|