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

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

boxPickNode <box2> [ crossing:<boolean> ] [ applyUIScaling:<true> ]

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

applyUIScaling パラメータは、高 DPI ディスプレイに UI スケールを適用するかどうかを示します。

例:

    boxPickNode (box2 [0,0] [1000,1000])
circlePickNode <box2> [ crossing:<boolean>] [ applyUIScaling:<true> ]

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

applyUIScaling パラメータは、高 DPI ディスプレイに UI スケールを適用するかどうかを示します。

例:

    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>] [ applyUIScaling:<true> ]

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

applyUIScaling パラメータは、高 DPI ディスプレイに UI スケールを適用するかどうかを示します。