最初 の交差だけを取得するには、intersectを使用します。
int intersect_all(<geometry>geometry, string group, vector orig, vector dir, vector &pos[], int &prim[], vector &uvw[], float tol=0.01, float ttol=0.01 )
<geometry>
ノード(例えばWrangle SOP)のコンテキスト内で実行する時は、この引数にジオメトリの読み込み元の入力番号(0から始まります)を意味する整数を指定することができます。
別の方法として、読み込み元のジオメトリファイル(例えば、.bgeo
)を示した文字列を指定することができます。
Houdini内で実行する時は、この引数にop:/path/to/sop
参照を指定することができます。
group
グループを指定すると、このグループ内のプリミティブのみの交差を計算します。
orig
光線の原点。
dir
光線の方向と 最大距離 。 この関数は、正規化された方向ベクトルを必要としません。 代わりに、そのベクトル長を検索の最大距離として使用します。
&pos
この関数は、光線が当たった各ワールド空間位置をこの配列に上書きします。
&prim
この関数は、光線が当たった各プリミティブ番号をこの配列に上書きします。
&uvw
この関数は、光線が当たった各交差のパラメトリックUVW座標をこの配列に上書きします。
tol
, ttol
tol
は3D許容値です。ttol
は光線許容値です。
このパラメトリック光線許容値ttol
内の衝突ポイントが結合されて、ジオメトリのエッジに当たった時に発生する余計な交点を回避することができるので、役に立つことが多いです。
結合せずに すべての 交差を取得するには、ttol
を-1
に設定します。
Returns
交差の数を返します。光線が当たらなかった場合は0
を返します。
Note
交差計算をメタボールジオメトリに対して実行すると、光線が当たった時のメタボールのプリミティブ番号を決めることができません。 この場合では、交差ジオメトリのプリミティブの数を返します。
See also | |
intersect | |
ray |