A ICENodeInputPort object represents the input port of an ICENode.
The ICENodeInputPort cannot connect to more than one ICENode. An ICENode can have more than one ICENodeInputPort.
#include <xsi_icenodeinputport.h>

| Public Member Functions | |
| ICENodeInputPort () | |
| ~ICENodeInputPort () | |
| ICENodeInputPort (const CRef &in_ref) | |
| ICENodeInputPort (const ICENodeInputPort &in_obj) | |
| bool | IsA (siClassID in_ClassID) const | 
| siClassID | GetClassID () const | 
| ICENodeInputPort & | operator= (const ICENodeInputPort &in_obj) | 
| ICENodeInputPort & | operator= (const CRef &in_ref) | 
| CValue | GetValue (double in_time=DBL_MAX) const | 
| CStatus | PutValue (const CValue &in_val, double in_time=DBL_MAX) | 
| ICENodeInputPort | ( | ) | 
Default constructor.
| ~ICENodeInputPort | ( | ) | 
Default destructor.
| ICENodeInputPort | ( | const CRef & | in_ref | ) | 
Constructor.
| in_ref | constant reference object. | 
| ICENodeInputPort | ( | const ICENodeInputPort & | in_obj | ) | 
Copy constructor.
| in_obj | constant class object. | 
| bool IsA | ( | siClassID | in_ClassID | ) | const [virtual] | 
Returns true if a given class type is compatible with this API class.
| in_ClassID | class type. | 
Reimplemented from ICENodePort.
| siClassID GetClassID | ( | ) | const [virtual] | 
| ICENodeInputPort& operator= | ( | const ICENodeInputPort & | in_obj | ) | 
Creates an object from another object. The newly created object is set to empty if the input object is not compatible.
| in_obj | constant class object. | 
| ICENodeInputPort& operator= | ( | const CRef & | in_ref | ) | 
Creates an object from a reference object. The newly created object is set to empty if the input reference object is not compatible.
| in_ref | constant class object. | 
Reimplemented from ICENodePort.
| CValue GetValue | ( | double | in_time = DBL_MAX | ) | const | 
Returns the port value as a CValue at a specific frame. The type of the value depends on ICENodePort::GetDataType. The value stored in this port is only accessible when the port is not connected. If the port is connected, it returns an empty CValue.
| in_time | Time in frames. Defaults to the current frame if in_timeis set withDBL_MAX. | 
        void CreatePrim( const CString& in_presetobj, const CString& in_geometrytype, const CString& in_name, const CString& in_parent );
        CRefArray ApplyOp( const CString& in_presetobj, CString & io_connectionset, const siConstructionMode& in_constructionmode );
        CValue AddICENode( const CValue&  in_presetobj, const CValue&  in_container );
        CValue SetValue( const CString& in_target, const CValue&  in_value, const CValue& in_time );
        void AddAttributeToSetDataICENode( const CValue&  in_setdatanode, const CString& in_attributename, siComponentDataType in_attributetype, siComponentDataContext in_attributecontext, siComponentDataStructure in_attributestructure );
        void SaveKey( const CString& in_inputobjs, CValue& io_time, const CValue& in_value );
        // Create an InitNode
        CreatePrim( L"Grid", L"MeshSurface", L"", L"" );
        ApplyOp( L"ICETree", CString(L"Grid"), siConstructionModeModeling );
        ICENode initDataNode = AddICENode( L"InitializeNode", L"grid.polymsh.ICETree" );
        SetValue( L"grid.polymsh.ICETree.InitDataNode.PredefinedAttributeName", L"EdgeLength", 0 );
        AddAttributeToSetDataICENode( L"grid.polymsh.ICETree.InitDataNode", L"EdgeLength", siComponentDataTypeFloat, siComponentDataContextComponent1D, siComponentDataStructureSingle );
        // Set some keys on the new created port
        ICENodeInputPort nodePort = initDataNode.GetInputPorts().GetItem(L"EdgeLength");
        CValue frame(1.0);
        CValue val(5.0);
        SaveKey( L"grid.polymsh.ICETree.InitDataNode.EdgeLength", frame, val );
        frame = 5.0;
        val = 25.0;
        SaveKey( L"grid.polymsh.ICETree.InitDataNode.EdgeLength", frame, val );
        // Access values on the port
        Application xsi;
        xsi.LogMessage( L"EdgeLentgh value at frame 1: " + CString(nodePort.GetValue(1.0)) );
        nodePort.PutValue( 85.0, 5.0 );
        xsi.LogMessage( L"EdgeLentgh value at frame 5: " + CString(nodePort.GetValue(5.0)) );
        // Expected results:
        // INFO : EdgeLentgh value at frame 1: 5.0
        // INFO : EdgeLentgh value at frame 5: 85.0
        void CreatePrim( const CString& in_presetobj, const CString& in_geometrytype, const CString& in_name, const CString& in_parent )
        {
            CValueArray args(4);
            CValue retval;
            args[0]= in_presetobj;
            args[1]= in_geometrytype;
            args[2]= in_name;
            args[3]= in_parent;
            Application app;
            CStatus st = app.ExecuteCommand( L"CreatePrim", args, retval );
            return;
        }
        CRefArray ApplyOp( const CString& in_presetobj, CString & io_connectionset, const siConstructionMode& in_constructionmode )
        {
            CValueArray args(6);
            CValue retval;
            args[0]=in_presetobj;
            args[1]=io_connectionset;
            args[2]=(LONG)siUnspecified;
            args[3]=(LONG)siPersistentOperation;
            if ( in_constructionmode != siConstructionModeDefault )
            {
                args[5]=(LONG)in_constructionmode;
            }
            Application app;
            CStatus st = app.ExecuteCommand( L"ApplyOp", args, retval );
            io_connectionset=args[1];
            return retval;
        }
        CValue AddICENode( const CValue&  in_presetobj, const CValue&  in_container )
        {
            CValueArray args(2);
            CValue retval;
            args[0]= in_presetobj;
            args[1]= in_container;
            Application app;
            CStatus st = app.ExecuteCommand( L"AddICENode", args, retval );
            return retval;
        }
        void AddAttributeToSetDataICENode( const CValue&  in_setdatanode, const CString& in_attributename, siComponentDataType in_attributetype, siComponentDataContext in_attributecontext, siComponentDataStructure in_attributestructure )
        {
            CValueArray args(5);
            CValue retval;
            args[0]= in_setdatanode;
            args[1]= in_attributename;
            args[2]= (LONG)in_attributetype;
            args[3]= (LONG)in_attributecontext;
            args[4]= (LONG)in_attributestructure;
            Application app;
            CStatus st = app.ExecuteCommand( L"AddAttributeToSetDataICENode", args, retval );
            return;
        }
        CValue SetValue( const CString& in_target, const CValue& in_value, const CValue&  in_time )
        {
            CValueArray args(3);
            CValue retval;
            args[0]= in_target;
            args[1]= in_value;
            args[2]= in_time;
            Application app;
            CStatus st = app.ExecuteCommand( L"SetValue", args, retval );
            return retval;
        }
        void SaveKey( const CString& in_inputobjs, CValue& io_time, const CValue& in_value )
        {
            CValueArray args(8);
            CValue retval;
            args[0]= in_inputobjs;
            args[1]= io_time;
            args[2]= in_value;
            args[3]= -1;
            args[4]= -1;
            args[5]= false;
            args[6]= 0;
            Application app;
            app.ExecuteCommand( L"SaveKey", args, retval );
            io_time = args[1];
            return;
        }
