ICEDataModifierNode

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

継承

SIObject

ProjectItem

ICENode

ICEDataModifierNode

導入

v7.0

詳細

ICEDataModifierNode は、グラフ内の SetDataNode タイプを表します。ICEDataModifierNode の役割は、実際の Softimage データの一部へのグラフデータフローから取得した結果を処理することです。

メソッド

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
EvaluationID Familiesオペレータ FullNameオペレータ Help
HierarchicalEvaluationID ICEAttributes InputPorts IsConnected
LockLevelオペレータ LockMastersオペレータ LockTypeオペレータ Model
Nameオペレータ NestedObjects ObjectID Origin
OriginPath OutputPorts Owners PPGLayoutオペレータ
Parametersオペレータ Parent Parent3DObject PortGroupCount
RootNodeContainer Selectedオペレータ Typeオペレータ  
       

Python の例

# Sample code to log all the data modifier nodes in 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 node name

	xsi.LogMessage( indent + in_node.Name )

	nodeCount = 0

	nodes = ()

	if in_node.IsClassOf( constants.siICENodeContainerID ):	

		# The input node might be a ICETree or ICECompoundNode, let's get their DataModifierNodes 

		nodes = in_node.DataModifierNodes

		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", "")

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

cube = xsi.Selection(0)

cubeICETree = cube.ActivePrimitive2.ICETrees[0]

level = 0

TraverseNodeGraph( cubeICETree, level )

関連項目

ICEDataProviderNode