ICECompoundNode

Object Hierarchy | 関連する C++クラス:ICECompoundNode

継承

SIObject

ProjectItem

ICENode

ICENodeContainer

ICECompoundNode

導入

v7.0

詳細

ICECompoundNode オブジェクトは、ICECompoundNodeICEDataProviderNode などのその他の ICENode オブジェクトを含むノードサブグラフを表します。ICECompoundNode は、入力ポートおよび出力ポートを持つ基本的なICENode のようなものです。注:ICETree オブジェクトは、ICECompoundNode サブグラフの一部にすることはできません。

メソッド

AddCustomOp AddICEAttribute AddScriptedOp AddScriptedOpFromFile
AnimatedParameters2 BelongsToオペレータ EvaluateAt GetGroupInstanceCount
GetICEAttributeFromName GetPortCount GetPortFromIndex GetPortFromIndex2
GetPortFromName GetPortFromName2 IsA IsAnimated2
IsClassOfオペレータ IsEqualToオペレータ IsKindOf IsLockedオペレータ
IsSelectedオペレータ LockOwners RemoveICEAttribute SetAsSelectedオペレータ
SetCapabilityFlagオペレータ SetLock TaggedParameters UnSetLock

プロパティ

Application BranchFlagオペレータ Capabilitiesオペレータ Categories
CompoundNodes DataModifierNodes DataProviderNodes EvaluationID
ExposedPorts Familiesオペレータ FullNameオペレータ Help
HierarchicalEvaluationID ICEAttributes InputPorts IsConnected
LockLevelオペレータ LockMastersオペレータ LockTypeオペレータ Major
Minor Model Nameオペレータ NestedObjects
Nodes ObjectID Origin OriginPath
OutputPorts Owners PPGLayoutオペレータ Parametersオペレータ
Parent Parent3DObject PortGroupCount RootNodeContainer
Selectedオペレータ Typeオペレータ    
       

Python の例

# Sample code to log the inner nodes for all the compound nodes of a graph

import win32com.client

from win32com.client import constants

xsi = Application

# Recursive function for traversing a node graph

def TraverseNodeGraph( in_node, level ):

	indent = level * '.'

	# Log the visited compound node name

	if in_node.IsClassOf( constants.siICECompoundNodeID ):

		xsi.LogMessage( indent + in_node.Name )

	nodeCount = 0

	nodes = ()

	if in_node.IsClassOf( constants.siICENodeContainerID ):	

		# The input node is a ICENodeContainer, let's get its inner compound nodes

		nodes = in_node.CompoundNodes

		nodeCount = nodes.Count

	# Recursively traverse the graph

	for i in range(nodeCount):

		TraverseNodeGraph( nodes[i], level+2 )

# Create a sample twist deformer graph first

xsi.CreatePrim( "Cube", "MeshSurface" )

xsi.SetValue( "cube.polymsh.geom.subdivu", 15 )

xsi.SetValue( "cube.polymsh.geom.subdivv", 14 )

xsi.ApplyOp( "ICETree", "cube", None, None, None, 0 )

xsi.AddICENode( "GetDataNode", "cube.polymsh.ICETree" )

xsi.SetValue( "cube.polymsh.ICETree.SceneReferenceNode.Reference", "cube.polymsh.PointPosition" )

xsi.AddICENode( "RotateVectorNode", "cube.polymsh.ICETree" )

xsi.AddICENode( "3DVectorToScalarNode", "cube.polymsh.ICETree" )

xsi.AddICENode( "SetData", "cube.polymsh.ICETree" )

xsi.SetValue( "cube.polymsh.ICETree.SetData.PredefinedAttributeName", "PointPosition" )

xsi.AddAttributeToSetDataICENode( "cube.polymsh.ICETree.SetData", "PointPosition", constants.siComponentDataTypeVector3, constants.siComponentDataContextComponent0D, constants.siComponentDataStructureSingle )

xsi.ConnectICENodes( "cube.polymsh.ICETree.port1", "cube.polymsh.ICETree.SetData.set" )

xsi.ConnectICENodes( "cube.polymsh.ICETree.RotateVectorNode.vector", "cube.polymsh.ICETree.SceneReferenceNode.value" )

xsi.ConnectICENodes( "cube.polymsh.ICETree.SetData.pointposition", "cube.polymsh.ICETree.RotateVectorNode.result" )

xsi.ConnectICENodes( "cube.polymsh.ICETree.3DVectorToScalarNode.vector", "cube.polymsh.ICETree.SceneReferenceNode.value" )

xsi.AddICENode( "MultiplyNode", "cube.polymsh.ICETree" )

xsi.ConnectICENodes( "cube.polymsh.ICETree.MultiplyNode.value1", "cube.polymsh.ICETree.3DVectorToScalarNode.y" )

xsi.AddICENode( "ScalarToRotationNode", "cube.polymsh.ICETree" )

xsi.ConnectICENodes( "cube.polymsh.ICETree.ScalarToRotationNode.angle", "cube.polymsh.ICETree.MultiplyNode.result" )

xsi.ConnectICENodes( "cube.polymsh.ICETree.RotateVectorNode.rotation", "cube.polymsh.ICETree.ScalarToRotationNode.rotation" )

xsi.SetValue( "cube.polymsh.ICETree.ScalarToRotationNode.y", 1 )

xsi.SetValue( "cube.polymsh.ICETree.ScalarToRotationNode.x", 0 )

xsi.SetValue( "cube.polymsh.ICETree.MultiplyNode.value2", 20 )

xsi.CreateICECompoundNode("cube.polymsh.ICETree.3DVectorToScalarNode,cube.polymsh.ICETree.MultiplyNode,cube.polymsh.ICETree.ScalarToRotationNode", "Compound1")

xsi.CreateICECompoundNode("cube.polymsh.ICETree.Compound1.ScalarToRotationNode,cube.polymsh.ICETree.Compound1.MultiplyNode", "Compound2")

xsi.CreateICECompoundNode("cube.polymsh.ICETree.Compound1", "CompoundTop")

# Get the ICETree off the cube primitive and start iterating the graph

cube = xsi.Selection(0)

cubeICETree = cube.ActivePrimitive.ICETrees[0]

level = 0

TraverseNodeGraph( cubeICETree, level )

関連項目

CreateICECompoundNode