v4.0
// This example illustrates how to browse the port groups // of an operator. newscene( null, false ); CreatePrim("Cylinder", "MeshSurface", null, null); var col = ApplyOp("Shear", "cylinder", 3, siPersistentOperation); var op = col(0); dump_portgroups(op); function dump_portgroups(op) { if ( ! op.belongsto("Operators") ) return; var ePortGroups = new Enumerator(op.portgroups); for ( ; ! ePortGroups.atEnd(); ePortGroups.moveNext() ) { var portgroup = ePortGroups.item(); var str = ""; str += "group name: " + portgroup.name; str += ", type: " + portgroup.type; str += ", parent: " + portgroup.parent; str += ", index: " + portgroup.index; str += ", flags: " + portgroup.flags; str += ", min: " + portgroup.min; str += ", max: " + portgroup.max; str += ", filter: " + portgroup.filter; str += ", pickprompt: " + portgroup.pickprompt; str += ", optional: " + portgroup.isoptional(); str += ", branchgroup: " + portgroup.SupportsBranchGroup(); logmessage( str ); var ePorts = new Enumerator(portgroup.ports); for ( ; ! ePorts.atEnd(); ePorts.moveNext() ) { var port = ePorts.item(); dump_port(port); } } } function dump_port(port) { var str = ""; str += "port name: " + port.name; str += ", type: " + port.type; str += ", porttype: " + port.porttype; str += ", connected: " + port.isconnected; if ( port.isconnected) str += ", target: " + port.target2; str += ", parent: " + port.parent; str += ", index: " + port.index; str += ", flags: " + port.flags; if ( port.type == "InputPort" ) str += ", optional: " + port.optional; if ( port.type == "OutputPort" ) str += ", created: " + port.created; str += ", branchgroup: " + port.BranchGroup; str += ", groupname: " + port.groupname; str += ", groupindex: " + port.groupindex; str += ", groupinstance: " + port.groupinstance; logmessage( str ); } |