ICEDataProviderNod e

Object Hierarchy | Related C++ Class: ICEDataProviderNode | Supported Parameter List: SceneReferenceNode | Related ICENode(s): GetDataNode

Inheritance

    SIObject
       ProjectItem
           ICENode
              ICEDataProviderNode

Introduced

7.0

Description

The ICEDataProviderNode represents the GetDataNode types in a graph. The responsibility of an ICEDataProviderNode is to read the data from Softimage objects and is typically used to initiate the data flow of the graph.

Methods

AddCustomOp | AddScriptedOp | AddScriptedOpFromFile | AnimatedParameters2
BelongsTo | EvaluateAt | GetGroupInstanceCount | GetICEAttributeFromName
GetPortCount | GetPortFromIndex | GetPortFromName | IsA
IsAnimated2 | IsClassOf | IsEqualTo | IsKindOf
IsLocked | IsSelected | LockOwners | SetAsSelected
SetCapabilityFlag | SetLock | TaggedParameters | UnSetLock

Properties

Application | BranchFlag | Capabilities | Categories
Families | FullName | Help | ICEAttributes
InputPorts | IsConnected | LockLevel | LockMasters
LockType | Model | Name | NestedObjects
ObjectID | Origin | OriginPath | OutputPorts
Owners | Parameters | Parent | Parent3DObject
PortGroupCount | PPGLayout | RootNodeContainer | Selected
Type |  |  |

Examples

Python Example

    # Sample code to log all the data provider 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 DataProviderNodes
           nodes = in_node.DataProviderNodes
           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.ActivePrimitive.ICETrees[0]

    level = 0
    TraverseNodeGraph( cubeICETree, level )

See Also

ICEDataModifierNode

Autodesk Softimage v7.5