領域によるシーン ノードの選択

次のメソッドでは、ビューポート内の位置に基づいて 1 つ以上のオブジェクトを選択できます。これらのメソッドで使用されているすべての座標はウィンドウ フォーマットで、起点は左上に置かれます。 gw.getWinSizeX() および gw.getWinSizeY() メソッドを使用すると、ビューポートのサイズをピクセル単位で決定できます。選択するオブジェクトは、3ds Max メイン ツールバーで指定された[選択フィルタ](Selection Filter)に基づいてフィルタされます。

   

boxPickNode <box2> [		crossing:<boolean>] 	 

指定された矩形領域内のノードの配列を返します。 <box2> 値は、アクティブなビューポート内のコーナーをピクセル値で指定します。 crossing: パラメータ値が true の場合、領域内の一部分だけでオブジェクトを選択します。 false の場合は、領域内全体でオブジェクトを選択する必要があります。 crossing: の既定値は true です。

例:

boxPickNode (box2 [0,0] [1000,1000])

   

circlePickNode <box2> [	 crossing:<boolean>]   

指定された円形領域内のノードの配列を返します。 <box2> 値は、アクティブなビューポート内の円の中心と円上のポイントをピクセル値で指定します。 crossing: パラメータ値が true の場合、領域内の一部分だけでオブジェクトを選択します。 false の場合は、領域内全体でオブジェクトを選択する必要があります。 crossing: の既定値は true です。box2 パラメータ値の [left, bottom] および [right, top] コンポーネントは、それぞれ中心の位置と半径の位置に対応します。box2 パラメータ値は、次のスクリプトに示す特別な方法で設定します。

例:

vpCenter = (point2 (gw.getWinSizeX()) (gw.getWinSizeY()))/2
vpQuarter = point2 (vpCenter.x/2) vpCenter.y
circleRegion = box2 0 0 0 0 -- initialize circleRegion to a box2 value
circleRegion.left = vpCenter.x -- the center of the circle
circleRegion.bottom = vpCenter.y
circleRegion.right = vpCenter.x/2 -- a point on the circle
circleRegion.top = vpCenter.y
for obj in (circlePickNode circleRegion crossing:false) do
print obj.name

これは円形領域内全体のすべてのノード名を出力します。ここで円の中心はビューポートの中心であり、円上のポイントはエッジからビューポートの中心までの距離の 1/4 の場所に配置されます。

   

fencePickNode <point2_array> [  crossing:<boolean>] 

指定された範囲内のノードの配列を返します。範囲は point2 の値の配列によって定義されます。 crossing: の既定値は true です。

関連事項