インタフェース: nodeSelectionSet

[インタフェース](Interfaces) > [コア インタフェース](Core Interfaces) > [nodeSelectionSet]

 

   

コア インタフェース - クイック ナビゲーション

nodeSelectionSet Core Interface により、現在のノードを照会して、表示とレンダリングの UI コントロールの状態を判断するメソッドを提供します。3ds Max 2015 以降で使用可能です。

   

メソッド:

<boolean>nodeSelectionSet.getDisplayPropState <enum>propID <enum>condition 

    propID enums: {#DisplayProp_Transparent | #DisplayProp_Bone | #DisplayProp_FrozenWithMaterial | 
        #DisplayProp_Hidden | #DisplayProp_Frozen | #DisplayProp_Box | #DisplayProp_BackfaceCull | 
        #DisplayProp_AllEdges | #DisplayProp_BoneOnly | #DisplayProp_BoneAsLine | #DisplayProp_ShowTrajectory | 
        #DisplayProp_VertexTicks | #DisplayProp_IgnoreExtents | #DisplayProp_XRay} 

    condition enums: {#Cond_AnyChecked | #Cond_AnyUnchecked | #Cond_Indeterminate | #Cond_Enabled}


propID 列挙型引数で指定された表示プロパティに条件 emum 引数で指定された状態がある場合は True を返し、それ以外の場合は False を返します。

このメソッドが意味のある結果を返すには、有効なシーンの選択が必要になります。選択が空の場合、False の値が返されます。

#Cond_AnyChecked は、指定された表示プロパティで、選択したオブジェクトの少なくとも 1 つのチェックがオンの場合は True を返し、すべてのオブジェクト プロパティがオフの場合は False を返します。

#Cond_AnyUnchecked は、指定された表示プロパティで、選択したオブジェクトの少なくとも 1 つのチェックがオフの場合は True を返し、すべてのオブジェクト プロパティがオンの場合は False を返します。

#Cond_Indeterminate は、少なくとも 1 つのオブジェクトに他のオブジェクトとは異なる状態で指定された表示プロパティがある場合 True を返し、チェック ボックスがオンであるかオフであるかに関係なくすべてのオブジェクトが同じ状態の場合には False を返します。

#Cond_Enabled は、チェック ボックスが有効で、マウスを使用して設定できる場合に True を返し、現在の選択がすべてのオブジェクトに対するこのプロパティの設定をサポートしていないために、インタラクティブに設定できない場合 False を返します。

   

<void>nodeSelectionSet.setDisplayPropState <enum>propID <boolean>val 

    propID enums: {#DisplayProp_Transparent | #DisplayProp_Bone | #DisplayProp_FrozenWithMaterial | 
        #DisplayProp_Hidden | #DisplayProp_Frozen | #DisplayProp_Box | #DisplayProp_BackfaceCull | 
        #DisplayProp_AllEdges | #DisplayProp_BoneOnly | #DisplayProp_BoneAsLine | #DisplayProp_ShowTrajectory | 
        #DisplayProp_VertexTicks | #DisplayProp_IgnoreExtents | #DisplayProp_XRay}


1 つめの引数によって指定された表示プロパティの状態を 2 つめの引数で指定されたブール状態に設定します。

   

<boolean>nodeSelectionSet.getRenderPropState <enum>propID <enum>condition 

    propID enums: {#RenderProp_Renderable | #RenderProp_CastShadows | #RenderProp_ReceiveShadows | 
        #RenderProp_MotionBlur | #RenderProp_DisplayTexture | #RenderProp_InheritVisibility | #RenderProp_ColorVerts | 
        #RenderProp_ShadeColorVerts | #RenderProp_VelocityMotionBlur | #RenderProp_RenderOccluded | #RenderProp_CastCaustic | 
        #RenderProp_ReceiveCaustics | #RenderProp_ApplyAtmospherics | #RenderProp_CastGlobalIllumination | 
        #RenderProp_ReceiveGlobalIllumination | #RenderProp_InvisibleToCamera | #RenderProp_InvisibleToReflections} 

    condition enums: {#Cond_AnyChecked | #Cond_AnyUnchecked | #Cond_Indeterminate | #Cond_Enabled}


propID 列挙型引数で指定されたレンダリング プロパティに条件 emum 引数で指定された状態がある場合は True を返し、それ以外の場合は False を返します。

このメソッドが意味のある結果を返すには、有効なシーンの選択が必要になります。選択が空の場合、False の値が返されます。

#Cond_AnyChecked は、指定されたレンダリング プロパティで、選択したオブジェクトの少なくとも 1 つのチェックがオンの場合は True を返し、すべてのオブジェクト プロパティがオフの場合は False を返します。

#Cond_AnyUnchecked は、指定されたレンダリング プロパティで、選択したオブジェクトの少なくとも 1 つのチェックがオフの場合は True を返し、すべてのオブジェクト プロパティがオンの場合は False を返します。

#Cond_Indeterminate は、少なくとも 1 つのオブジェクトに他のオブジェクトとは異なる状態で指定されたレンダリング プロパティがある場合 True を返し、チェック ボックスがオンであるかオフであるかに関係なくすべてのオブジェクトが同じ状態の場合には False を返します。

#Cond_Enabled は、チェック ボックスが有効で、マウスを使用して設定できる場合に True を返し、現在の選択がすべてのオブジェクトに対するこのプロパティの設定をサポートしていないために、インタラクティブに設定できない場合 False を返します。

   

<void>nodeSelectionSet.setRenderPropState <enum>propID <boolean>val 

    propID enums: {#RenderProp_Renderable | #RenderProp_CastShadows | #RenderProp_ReceiveShadows | 
        #RenderProp_MotionBlur | #RenderProp_DisplayTexture | #RenderProp_InheritVisibility | #RenderProp_ColorVerts | 
        #RenderProp_ShadeColorVerts | #RenderProp_VelocityMotionBlur | #RenderProp_RenderOccluded | #RenderProp_CastCaustic | 
        #RenderProp_ReceiveCaustics | #RenderProp_ApplyAtmospherics | #RenderProp_CastGlobalIllumination | 
        #RenderProp_ReceiveGlobalIllumination | #RenderProp_InvisibleToCamera | #RenderProp_InvisibleToReflections}


1 つめの引数によって指定されたレンダリング プロパティの状態を 2 つめの引数で指定されたブール状態に設定します。

   

b = box()
--> $Box:Box001 @ [0.000000,0.000000,0.000000]
c = cylinder pos:[0,100,0]
--> $Cylinder:Cylinder001 @ [0.000000,100.000000,0.000000]
s = sphere pos:[100,0,0]
--> $Sphere:Sphere001 @ [100.000000,0.000000,0.000000]
b.vertexTicks = c.vertexTicks  = s.vertexTicks  = true
-->true
c.boxMode = true
-->true

--Check to see if the Display As Box property is checked in any of the objects:
nodeSelectionSet.getDisplayPropState #DisplayProp_Box #Cond_AnyChecked
-->false --because nothing is selected in the scene!
select #(b,c,s) --select all three objects
-->OK
nodeSelectionSet.getDisplayPropState #DisplayProp_Box #Cond_AnyChecked
-->true --because at least one of them has the Display As Box checked!
nodeSelectionSet.getDisplayPropState #DisplayProp_Box #Cond_Indeterminate
-->true --because some are checked and some are not
nodeSelectionSet.getDisplayPropState #DisplayProp_Box #Cond_AnyUnchecked
-->true --because two are unchecked
nodeSelectionSet.getDisplayPropState #DisplayProp_Box #Cond_Enabled
-->true --because the checkbox is enabled and can be set to another state with the mouse
c.boxMode = false --let's turn off the Box mode of the Cylinder 
-->false
nodeSelectionSet.getDisplayPropState #DisplayProp_Box #Cond_AnyChecked
-->false --now none of the three objects has the state checked. so we get false
nodeSelectionSet.getDisplayPropState #DisplayProp_Box #Cond_AnyUnchecked
-->false --same reason, all are checked!

--Now let's explore the Vertex Ticks display property:
nodeSelectionSet.getDisplayPropState #DisplayProp_VertexTicks  #Cond_AnyChecked
-->true --because the Vertex Ticks option of all three objects is checked
nodeSelectionSet.getDisplayPropState #DisplayProp_VertexTicks  #Cond_Indeterminate
-->false --the Vertex Ticks of all three objects are checked, so the checkbox is not indeterminate
nodeSelectionSet.getDisplayPropState #DisplayProp_VertexTicks #Cond_AnyUnchecked
-->false --the Vertex Ticks of all three objects are checked, ergo none is unchecked!

--Now let's explore the Renderable property:
nodeSelectionSet.getRenderPropState #RenderProp_Renderable #Cond_AnyChecked 
--true --right now all three objects are renderable
nodeSelectionSet.getRenderPropState #RenderProp_Renderable #Cond_AnyUnchecked 
--false --so of course none of them has the Renderable property unchecked...
nodeSelectionSet.getRenderPropState #RenderProp_Renderable  #Cond_Indeterminate
--false --that's why the checkbox is not intederminate, it is checked for all three
s.renderable = false --so let's uncheck the renderable property of the Sphere
-->false
nodeSelectionSet.getRenderPropState #RenderProp_Renderable #Cond_AnyUnchecked 
--true --now there is one property that is unchecked, so we get true as result!
nodeSelectionSet.getRenderPropState #RenderProp_Renderable  #Cond_Indeterminate
--true --and of course the checkbox would now be indeterminate

--finally, let's turn off the renderable property of all three objects
nodeSelectionSet.setRenderPropState #RenderProp_Renderable false 
-->OK
nodeSelectionSet.getRenderPropState #RenderProp_Renderable #Cond_AnyChecked 
-->false --we successfully unchecked the Renderable property of the current selection!