def add_output(self, name='output', multi_output=True, display_name=True, color=None): """ Add output :class:`Port` to node. Args: name (str): name for the output port. multi_output (bool): allow port to have more than one connection. display_name (bool): display the port name on the node. color (tuple): initial port color (r, g, b) 0-255. Returns: NodeGraphQt.Port: the created port object. """ if name in self.outputs().keys(): raise PortRegistrationError( 'port name "{}" already registered.'.format(name)) view = self.view.add_output(name, multi_output, display_name) if color: view.color = color view.border_color = [min([255, max([0, i + 80])]) for i in color] port = Port(self, view) port.model.type_ = OUT_PORT port.model.name = name port.model.display_name = display_name port.model.multi_connection = multi_output self._outputs.append(port) self.model.outputs[port.name()] = port.model return port
def add_input(self, name='input', multi_input=False, display_name=True, color=None, locked=False, painter_func=None): """ Add input :class:`Port` to node. Warnings: Undo is NOT supported for this function. Args: name (str): name for the input port. multi_input (bool): allow port to have more than one connection. display_name (bool): display the port name on the node. color (tuple): initial port color (r, g, b) ``0-255``. locked (bool): locked state see :meth:`Port.set_locked` painter_func (function or None): custom function to override the drawing of the port shape see example: :ref:`Creating Custom Shapes` Returns: NodeGraphQt.Port: the created port object. """ if name in self.inputs().keys(): raise PortRegistrationError( 'port name "{}" already registered.'.format(name)) port_args = [name, multi_input, display_name, locked] if painter_func and callable(painter_func): port_args.append(painter_func) view = self.view.add_input(*port_args) if color: view.color = color view.border_color = [min([255, max([0, i + 80])]) for i in color] port = Port(self, view) port.model.type_ = PortTypeEnum.IN.value port.model.name = name port.model.display_name = display_name port.model.multi_connection = multi_input port.model.locked = locked self._inputs.append(port) self.model.inputs[port.name()] = port.model return port
def add_output(self, name='output', multi_output=True, display_name=True): """ Add output port to node. Args: name (str): name for the output port. multi_output (bool): allow port to have more than one connection. display_name (bool): display the port name on the node. Returns: NodeGraphQt.Port: the created port object. """ view = self.view.add_output(name, multi_output, display_name) port = Port(self, view) port.model.type = 'out' port.model.name = name port.model.display_name = display_name port.model.multi_connection = multi_output self._outputs.append(port) self.model.outputs[port.name()] = port.model return port
def add_output(self, name='output', multi_output=True, display_name=True): """ Add output :class:`Port` to node. Args: name (str): name for the output port. multi_output (bool): allow port to have more than one connection. display_name (bool): display the port name on the node. Returns: NodeGraphQt.Port: the created port object. """ if name in self.outputs().keys(): raise AssertionError('port name "{}" already taken.'.format(name)) view = self.view.add_output(name, multi_output, display_name) port = Port(self, view) port.model.type_ = OUT_PORT port.model.name = name port.model.display_name = display_name port.model.multi_connection = multi_output self._outputs.append(port) self.model.outputs[port.name()] = port.model return port