Sets the port value as a CValue at a specific frame. The type of the value depends on ICENodePort::GetDataType. This method can be used only when the port is not connected. If the port is connected, the method has no effect.
| in_val | The port value to set. | 
| in_time | Time in frames. Defaults to the current frame if in_timeis set withDBL_MAX. | 
        void CreatePrim( const CString& in_presetobj, const CString& in_geometrytype, const CString& in_name, const CString& in_parent );
        CRefArray ApplyOp( const CString& in_presetobj, CString & io_connectionset, const siConstructionMode& in_constructionmode );
        CValue AddICENode( const CValue&  in_presetobj, const CValue&  in_container );
        CValue SetValue( const CString& in_target, const CValue&  in_value, const CValue& in_time );
        void AddAttributeToSetDataICENode( const CValue&  in_setdatanode, const CString& in_attributename, siComponentDataType in_attributetype, siComponentDataContext in_attributecontext, siComponentDataStructure in_attributestructure );
        void SaveKey( const CString& in_inputobjs, CValue& io_time, const CValue& in_value );
        // Create an InitNode
        CreatePrim( L"Grid", L"MeshSurface", L"", L"" );
        ApplyOp( L"ICETree", CString(L"Grid"), siConstructionModeModeling );
        ICENode initDataNode = AddICENode( L"InitializeNode", L"grid.polymsh.ICETree" );
        SetValue( L"grid.polymsh.ICETree.InitDataNode.PredefinedAttributeName", L"EdgeLength", 0 );
        AddAttributeToSetDataICENode( L"grid.polymsh.ICETree.InitDataNode", L"EdgeLength", siComponentDataTypeFloat, siComponentDataContextComponent1D, siComponentDataStructureSingle );
        // Set some keys on the new created port
        ICENodeInputPort nodePort = initDataNode.GetInputPorts().GetItem(L"EdgeLength");
        CValue frame(1.0);
        CValue val(5.0);
        SaveKey( L"grid.polymsh.ICETree.InitDataNode.EdgeLength", frame, val );
        frame = 5.0;
        val = 25.0;
        SaveKey( L"grid.polymsh.ICETree.InitDataNode.EdgeLength", frame, val );
        // Access values on the port
        Application xsi;
        xsi.LogMessage( L"EdgeLentgh value at frame 1: " + CString(nodePort.GetValue(1.0)) );
        nodePort.PutValue( 85.0, 5.0 );
        xsi.LogMessage( L"EdgeLentgh value at frame 5: " + CString(nodePort.GetValue(5.0)) );
        // Expected results:
        // INFO : EdgeLentgh value at frame 1: 5.0
        // INFO : EdgeLentgh value at frame 5: 85.0
        void CreatePrim( const CString& in_presetobj, const CString& in_geometrytype, const CString& in_name, const CString& in_parent )
        {
            CValueArray args(4);
            CValue retval;
            args[0]= in_presetobj;
            args[1]= in_geometrytype;
            args[2]= in_name;
            args[3]= in_parent;
            Application app;
            CStatus st = app.ExecuteCommand( L"CreatePrim", args, retval );
            return;
        }
        CRefArray ApplyOp( const CString& in_presetobj, CString & io_connectionset, const siConstructionMode& in_constructionmode )
        {
            CValueArray args(6);
            CValue retval;
            args[0]=in_presetobj;
            args[1]=io_connectionset;
            args[2]=(LONG)siUnspecified;
            args[3]=(LONG)siPersistentOperation;
            if ( in_constructionmode != siConstructionModeDefault )
            {
                args[5]=(LONG)in_constructionmode;
            }
            Application app;
            CStatus st = app.ExecuteCommand( L"ApplyOp", args, retval );
            io_connectionset=args[1];
            return retval;
        }
        CValue AddICENode( const CValue&  in_presetobj, const CValue&  in_container )
        {
            CValueArray args(2);
            CValue retval;
            args[0]= in_presetobj;
            args[1]= in_container;
            Application app;
            CStatus st = app.ExecuteCommand( L"AddICENode", args, retval );
            return retval;
        }
        void AddAttributeToSetDataICENode( const CValue&  in_setdatanode, const CString& in_attributename, siComponentDataType in_attributetype, siComponentDataContext in_attributecontext, siComponentDataStructure in_attributestructure )
        {
            CValueArray args(5);
            CValue retval;
            args[0]= in_setdatanode;
            args[1]= in_attributename;
            args[2]= (LONG)in_attributetype;
            args[3]= (LONG)in_attributecontext;
            args[4]= (LONG)in_attributestructure;
            Application app;
            CStatus st = app.ExecuteCommand( L"AddAttributeToSetDataICENode", args, retval );
            return;
        }
        CValue SetValue( const CString& in_target, const CValue& in_value, const CValue&  in_time )
        {
            CValueArray args(3);
            CValue retval;
            args[0]= in_target;
            args[1]= in_value;
            args[2]= in_time;
            Application app;
            CStatus st = app.ExecuteCommand( L"SetValue", args, retval );
            return retval;
        }
        void SaveKey( const CString& in_inputobjs, CValue& io_time, const CValue& in_value )
        {
            CValueArray args(8);
            CValue retval;
            args[0]= in_inputobjs;
            args[1]= io_time;
            args[2]= in_value;
            args[3]= -1;
            args[4]= -1;
            args[5]= false;
            args[6]= 0;
            Application app;
            app.ExecuteCommand( L"SaveKey", args, retval );
            io_time = args[1];
            return;
        }