int [] pcfind(<geometry>geometry, string Pchannel, vector P, float radius, int maxpoints)
int [] pcfind(<geometry>geometry, string ptgroup, string Pchannel, vector P, float radius, int maxpoints)
int [] pcfind(<geometry>geometry, string Pchannel, vector P, float radius, int maxpoints, float &distances[])
int [] pcfind(<geometry>geometry, string ptgroup, string Pchannel, vector P, float radius, int maxpoints, float &distances[])
<geometry>
ノード(例えばWrangle SOP)のコンテキスト内で実行する時は、この引数にジオメトリの読み込み元の入力番号(0から始まります)を意味する整数を指定することができます。
別の方法として、読み込み元のジオメトリファイル(例えば、.bgeo
)を示した文字列を指定することができます。
Houdini内で実行する時は、この引数にop:/path/to/sop
参照を指定することができます。
これらの関数は、ジオメトリファイルを開き、Pchannelで見つかったポイント位置からradius以内にあるP位置のポイントのリストを返します。
指定した半径内にあるmaxpoints個までの最近接ポイントのみが返されます。
filename
にop:
構文を使用すれば、OPコンテキスト内のSOPジオメトリを参照することができます。
Pchannelパラメータは、検索される位置を含むアトリビュートを意味します。
ptgroup
は、検索するポイントを制限するためのポイントグループです。
これは、SOP形式のグループパターンなので、0-10
や@Cd.x>0.5
のようなパターンを使うことができます。
空っぽの文字列は、すべてのポイントと見なします。
他にも、この関数は、オプションでfloat配列のdistances
を指定することができ、その配列に各ポイントまでの距離が入ります。
戻りの配列の0番目のエントリーには、一番近いポイントが入ります。その他のポイントは距離が短い順でソートされます。
Examples ¶
近接ポイントの検索:
int closept[] = pcfind(filename, "P", P, maxdistance, maxpoints); P = 0; foreach (int ptnum; closept) { vector closepos = point(filename, "P", ptnum); P += closepos; } P /= len(closept);
See also | |
proximity | |
ptcloud |
|